diff --git a/dist/clappr.js b/dist/clappr.js
index bd619070c..e2dd25300 100644
--- a/dist/clappr.js
+++ b/dist/clappr.js
@@ -4484,7 +4484,7 @@ exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-
// module
-exports.push([module.i, ".container[data-container] {\n position: absolute;\n background-color: black;\n height: 100%;\n width: 100%; }\n .container[data-container] .chromeless {\n cursor: default; }\n\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\n cursor: pointer; }\n", ""]);
+exports.push([module.i, ".container[data-container] {\n position: absolute;\n background-color: black;\n height: 100%;\n width: 100%;\n max-width: 100%; }\n .container[data-container] .chromeless {\n cursor: default; }\n\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\n cursor: pointer; }\n", ""]);
// exports
@@ -24735,6 +24735,7 @@ Events.CORE_ACTIVE_CONTAINER_CHANGED = 'core:active:container:changed';
* Fired when the options were changed for the core
*
* @event CORE_OPTIONS_CHANGE
+ * @param {Object} new options provided to configure() method
*/
Events.CORE_OPTIONS_CHANGE = 'core:options:change';
/**
@@ -26336,8 +26337,8 @@ function formatTime(time, paddedHours) {
}
var Fullscreen = exports.Fullscreen = {
- isFullscreen: function isFullscreen() {
- return !!(document.webkitFullscreenElement || document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement);
+ getFullscreenElement: function getFullscreenElement() {
+ return document.webkitFullscreenElement || document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement;
},
requestFullscreen: function requestFullscreen(el) {
if (el.requestFullscreen) el.requestFullscreen();else if (el.webkitRequestFullscreen) el.webkitRequestFullscreen();else if (el.mozRequestFullScreen) el.mozRequestFullScreen();else if (el.msRequestFullscreen) el.msRequestFullscreen();else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen) el.querySelector('video').webkitEnterFullScreen();else if (el.webkitEnterFullScreen) el.webkitEnterFullScreen();
@@ -28323,7 +28324,7 @@ var Core = function (_UIObject) {
};
Core.prototype.updateSize = function updateSize() {
- _utils.Fullscreen.isFullscreen() ? this.setFullscreen() : this.setPlayerSize();
+ this.isFullscreen() ? this.setFullscreen() : this.setPlayerSize();
};
Core.prototype.setFullscreen = function setFullscreen() {
@@ -28433,7 +28434,7 @@ var Core = function (_UIObject) {
};
Core.prototype.handleFullscreenChange = function handleFullscreenChange() {
- this.trigger(_events2.default.CORE_FULLSCREEN, _utils.Fullscreen.isFullscreen());
+ this.trigger(_events2.default.CORE_FULLSCREEN, this.isFullscreen());
this.updateSize();
};
@@ -28511,13 +28512,17 @@ var Core = function (_UIObject) {
return this.activeContainer && this.activeContainer.getPlaybackType();
};
+ Core.prototype.isFullscreen = function isFullscreen() {
+ return _utils.Fullscreen.getFullscreenElement() === (_browser2.default.isiOS ? this.activeContainer.el : this.el);
+ };
+
Core.prototype.toggleFullscreen = function toggleFullscreen() {
- if (!_utils.Fullscreen.isFullscreen()) {
- _utils.Fullscreen.requestFullscreen(_browser2.default.isiOS ? this.activeContainer.el : this.el);
- !_browser2.default.isiOS && this.$el.addClass('fullscreen');
- } else {
+ if (this.isFullscreen()) {
_utils.Fullscreen.cancelFullscreen();
!_browser2.default.isiOS && this.$el.removeClass('fullscreen nocursor');
+ } else {
+ _utils.Fullscreen.requestFullscreen(_browser2.default.isiOS ? this.activeContainer.el : this.el);
+ !_browser2.default.isiOS && this.$el.addClass('fullscreen');
}
};
@@ -28545,7 +28550,7 @@ var Core = function (_UIObject) {
var sources = options.source || options.sources;
sources && this.load(sources, options.mimeType || this.options.mimeType);
- this.trigger(_events2.default.CORE_OPTIONS_CHANGE);
+ this.trigger(_events2.default.CORE_OPTIONS_CHANGE, options); // Trigger with newly provided options
this.containers.forEach(function (container) {
return container.configure(_this6.options);
});
@@ -30386,7 +30391,7 @@ var _clapprZepto2 = _interopRequireDefault(_clapprZepto);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var version = "0.3.9"; // Copyright 2014 Globo.com Player authors. All rights reserved.
+var version = "0.3.10"; // Copyright 2014 Globo.com Player authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
@@ -34703,8 +34708,6 @@ var _core_plugin = __webpack_require__(/*! ../base/core_plugin */ "./src/base/co
var _core_plugin2 = _interopRequireDefault(_core_plugin);
-var _utils = __webpack_require__(/*! ../base/utils */ "./src/base/utils.js");
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var EndVideo = function (_CorePlugin) {
@@ -34731,7 +34734,7 @@ var EndVideo = function (_CorePlugin) {
EndVideo.prototype.ended = function ended() {
var exitOnEnd = typeof this.core.options.exitFullscreenOnEnd === 'undefined' || this.core.options.exitFullscreenOnEnd;
- if (exitOnEnd && _utils.Fullscreen.isFullscreen()) this.core.toggleFullscreen();
+ if (exitOnEnd && this.core.isFullscreen()) this.core.toggleFullscreen();
};
(0, _createClass3.default)(EndVideo, [{
@@ -35956,7 +35959,7 @@ var MediaControl = function (_UICorePlugin) {
MediaControl.prototype.playerResize = function playerResize(size) {
this.$fullscreenToggle.html('');
- var icon = _utils.Fullscreen.isFullscreen() ? _shrink2.default : _expand2.default;
+ var icon = this.core.isFullscreen() ? _shrink2.default : _expand2.default;
this.$fullscreenToggle.append(icon);
this.applyButtonStyle(this.$fullscreenToggle);
this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320');
@@ -36217,7 +36220,7 @@ var MediaControl = function (_UICorePlugin) {
};
MediaControl.prototype.updateCursorStyle = function updateCursorStyle(showing) {
- if (showing) this.core.$el.removeClass('nocursor');else if (_utils.Fullscreen.isFullscreen()) this.core.$el.addClass('nocursor');
+ if (showing) this.core.$el.removeClass('nocursor');else if (this.core.isFullscreen()) this.core.$el.addClass('nocursor');
};
MediaControl.prototype.settingsUpdate = function settingsUpdate() {
@@ -36394,8 +36397,10 @@ var MediaControl = function (_UICorePlugin) {
*/
- MediaControl.prototype.configure = function configure() {
- this.options.chromeless ? this.disable() : this.enable();
+ MediaControl.prototype.configure = function configure(options) {
+ // Check if chromeless mode or if configure is called with new source(s)
+ if (this.options.chromeless || options.source || options.sources) this.disable();else this.enable();
+
this.trigger(_events2.default.MEDIACONTROL_OPTIONS_CHANGE);
};
diff --git a/dist/clappr.js.map b/dist/clappr.js.map
index 8f4287437..18b343afc 100644
--- a/dist/clappr.js.map
+++ b/dist/clappr.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://Clappr/webpack/universalModuleDefinition","webpack://Clappr/webpack/bootstrap","webpack://Clappr/./node_modules/babel-runtime/core-js/array/from.js","webpack://Clappr/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://Clappr/./node_modules/babel-runtime/core-js/json/stringify.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/assign.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/create.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/keys.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://Clappr/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://Clappr/./node_modules/babel-runtime/helpers/createClass.js","webpack://Clappr/./node_modules/babel-runtime/helpers/extends.js","webpack://Clappr/./node_modules/babel-runtime/helpers/inherits.js","webpack://Clappr/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://Clappr/./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack://Clappr/./node_modules/babel-runtime/helpers/typeof.js","webpack://Clappr/./node_modules/clappr-zepto/zepto.js","webpack://Clappr/./node_modules/core-js/library/fn/array/from.js","webpack://Clappr/./node_modules/core-js/library/fn/get-iterator.js","webpack://Clappr/./node_modules/core-js/library/fn/json/stringify.js","webpack://Clappr/./node_modules/core-js/library/fn/object/assign.js","webpack://Clappr/./node_modules/core-js/library/fn/object/create.js","webpack://Clappr/./node_modules/core-js/library/fn/object/define-property.js","webpack://Clappr/./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/fn/object/keys.js","webpack://Clappr/./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/index.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_a-function.js","webpack://Clappr/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://Clappr/./node_modules/core-js/library/modules/_an-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_array-includes.js","webpack://Clappr/./node_modules/core-js/library/modules/_classof.js","webpack://Clappr/./node_modules/core-js/library/modules/_cof.js","webpack://Clappr/./node_modules/core-js/library/modules/_core.js","webpack://Clappr/./node_modules/core-js/library/modules/_create-property.js","webpack://Clappr/./node_modules/core-js/library/modules/_ctx.js","webpack://Clappr/./node_modules/core-js/library/modules/_defined.js","webpack://Clappr/./node_modules/core-js/library/modules/_descriptors.js","webpack://Clappr/./node_modules/core-js/library/modules/_dom-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_export.js","webpack://Clappr/./node_modules/core-js/library/modules/_fails.js","webpack://Clappr/./node_modules/core-js/library/modules/_global.js","webpack://Clappr/./node_modules/core-js/library/modules/_has.js","webpack://Clappr/./node_modules/core-js/library/modules/_hide.js","webpack://Clappr/./node_modules/core-js/library/modules/_html.js","webpack://Clappr/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_iobject.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array-iter.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-call.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-detect.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-step.js","webpack://Clappr/./node_modules/core-js/library/modules/_iterators.js","webpack://Clappr/./node_modules/core-js/library/modules/_keyof.js","webpack://Clappr/./node_modules/core-js/library/modules/_library.js","webpack://Clappr/./node_modules/core-js/library/modules/_meta.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dp.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dps.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopd.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gops.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gpo.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-pie.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-sap.js","webpack://Clappr/./node_modules/core-js/library/modules/_property-desc.js","webpack://Clappr/./node_modules/core-js/library/modules/_redefine.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-proto.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared-key.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared.js","webpack://Clappr/./node_modules/core-js/library/modules/_string-at.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-index.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-integer.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-iobject.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-length.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-primitive.js","webpack://Clappr/./node_modules/core-js/library/modules/_uid.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.from.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.assign.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.create.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.define-property.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.symbol.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://Clappr/./node_modules/core-js/library/modules/web.dom.iterable.js","webpack://Clappr/./src/components/container/public/style.scss","webpack://Clappr/./src/components/core/public/style.scss","webpack://Clappr/./src/playbacks/base_flash_playback/public/flash.scss","webpack://Clappr/./src/playbacks/html5_video/public/style.scss","webpack://Clappr/./src/playbacks/html_img/public/style.scss","webpack://Clappr/./src/playbacks/no_op/public/style.scss","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss","webpack://Clappr/./src/plugins/media_control/public/media-control.scss","webpack://Clappr/./src/plugins/poster/public/poster.scss","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss","webpack://Clappr/./src/plugins/watermark/public/watermark.scss","webpack://Clappr/./node_modules/css-loader/lib/css-base.js","webpack://Clappr/./node_modules/css-loader/lib/url/escape.js","webpack://Clappr/./node_modules/hls.js/dist/hls.js","webpack://Clappr/./node_modules/node-libs-browser/node_modules/process/browser.js","webpack://Clappr/./node_modules/style-loader/lib/addStyles.js","webpack://Clappr/./node_modules/style-loader/lib/urls.js","webpack://Clappr/./src/base/base_object.js","webpack://Clappr/./src/base/container_plugin.js","webpack://Clappr/./src/base/core_plugin.js","webpack://Clappr/./src/base/error_mixin.js","webpack://Clappr/./src/base/events.js","webpack://Clappr/./src/base/media.js","webpack://Clappr/./src/base/playback.js","webpack://Clappr/./src/base/polyfills.js","webpack://Clappr/./src/base/styler.js","webpack://Clappr/./src/base/template.js","webpack://Clappr/./src/base/ui_container_plugin.js","webpack://Clappr/./src/base/ui_core_plugin.js","webpack://Clappr/./src/base/ui_object.js","webpack://Clappr/./src/base/utils.js","webpack://Clappr/./src/components/browser/browser.js","webpack://Clappr/./src/components/browser/browser_data.js","webpack://Clappr/./src/components/browser/index.js","webpack://Clappr/./src/components/browser/os_data.js","webpack://Clappr/./src/components/container/container.js","webpack://Clappr/./src/components/container/index.js","webpack://Clappr/./src/components/container/public/style.scss?075b","webpack://Clappr/./src/components/container_factory/container_factory.js","webpack://Clappr/./src/components/container_factory/index.js","webpack://Clappr/./src/components/core/core.js","webpack://Clappr/./src/components/core/index.js","webpack://Clappr/./src/components/core/public/Roboto.ttf","webpack://Clappr/./src/components/core/public/fonts.css","webpack://Clappr/./src/components/core/public/style.scss?7375","webpack://Clappr/./src/components/core_factory/core_factory.js","webpack://Clappr/./src/components/core_factory/index.js","webpack://Clappr/./src/components/error/error.js","webpack://Clappr/./src/components/error/index.js","webpack://Clappr/./src/components/loader/index.js","webpack://Clappr/./src/components/loader/loader.js","webpack://Clappr/./src/components/mediator.js","webpack://Clappr/./src/components/player.js","webpack://Clappr/./src/components/player_info.js","webpack://Clappr/./src/icons/01-play.svg","webpack://Clappr/./src/icons/02-pause.svg","webpack://Clappr/./src/icons/03-stop.svg","webpack://Clappr/./src/icons/04-volume.svg","webpack://Clappr/./src/icons/05-mute.svg","webpack://Clappr/./src/icons/06-expand.svg","webpack://Clappr/./src/icons/07-shrink.svg","webpack://Clappr/./src/icons/08-hd.svg","webpack://Clappr/./src/icons/09-cc.svg","webpack://Clappr/./src/icons/10-reload.svg","webpack://Clappr/./src/main.js","webpack://Clappr/./src/playbacks/base_flash_playback/base_flash_playback.js","webpack://Clappr/./src/playbacks/base_flash_playback/index.js","webpack://Clappr/./src/playbacks/base_flash_playback/public/flash.html","webpack://Clappr/./src/playbacks/base_flash_playback/public/flash.scss?7c65","webpack://Clappr/./src/playbacks/flash/flash.js","webpack://Clappr/./src/playbacks/flash/index.js","webpack://Clappr/./src/playbacks/flash/public/Player.swf","webpack://Clappr/./src/playbacks/flashls/flashls.js","webpack://Clappr/./src/playbacks/flashls/flashls_events.js","webpack://Clappr/./src/playbacks/flashls/index.js","webpack://Clappr/./src/playbacks/flashls/public/HLSPlayer.swf","webpack://Clappr/./src/playbacks/hls/hls.js","webpack://Clappr/./src/playbacks/hls/index.js","webpack://Clappr/./src/playbacks/html5_audio/html5_audio.js","webpack://Clappr/./src/playbacks/html5_audio/index.js","webpack://Clappr/./src/playbacks/html5_video/html5_video.js","webpack://Clappr/./src/playbacks/html5_video/index.js","webpack://Clappr/./src/playbacks/html5_video/public/style.scss?2a3b","webpack://Clappr/./src/playbacks/html5_video/public/tracks.html","webpack://Clappr/./src/playbacks/html_img/html_img.js","webpack://Clappr/./src/playbacks/html_img/index.js","webpack://Clappr/./src/playbacks/html_img/public/style.scss?ab98","webpack://Clappr/./src/playbacks/no_op/index.js","webpack://Clappr/./src/playbacks/no_op/no_op.js","webpack://Clappr/./src/playbacks/no_op/public/error.html","webpack://Clappr/./src/playbacks/no_op/public/style.scss?c7ee","webpack://Clappr/./src/plugins/click_to_pause/click_to_pause.js","webpack://Clappr/./src/plugins/click_to_pause/index.js","webpack://Clappr/./src/plugins/closed_captions/closed_captions.js","webpack://Clappr/./src/plugins/closed_captions/index.js","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.html","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss?0946","webpack://Clappr/./src/plugins/dvr_controls/dvr_controls.js","webpack://Clappr/./src/plugins/dvr_controls/index.js","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss?12b3","webpack://Clappr/./src/plugins/dvr_controls/public/index.html","webpack://Clappr/./src/plugins/end_video.js","webpack://Clappr/./src/plugins/error_screen/error_screen.js","webpack://Clappr/./src/plugins/error_screen/index.js","webpack://Clappr/./src/plugins/error_screen/public/error_screen.html","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss?65c2","webpack://Clappr/./src/plugins/favicon/favicon.js","webpack://Clappr/./src/plugins/favicon/index.js","webpack://Clappr/./src/plugins/google_analytics/google_analytics.js","webpack://Clappr/./src/plugins/google_analytics/index.js","webpack://Clappr/./src/plugins/log/index.js","webpack://Clappr/./src/plugins/log/log.js","webpack://Clappr/./src/plugins/media_control/index.js","webpack://Clappr/./src/plugins/media_control/media_control.js","webpack://Clappr/./src/plugins/media_control/public/closed-hand.cur","webpack://Clappr/./src/plugins/media_control/public/media-control.html","webpack://Clappr/./src/plugins/media_control/public/media-control.scss?f597","webpack://Clappr/./src/plugins/poster/index.js","webpack://Clappr/./src/plugins/poster/poster.js","webpack://Clappr/./src/plugins/poster/public/poster.html","webpack://Clappr/./src/plugins/poster/public/poster.scss?638d","webpack://Clappr/./src/plugins/seek_time/index.js","webpack://Clappr/./src/plugins/seek_time/public/seek_time.html","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss?a475","webpack://Clappr/./src/plugins/seek_time/seek_time.js","webpack://Clappr/./src/plugins/sources.js","webpack://Clappr/./src/plugins/spinner_three_bounce/index.js","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.html","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss?ec8c","webpack://Clappr/./src/plugins/spinner_three_bounce/spinner_three_bounce.js","webpack://Clappr/./src/plugins/stats/index.js","webpack://Clappr/./src/plugins/stats/stats.js","webpack://Clappr/./src/plugins/strings.js","webpack://Clappr/./src/plugins/watermark/index.js","webpack://Clappr/./src/plugins/watermark/public/watermark.html","webpack://Clappr/./src/plugins/watermark/public/watermark.scss?ef86","webpack://Clappr/./src/plugins/watermark/watermark.js","webpack://Clappr/./src/vendor/index.js","webpack://Clappr/./src/vendor/kibo.js"],"names":["BaseObject","_options","options","uniqueId","ContainerPlugin","container","playerError","enabled","bindEvents","enable","disable","stopListening","destroy","prototype","extend","properties","type","CorePlugin","core","getExternalInterface","ErrorMixin","createError","error","useCodePrefix","scope","constructor","origin","name","i18n","prefixedCode","code","defaultError","description","level","Levels","FATAL","raw","errorData","UI","defaultUI","title","t","message","warn","slice","Array","eventSplitter","eventsApi","obj","action","rest","key","apply","concat","test","names","split","i","l","length","triggerEvents","events","args","klass","ev","a1","a2","a3","run","callback","call","ctx","exception","Events","on","context","_events","push","once","off","arguments","retain","j","k","_callback","trigger","debug","allEvents","all","listeningTo","_listeningTo","remove","_listenId","id","register","eventName","Custom","property","toUpperCase","trim","toLowerCase","map","value","index","join","listAvailableCustomEvents","filter","listenMethods","listenTo","listenToOnce","forEach","method","PLAYER_READY","PLAYER_RESIZE","PLAYER_FULLSCREEN","PLAYER_PLAY","PLAYER_PAUSE","PLAYER_STOP","PLAYER_ENDED","PLAYER_SEEK","PLAYER_ERROR","ERROR","PLAYER_TIMEUPDATE","PLAYER_VOLUMEUPDATE","PLAYER_SUBTITLE_AVAILABLE","PLAYBACK_PROGRESS","PLAYBACK_TIMEUPDATE","PLAYBACK_READY","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","PLAYBACK_SETTINGSUPDATE","PLAYBACK_LOADEDMETADATA","PLAYBACK_HIGHDEFINITIONUPDATE","PLAYBACK_BITRATE","PLAYBACK_LEVELS_AVAILABLE","PLAYBACK_LEVEL_SWITCH_START","PLAYBACK_LEVEL_SWITCH_END","PLAYBACK_PLAYBACKSTATE","PLAYBACK_DVR","PLAYBACK_MEDIACONTROL_DISABLE","PLAYBACK_MEDIACONTROL_ENABLE","PLAYBACK_ENDED","PLAYBACK_PLAY_INTENT","PLAYBACK_PLAY","PLAYBACK_PAUSE","PLAYBACK_SEEK","PLAYBACK_SEEKED","PLAYBACK_STOP","PLAYBACK_ERROR","PLAYBACK_STATS_ADD","PLAYBACK_FRAGMENT_LOADED","PLAYBACK_LEVEL_SWITCH","PLAYBACK_SUBTITLE_AVAILABLE","PLAYBACK_SUBTITLE_CHANGED","CORE_CONTAINERS_CREATED","CORE_ACTIVE_CONTAINER_CHANGED","CORE_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_RESIZE","CORE_SCREEN_ORIENTATION_CHANGED","CORE_MOUSE_MOVE","CORE_MOUSE_LEAVE","CONTAINER_PLAYBACKSTATE","CONTAINER_PLAYBACKDVRSTATECHANGED","CONTAINER_BITRATE","CONTAINER_STATS_REPORT","CONTAINER_DESTROYED","CONTAINER_READY","CONTAINER_ERROR","CONTAINER_LOADEDMETADATA","CONTAINER_SUBTITLE_AVAILABLE","CONTAINER_SUBTITLE_CHANGED","CONTAINER_TIMEUPDATE","CONTAINER_PROGRESS","CONTAINER_PLAY","CONTAINER_STOP","CONTAINER_PAUSE","CONTAINER_ENDED","CONTAINER_CLICK","CONTAINER_DBLCLICK","CONTAINER_CONTEXTMENU","CONTAINER_MOUSE_ENTER","CONTAINER_MOUSE_LEAVE","CONTAINER_SEEK","CONTAINER_SEEKED","CONTAINER_VOLUME","CONTAINER_FULLSCREEN","CONTAINER_STATE_BUFFERING","CONTAINER_STATE_BUFFERFULL","CONTAINER_SETTINGSUPDATE","CONTAINER_HIGHDEFINITIONUPDATE","CONTAINER_MEDIACONTROL_SHOW","CONTAINER_MEDIACONTROL_HIDE","CONTAINER_MEDIACONTROL_DISABLE","CONTAINER_MEDIACONTROL_ENABLE","CONTAINER_STATS_ADD","CONTAINER_OPTIONS_CHANGE","MEDIACONTROL_RENDERED","MEDIACONTROL_FULLSCREEN","MEDIACONTROL_SHOW","MEDIACONTROL_HIDE","MEDIACONTROL_MOUSEMOVE_SEEKBAR","MEDIACONTROL_MOUSELEAVE_SEEKBAR","MEDIACONTROL_PLAYING","MEDIACONTROL_NOTPLAYING","MEDIACONTROL_CONTAINERCHANGED","MEDIACONTROL_OPTIONS_CHANGE","mp4","Playback","_i18n","_consented","settings","consent","play","pause","stop","seek","time","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","volume","configure","attemptAutoPlay","canAutoPlay","result","cb","closedCaptionsTracks","trackId","canPlay","source","mimeType","VOD","AOD","LIVE","find","Object","defineProperty","predicate","TypeError","o","len","thisArg","kValue","undefined","Styler","getStyleFor","style","baseUrl","html","toString","evaluate","interpolate","escape","noMatch","escapes","escaper","htmlEntities","entityRe","RegExp","escapeExpr","string","replace","match","counter","tmpl","text","data","render","matcher","offset","variable","Function","e","template","UIContainerPlugin","$el","show","hide","UICorePlugin","delegateEventSplitter","UIObject","cid","_ensureElement","delegateEvents","$","selector","undelegateEvents","setElement","element","delegate","zepto","isZ","el","bind","attrs","attributes","className","create","tagName","attr","assign","formatTime","seekStringToSeconds","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","listContainsIgnoreCase","canAutoPlayMedia","prop","propDescriptor","parent","Surrogate","initialize","paddedHours","isFinite","parseInt","seconds","minutes","hours","days","out","Fullscreen","isFullscreen","document","webkitFullscreenElement","webkitIsFullScreen","mozFullScreen","msFullscreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","querySelector","webkitEnterFullScreen","cancelFullscreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Config","_defaultConfig","parse","_defaultValueFor","_createKeyspace","domain","restore","hasLocalstorage","localStorage","persist","QueryString","paramsString","pl","search","decode","s","decodeURIComponent","params","exec","query","window","location","substring","_urlParams","hash","_hashParams","paramName","seekString","hashParams","parts","factor","suffix","idsCounter","prefix","parseFloat","scripts","getElementsByTagName","src","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","navigator","language","performance","Date","arr","item","indexOf","splice","items","itemEach","inline","muted","timeout","createElement","setAttribute","promise","timeoutId","setResult","Error","then","catch","err","videoStack","DomRecycler","recycleVideo","shift","garbage","children","DoubleEventHandler","delay","lastTime","handle","event","prevented","currentTime","getTime","diffTime","preventDefault","Media","Browser","setItem","removeItem","hasFlash","fo","ActiveXObject","mimeTypes","enabledPlugin","getBrowserInfo","ua","extra","version","appName","appVersion","getBrowserData","browserObject","userAgent","browser","browserRegExp","identifier","browserRegExpResult","group","versionIdentifier","versionRegExp","versionRegExpResult","setBrowserVersion","splitVersion","fullVersion","majorVersion","minorVersion","getOsData","osObject","os","osRegExp","osRegExpResult","setOsVersion","versionSeparator","separator","finalSeparator","substr","getViewportSize","viewportObject","width","height","setViewportOrientation","orientation","viewport","getDevice","platformRegExp","matches","device","browserInfo","isEdge","isChrome","isSafari","isFirefox","isLegacyIE","isIE","isIE11","isChromecast","isMobile","isiOS","isAndroid","isWindowsPhone","isWin8App","isWiiU","isPS4","BROWSER_DATA","OS_DATA","Container","class","playback","ended","buffering","hasClosedCaptionsTracks","closedCaptionsTrackId","isReady","mediaControlDisabled","plugins","dblTapHandler","clickTimer","clickDelay","onProgress","timeUpdated","ready","onBuffering","bufferfull","settingsUpdate","loadedMetadata","highDefinitionUpdate","updateBitrate","playbackStateChanged","playbackDvrStateChanged","disableMediaControl","enableMediaControl","onSeeked","onEnded","playing","paused","stopped","subtitleAvailable","subtitleChanged","track","state","dvrInUse","newBitrate","statsReport","metrics","isDvrEnabled","dvrEnabled","isDvrInUse","plugin","setStyle","css","animate","duration","getCurrentTime","metadata","timeProgress","current","clicked","chromeless","allowUserInteraction","cancelClicked","dblClicked","dblTap","evt","onContextMenu","setVolume","fullscreen","addPlugin","hasPlugin","getPlugin","mouseEnter","mouseLeave","isHD","updateStyle","removeClass","addClass","append","ContainerFactory","loader","createContainers","Deferred","resolve","sources","createContainer","findPlaybackPlugin","playbackPlugins","p","resolvedSource","protocol","playbackPlugin","defer","addContainerPlugins","containerPlugins","Plugin","Core","tabindex","dummyMediaControl","_dummyMediaControl","_activeContainer","activeContainer","configureDomRecycler","playerInfo","getInstance","playerId","firstResize","containers","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","containerFactory","prepareContainers","setupContainers","resolveOnContainersReady","updateSize","setFullscreen","setPlayerSize","removeAttr","previousSize","currentSize","resize","triggerResize","enableResizeObserver","checkSizeCallback","clientWidth","clientHeight","resizeObserverInterval","setInterval","newSize","thereWasChange","oldHeight","oldWidth","computedSize","disableResizeObserver","clearInterval","when","done","load","unbind","innerWidth","innerHeight","_screenOrientation","removeContainer","c","setupContainer","renderContainers","appendToParent","appendChild","getCurrentContainer","getCurrentPlayback","activePlayback","toggleFullscreen","onMouseMove","onMouseLeave","hasCoreParent","appendTo","parentElement","size","CoreFactory","player","addCorePlugins","corePlugins","setupExternalInterface","externalFunctions","PlayerError","WARN","INFO","Loader","externalPlugins","useOnlyPlainHtml5Plugins","PLAIN_HTML5_ONLY","isArray","validateExternalPluginsType","addExternalPlugins","groupPluginsByType","reduce","memo","removeDups","list","groupUp","pluginsMap","reduceRight","unshift","plugintypes","errorMessage","ReferenceError","Mediator","opts","Player","_loader","_ready","onReady","onResize","onPlay","onPause","onStop","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","playbackDefaultOptions","defaultOptions","persistConfig","_normalizeSources","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","parentId","setParentId","attachTo","_addEventListeners","_onReady","_containerChanged","_onFullscreenChange","_onResize","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","newEvents","hasNewEvents","userEvent","eventType","eventsMapping","eventFunction","autoPlay","mute","_mutedVolume","getVolume","unmute","PlayerInfo","_players","VERSION","MediaControl","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","ClickToPausePlugin","DVRControls","Favicon","Log","Poster","SpinnerThreeBouncePlugin","WaterMarkPlugin","Vendor","IE_CLASSID","swfPath","playbackId","wmode","callbackName","require","MAX_ATTEMPTS","_baseUrl","_currentState","_bufferingState","_src","_autoPlay","default","left","right","seekEnabled","_isReadyState","_addListeners","_bootstrap","playerPlay","_firstPlay","insertAfter","_metadataLoaded","_attempts","_updateTime","getPosition","total","_progress","_checkState","_isIdle","getState","start","getBytesLoaded","getBytesTotal","_checkInitialSeek","seekTime","href","seekSeconds","playerResume","playerVolume","playerPause","playerStop","playerSeek","bootstrapId","resource","String","resourceParts","AUTO","_levels","_currentLevel","playerSetCurrentLevel","_hasEnded","_initHlsParameters","highDefinition","_loop","loop","_defaultSettings","_playbackType","_autoStartLoad","autoStartLoad","_capLevelToStage","capLevelToStage","_maxLevelCappingMode","maxLevelCappingMode","_minBufferLength","minBufferLength","_minBufferLengthCapping","minBufferLengthCapping","_maxBufferLength","maxBufferLength","_maxBackBufferLength","maxBackBufferLength","_lowBufferLength","lowBufferLength","_mediaTimePeriod","mediaTimePeriod","_fpsDroppedMonitoringPeriod","fpsDroppedMonitoringPeriod","_fpsDroppedMonitoringThreshold","fpsDroppedMonitoringThreshold","_capLevelonFPSDrop","capLevelonFPSDrop","_smoothAutoSwitchonFPSDrop","smoothAutoSwitchonFPSDrop","_switchDownOnLevelError","switchDownOnLevelError","_seekMode","seekMode","_keyLoadMaxRetry","keyLoadMaxRetry","_keyLoadMaxRetryTimeout","keyLoadMaxRetryTimeout","_fragmentLoadMaxRetry","fragmentLoadMaxRetry","_fragmentLoadMaxRetryTimeout","fragmentLoadMaxRetryTimeout","_fragmentLoadSkipAfterMaxRetry","fragmentLoadSkipAfterMaxRetry","_maxSkippedFragments","maxSkippedFragments","_flushLiveURLCache","flushLiveURLCache","_initialLiveManifestSize","initialLiveManifestSize","_manifestLoadMaxRetry","manifestLoadMaxRetry","_manifestLoadMaxRetryTimeout","manifestLoadMaxRetryTimeout","_manifestRedundantLoadmaxRetry","manifestRedundantLoadmaxRetry","_startFromBitrate","startFromBitrate","_startFromLevel","startFromLevel","_autoStartMaxDuration","autoStartMaxDuration","_seekFromLevel","seekFromLevel","_useHardwareVideoDecoder","useHardwareVideoDecoder","_hlsLogEnabled","hlsLogEnabled","_logDebug","logDebug","_logDebug2","logDebug2","_logWarn","logWarn","_logError","logError","_hlsMinimumDvrSize","hlsMinimumDvrSize","timeMetrics","_setPlaybackState","_levelChanged","url","_flashPlaybackError","loadmetrics","_onFragmentLoaded","_onLevelEndlist","playerLoad","_srcLoaded","_setFlashSettings","_updatePlaybackType","_shouldPlayOnManifestLoaded","_bootstrapAttempts","formattedError","playerSetAutoStartLoad","playerSetCapLevelToStage","playerSetMaxLevelCappingMode","playerSetMinBufferLength","playerSetMinBufferLengthCapping","playerSetMaxBufferLength","playerSetMaxBackBufferLength","playerSetLowBufferLength","playerSetMediaTimePeriod","playerSetFpsDroppedMonitoringPeriod","playerSetFpsDroppedMonitoringThreshold","playerSetCapLevelonFPSDrop","playerSetSmoothAutoSwitchonFPSDrop","playerSetSwitchDownOnLevelError","playerSetSeekMode","playerSetKeyLoadMaxRetry","playerSetKeyLoadMaxRetryTimeout","playerSetFragmentLoadMaxRetry","playerSetFragmentLoadMaxRetryTimeout","playerSetFragmentLoadSkipAfterMaxRetry","playerSetMaxSkippedFragments","playerSetFlushLiveURLCache","playerSetInitialLiveManifestSize","playerSetManifestLoadMaxRetry","playerSetManifestLoadMaxRetryTimeout","playerSetManifestRedundantLoadmaxRetry","playerSetStartFromBitrate","playerSetStartFromLevel","playerSetAutoStartMaxDuration","playerSetSeekFromLevel","playerSetUseHardwareVideoDecoder","playerSetLogInfo","playerSetLogDebug","playerSetLogDebug2","playerSetLogWarn","playerSetLogError","setAutoStartLoad","setCapLevelToStage","setMaxLevelCappingMode","setSetMinBufferLength","setMinBufferLengthCapping","setMaxBufferLength","setMaxBackBufferLength","setLowBufferLength","setMediaTimePeriod","setFpsDroppedMonitoringPeriod","setFpsDroppedMonitoringThreshold","setCapLevelonFPSDrop","setSmoothAutoSwitchonFPSDrop","setSwitchDownOnLevelError","setSeekMode","setKeyLoadMaxRetry","setKeyLoadMaxRetryTimeout","setFragmentLoadMaxRetry","setFragmentLoadMaxRetryTimeout","setFragmentLoadSkipAfterMaxRetry","setMaxSkippedFragments","setFlushLiveURLCache","setInitialLiveManifestSize","setManifestLoadMaxRetry","setManifestLoadMaxRetryTimeout","setManifestRedundantLoadmaxRetry","setStartFromBitrate","setStartFromLevel","setAutoStartMaxDuration","setSeekFromLevel","setUseHardwareVideoDecoder","setSetLogInfo","setLogDebug","setLogDebug2","setLogWarn","setLogError","currentLevel","getLevels","bitrate","_fillLevels","bandwidth","_normalizeDuration","position","Math","min","max","previousDVRStatus","_dvrEnabled","livePlayback","_updateSettings","getCurrentLevelIndex","getCurrentLevel","levels","getCurrentBitrate","setCurrentLevel","_updateCurrentState","getType","_startReportingProgress","_stopReportingProgress","_reportingProgress","buffered","getbufferLength","_manifestLoaded","_updateDvr","previousDvrInUse","_dvrInUse","levelsLength","label","_createCallbacks","Clappr","flashlsCallbacks","flashlsEvents","HLSEvents","instanceId","videoSize","complete","manifest","audioLevelLoaded","levelLoaded","levelEndlist","fragmentLoaded","fragmentPlaying","playmetrics","timemetrics","newState","seekState","switch","newLevel","audioTracksListChange","trackList","audioTrackChange","hlsUseNextLevel","_hls","nextLevel","_playlistType","_extrapolatedStartTime","_playableRegionStartTime","_localStartTimeCorrelation","corr","timePassed","_now","local","extrapolatedWindowStartTime","remote","_extrapolatedWindowDuration","actualEndTime","_playableRegionDuration","_localEndTimeCorrelation","extrapolatedEndTime","_extrapolatedEndTime","_startTime","_segmentTargetDuration","_extrapolatedWindowNumSegments","_minDvrSize","extrapolatedWindowNumSegments","_lastTimeUpdate","_lastDuration","_programDateTime","_durationExcludesAfterLiveSyncPoint","_recoverAttemptsRemaining","hlsRecoverAttempts","_setup","_ccIsSetup","_ccTracksUpdated","hlsjsConfig","MEDIA_ATTACHED","loadSource","LEVEL_LOADED","LEVEL_UPDATED","_onLevelUpdated","LEVEL_SWITCHING","_onLevelSwitch","FRAG_LOADED","_onHLSJSError","SUBTITLE_TRACK_LOADED","_onSubtitleLoaded","SUBTITLE_TRACKS_UPDATED","attachMedia","_recover","_recoveredDecodingError","recoverMediaError","_recoveredAudioCodecError","swapAudioCodec","_setupSrc","srcUrl","_startTimeUpdateTimer","_timeUpdateTimer","_onDurationChange","_stopTimeUpdateTimer","getProgramDateTime","_duration","seekTo","seekToLivePoint","status","isSeekEnabled","details","response","fatal","ErrorTypes","NETWORK_ERROR","ErrorDetails","MANIFEST_LOAD_ERROR","MANIFEST_LOAD_TIMEOUT","MANIFEST_PARSING_ERROR","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","startLoad","MEDIA_ERROR","triggerFatalErrorOnResourceDenied","_keyIsDenied","KEY_LOAD_ERROR","update","firstFragDateTime","isSame","_onProgress","bufferedPos","end","progress","live","targetduration","startTimeChanged","durationChanged","fragments","previousPlayableRegionStartTime","previousPlayableRegionDuration","rawProgramDateTime","startTime","newDuration","totalduration","fragmentTargetDuration","liveSyncDurationCount","DefaultConfig","hiddenAreaDuration","endTime","previousEndTime","endTimeChanged","isHls","isSupported","updateSettings","resourceUrl","mimetypes","_canPlay","MIMETYPES","codec","AUDIO_MIMETYPES","KNOWN_AUDIO_MIMETYPES","acc","UNKNOWN_ERROR","isAudioOnly","_mimeTypesForUrl","audioOnly","_isBuffering","_destroyed","_loadStarted","_playheadMoving","_playheadMovingTimer","_stopped","_ccTrackId","disableContextMenu","disableVideoTagContextMenu","playbackConfig","preload","posterUrl","poster","defaultMuted","controls","useVideoTagDefaultControls","crossOrigin","playInline","playsinline","crossorigin","externalTracks","_setupExternalTracks","process","nextTick","disableCanAutoPlay","autoPlayTimeout","tracks","_externalTracks","kind","lang","_onLoadedMetadata","_handleBufferingEvents","target","autoSeekFromUrl","onDemandType","Infinity","removeAttribute","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","before","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeking","_onSeeked","playheadShouldBeMoving","readyState","HAVE_FUTURE_DATA","isUnknownError","handleTextTrackChange","textTracks","removeEventListener","_typeFor","isHTML5Video","_handleTextTrackChange","addEventListener","mode","showingTrack","mimeTypesByExtension","extension","media","canPlayType","mediaType","_onLoad","m","_noiseFrameNum","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","random","color","pow","putImageData","_stop","_animationHandle","getContext","click","pointerEnabled","ClosedCaptions","config","closedCaptionsConfig","_title","_ariaLabel","ariaLabel","_labelCb","labelCallback","containerChanged","mediaControl","hideContextMenu","onSubtitleChanged","onContainerStop","ccAvailable","renderCcButton","setCurrentContextMenuElement","onTrackSelect","dataset","ccSelect","stopPropagation","hasCC","toggleContextMenu","toggle","contextMenuElement","isNaN","_trackId","$ccButton","disabledLabel","$fullscreen","prepend","dvrChanged","hasClass","shouldRender","useDvrControls","backToLive","EndVideo","exitOnEnd","exitFullscreenOnEnd","ErrorScreen","disableErrorScreen","onContainerChanged","bindReload","reloadButton","reload","unbindReload","icon","reloadIcon","oldIcon","_container","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","svg","fillStyle","d","path","Path2D","fill","toDataURL","playIcon","changeIcon","pauseIcon","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","script","onload","addEventListeners","body","onBufferFull","onPlaybackChanged","onVolumeChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","playbackState","array","res","BOLD","DEBUG","LEVEL_DEBUG","LEVEL_INFO","LEVEL_WARN","LEVEL_ERROR","LEVEL_DISABLED","COLORS","DESCRIPTIONS","offLevel","kibo","down","onOff","BLACKLIST","log","info","previousLevel","console","klassDescription","_instance","setLevel","playbackIsNOOP","userDisabled","intendedVolume","currentPositionValue","currentDurationValue","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","focusElement","bindKeyEvents","isEmptyObject","stopDragHandler","stopDrag","updateDragHandler","updateDrag","onActiveContainerChanged","hideMediaControlDelay","playerResize","bindContainerEvents","changeTogglePlay","updateProgressBar","nodeName","onLoadedMetadataOnVideoTag","unbindKeyEvents","initialVolume","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","pos","$volumeBarFill","$volumeBarScrubber","ceil","$volumeIcon","applyButtonStyle","$playPauseToggle","$playStopToggle","mousemoveOnSeekBar","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","setSeekPercentage","offsetY","volumeFromUI","toggleMute","isInitialVolume","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","loadedStart","loadedEnd","renderSeekBar","currentSeekBarPercentage","newPosition","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","disabled","mousePointerMoved","clientX","lastMouseX","clientY","lastMouseY","hideId","showing","updateCursorStyle","hideMediaControl","hasKeepVisibleRequested","hasDraggingAction","newSettings","getSettings","settingsChanged","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","keys","parseColors","mediacontrol","buttonsColor","buttons","seekbarColor","seekbar","previousSeekPercentage","PosterPlugin","showOnVideoEnd","hasStartedPlaying","playRequested","hasFatalError","showPlayButton","updatePlayButton","hidePlayButton","$playButton","shouldHideOnPlay","updatePoster","showPoster","hidePoster","isRegularPoster","custom","$playWrapper","SeekTime","mediaControlContainer","isLiveStreamWithDvr","actualLiveTime","hoveringOverSeekBar","hoverPosition","actualLiveServerTime","actualLiveServerTimeDiff","showTime","hideTime","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","useActualLiveTime","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","showTimeout","StatsPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","totalTime","isRebuffering","metric","getStats","Strings","_initializeMessages","_language","fallbackLang","_messages","defaultMessages","strings","watermark","imageUrl","imageLink","watermarkLink","hidden","templateOptions","Kibo","KEY_NAMES_BY_CODE","KEY_CODES_BY_NAME","hasOwnProperty","MODIFIERS","registerEvent","func","attachEvent","unregisterEvent","detachEvent","stringContains","neatString","capitalize","isString","what","arrayIncludes","haystack","needle","extractModifiers","keyCombination","modifiers","extractKey","modifiersAndKey","keyName","keyCode","that","lastKeyCode","lastModifiers","keysDown","any","keysUp","downHandler","handler","upHandler","unloader","upOrDown","registeredKeys","lastModifiersAndKey","registerKeys","newKeys","unregisterKeys","up","lastKey","modifier"],"mappings":"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c;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C,sBAAsB;AAC3F,2BAA2B;AAC3B,2BAA2B,oDAAoD,sCAAsC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C,oCAAoC;;AAE5G;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,sCAAsC;AACrF;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,YAAY;AACZ;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,2CAA2C,4BAA4B;AACvE,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,wBAAwB,oBAAoB;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,wCAAwC,mCAAmC;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,0CAA0C,wBAAwB;AAClE,KAAK;AACL;AACA,kCAAkC,6DAA6D;AAC/F,KAAK;AACL;AACA;AACA,oEAAoE,oBAAoB;AACxF,OAAO;AACP,KAAK;AACL;AACA,kCAAkC,sBAAsB;AACxD,KAAK;AACL;AACA;AACA,sCAAsC,sBAAsB;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA,iCAAiC,8BAA8B;AAC/D,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,6BAA6B,yEAAyE;AACtG,6BAA6B,qEAAqE;AAClG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kCAAkC;AAClC;AACA,OAAO,QAAQ;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,kCAAkC,oBAAoB;AACtD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iDAAiD;AAChF;AACA;AACA,OAAO;AACP;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA,6EAA6E;AAC7E;;AAEA,kCAAkC,yBAAyB,SAAS;AACpE,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA,yCAAyC,4BAA4B;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,aAAa,eAAe;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,IAAI;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,EAAE;AACrB,2CAA2C,8CAA8C;AACzF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;;AAEzB;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D,2CAA2C,iBAAiB;AAC5D,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA,aAAa;AACb,WAAW;;AAEX;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,mBAAmB;AACnB,sBAAsB;AACtB;AACA,eAAe,qCAAqC;AACpD,eAAe;;AAEf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA,aAAa;;AAEb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,YAAY;AAC1C,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,yBAAyB,kCAAkC;AAC3D,yBAAyB,iCAAiC;AAC1D,yBAAyB,gCAAgC;AACzD,yBAAyB,yBAAyB;AAClD,4BAA4B,6BAA6B;AACzD,mCAAmC,4CAA4C;AAC/E,sCAAsC,iCAAiC;AACvE,qCAAqC,qDAAqD;AAC1F,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+CAA+C,uCAAuC;AACtF,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;;;;;;;;;;ACj4DA,mBAAO,CAAC,wGAAmC;AAC3C,mBAAO,CAAC,8FAA8B;AACtC,iBAAiB,mBAAO,CAAC,4EAAqB,a;;;;;;;;;;;ACF9C,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,qGAAgC;AACxC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A;AACA,cAAc,mBAAO,CAAC,kEAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACpDa;AACb;AACA,eAAe,mBAAO,CAAC,8EAAgB;AACvC,eAAe,mBAAO,CAAC,8EAAgB;AACvC,eAAe,mBAAO,CAAC,4EAAe;AACtC,eAAe,mBAAO,CAAC,0EAAc;AACrC,eAAe,mBAAO,CAAC,sEAAY;AACnC;;AAEA;AACA,6BAA6B,mBAAO,CAAC,kEAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU,EAAE;AAC9C,mBAAmB,sCAAsC;AACzD,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,W;;;;;;;;;;;AChCD;AACA,kBAAkB,mBAAO,CAAC,0EAAc;AACxC,kBAAkB,mBAAO,CAAC,4EAAe;AACzC,kBAAkB,mBAAO,CAAC,kFAAkB;AAC5C,kBAAkB,mBAAO,CAAC,4EAAe;AACzC,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,4EAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,gEAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACxCA,qBAAqB,mBAAO,CAAC,0EAAc;AAC3C,qBAAqB,mBAAO,CAAC,oFAAmB;AAChD,qBAAqB,mBAAO,CAAC,gFAAiB;AAC9C;;AAEA,YAAY,mBAAO,CAAC,8EAAgB;AACpC;AACA;AACA;AACA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ACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA,sBAAsB,iCAAiC;AACvD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,8BAA8B;AAC5F;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,8EAAgB;AAC1B,EAAE,mBAAO,CAAC,4EAAe;AACzB,EAAE,mBAAO,CAAC,8EAAgB;;AAE1B,qBAAqB,mBAAO,CAAC,sEAAY;AACzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,gBAAgB;;AAE1E;AACA;AACA;AACA,oBAAoB,oBAAoB;;AAExC,0CAA0C,oBAAoB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,eAAe,EAAE;AACzC,wBAAwB,gBAAgB;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK,QAAQ,iCAAiC;AAClG,CAAC;AACD;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,oCAAoC,mBAAO,CAAC,gEAAS;AACrD;AACA;AACA;AACA;AACA;AACA,0C;;;;;;;;;;;AC1OA,mBAAO,CAAC,4EAAe,mB;;;;;;;;;;;ACAvB,mBAAO,CAAC,4EAAe,gB;;;;;;;;;;;ACAvB,mBAAO,CAAC,0FAAsB;AAC9B,oBAAoB,mBA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;ACfA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAKoB;AAC1B,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF,wHAAwH,mBAAmB,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yDAAyD,OAAO;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA,2DAA2D;AAC3D,+DAA+D;AAC/D,mEAAmE;AACnE,uEAAuE;AACvE;AACA,0DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iB;AACA;;AAEA,oFAAoF;AACpF;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;AACT,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAAmD,cAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA,0DAA0D,cAAc;AACxE;;AAEA;AACA;AACA;AACA,qCAAqC,0BAA0B,EAAE;AACjE,2CAA2C,eAAe;AAC1D;AACA;AACA;;AAEA;AACA,8DAA8D,+DAA+D;;AAE7H;AACA;;AAEA;AACA,kDAAkD,oBAAoB,WAAW;;AAEjF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,kCAAkC;;AAEzE;;AAEA,oDAAoD,sBAAsB;AAC1E;AACA;AACA;AACA;AACA;AACA,qFAAqF,sCAAsC,EAAE;AAC7H,sIAAsI,+CAA+C,yEAAyE,gBAAgB,EAAE;AAChR,GAAG;;AAEH,iHAAiH,4CAA4C,sEAAsE,gBAAgB,SAAS;;AAE5P,qCAAqC,0BAA0B;AAC/D,qBAAqB;;AAErB;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,yDAAyD;AACzD,iDAAiD;AACjD,iEAAiE;AACjE,mEAAmE;AACnE,iEAAiE;AACjE,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yIAAyI;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kNAAkN;AAClN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,2BAA2B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,MAAM,GAAG,aAAa,GAAG,gBAAgB,GAAG,qCAAqC,GAAG,UAAU;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,aAAa;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,+CAA+C;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,qEAAqE;AAC9I;AACA;AACA;AACA,8EAA8E,cAAc;AAC5F;AACA;AACA;AACA;AACA;AACA,0EAA0E,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA,uDAAuD,oEAAoE;AAC3H;AACA;AACA;AACA;AACA;AACA,4CAA4C,kEAAkE;AAC9G;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wCAAwC;AACvG;AACA;AACA;AACA;AACA,0EAA0E,mBAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qEAAqE;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,+BAA+B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sBAAsB,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mBAAmB;AACvF;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4DAA4D,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,2DAA2D;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6GAA6G;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA,8DAA8D,2IAA2I;AACzM;AACA;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6GAA6G;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAgE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB,GAAG,KAAK,YAAY,oBAAoB,IAAI,eAAe;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,gCAAgC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA,oCAAoC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,cAAc;AAC/B,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,YAAY;AAC7B,iBAAiB,SAAS;AAC1B,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC,iBAAiB,OAAO;AACxB,iBAAiB,YAAY;AAC7B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,YAAY;AAC7B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4DAA4D,yBAAyB,EAAE;AACvF,4DAA4D,yBAAyB,EAAE;AACvF;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oGAAoG;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,wDAAwD;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA,WAAW,EAAE;AACb,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA,+BAA+B,eAAe;AAC9C,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,+BAA+B,eAAe;AAC9C,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,MAAM,GAAG,aAAa,GAAG,gBAAgB,GAAG,qCAAqC,GAAG,UAAU;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oEAAoE,uFAAuF,EAAE;AAC7J;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B,EAAE;AACzE;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB,EAAE;AAC3E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,oDAAoD;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0BAA0B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,iCAAiC,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iCAAiC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4EAA4E,qDAAqD;AACjI;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,oBAAoB;AACzF;AACA;AACA,2EAA2E,0BAA0B;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yCAAyC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,6EAA6E;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mHAAmH;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,iEAAiE;AACvI;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qEAAqE;AAClI,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uCAAuC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mDAAmD,yCAAyC,EAAE;AAChK,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;AACtF;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qEAAqE,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yBAAyB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,sCAAsC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,gDAAgD,EAAE;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,6BAA6B;AACzG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6BAA6B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,mEAAmE,4BAA4B;AAC/F,SAAS;AACT;AACA;AACA,mEAAmE,6BAA6B;AAChG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6HAA6H;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc,GAAG,6CAA6C,GAAG,cAAc;AAClH;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qKAAqK;AACvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,sBAAsB;AAC3I,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,sBAAsB;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS,yCAAyC,EAAE;AAC7H;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2DAA2D;AAC5E,iBAAiB,oEAAoE;AACrF,iBAAiB,4DAA4D;AAC7E,iBAAiB;AACjB;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,wJAAwJ;AAClN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,sIAAsI,4EAA4E,EAAE;AAC7Q;AACA,+BAA+B,oGAAoG;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mUAAmU;AAC9V;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,kCAAkC,uCAAuC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC;AACpC,oBAAoB;AACpB,+BAA+B;AAC/B,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,gCAAgC;AAChC;AACA,2BAA2B,sBAAsB;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,wBAAwB;AACxB,qBAAqB;AACrB,qBAAqB;AACrB;AACA,uBAAuB,oCAAoC;AAC3D;AACA,aAAa;AACb;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oBAAoB;AACpB,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,WAAW;AAC1B,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB,YAAY,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB,YAAY,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iBAAiB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc,GAAG,6CAA6C,GAAG,cAAc;AAClH;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,+EAA+E,iBAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAA0D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mBAAmB;AACvF;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,oEAAoE,4BAA4B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qCAAqC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sJAAsJ;AACrN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;AACA,iGAAiG,0CAA0C;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yHAAyH;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B;AACpF;AACA,uDAAuD,+BAA+B;AACtF;AACA,wDAAwD;AACxD;AACA,8EAA8E;AAC9E;AACA,kDAAkD,+BAA+B;AACjF;AACA,oDAAoD,+BAA+B;AACnF;AACA,oDAAoD;AACpD;AACA,yDAAyD,+BAA+B;AACxF;AACA,2DAA2D,+BAA+B;AAC1F;AACA,mDAAmD,qCAAqC;AACxF;AACA,2DAA2D;AAC3D;AACA,iEAAiE;AACjE;AACA,8DAA8D;AAC9D;AACA;AACA,yDAAyD;AACzD;AACA,sDAAsD,qCAAqC;AAC3F;AACA,8DAA8D;AAC9D;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iIAAiI;AACvL;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA,UAAU;AACV;AACA;AACA,uEAAuE;AACvE;AACA,sFAAsF;AACtF;AACA,sEAAsE;AACtE;AACA,4EAA4E;AAC5E;AACA,0DAA0D;AAC1D;AACA,0FAA0F,UAAU;AACpG;AACA,2DAA2D;AAC3D;AACA,6DAA6D;AAC7D;AACA,qFAAqF;AACrF;AACA,yHAAyH;AACzH;AACA,6DAA6D;AAC7D;AACA,6DAA6D;AAC7D;AACA,+DAA+D;AAC/D;AACA,qDAAqD,2GAA2G;AAChK;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA,uDAAuD;AACvD;AACA,2DAA2D;AAC3D;AACA,6DAA6D,qEAAqE,gCAAgC;AAClK;AACA,mHAAmH;AACnH;AACA,+FAA+F;AAC/F;AACA,wEAAwE;AACxE;AACA,iEAAiE;AACjE;AACA,iEAAiE;AACjE;AACA,yDAAyD;AACzD;AACA,2DAA2D,8DAA8D,iCAAiC;AAC1J;AACA,2EAA2E;AAC3E;AACA,2DAA2D;AAC3D;AACA,2DAA2D;AAC3D;AACA,6DAA6D,iEAAiE,iCAAiC;AAC/J;AACA,kEAAkE;AAClE;AACA,wDAAwD;AACxD;AACA,qDAAqD;AACrD;AACA,6DAA6D,0BAA0B,2BAA2B;AAClH;AACA,gFAAgF;AAChF;AACA,2DAA2D,8DAA8D,kCAAkC;AAC3J;AACA,8DAA8D,8EAA8E,mBAAmB;AAC/J;AACA,yEAAyE;AACzE;AACA,yDAAyD;AACzD;AACA,oDAAoD;AACpD;AACA,kEAAkE;AAClE;AACA,yDAAyD;AACzD;AACA,+FAA+F,mDAAmD,kEAAkE;AACpN;AACA,sFAAsF;AACtF;AACA,gDAAgD;AAChD;AACA,oEAAoE;AACpE;AACA,8CAA8C;AAC9C;AACA,uMAAuM;AACvM;AACA,wDAAwD;AACxD;AACA,8DAA8D,yDAAyD,kCAAkC;AACzJ;AACA,+DAA+D;AAC/D;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA,wDAAwD,6EAA6E;AACrI;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gLAAgL;AAClO;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8JAA8J;AAChN;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA,+DAA+D,2DAA2D;AAC1H;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oFAAoF,wBAAwB;AAC5G;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,aAAa;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uIAAuI;AACzL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qHAAqH;AACvK;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,wBAAwB;AAC5G;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,0CAA0C,EAAE;AAC3G;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,6DAA6D,uCAAuC,EAAE;AACtG;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,2CAA2C,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iDAAiD;AAC9E;AACA;AACA,6BAA6B,0DAA0D;AACvF;AACA;AACA,6BAA6B,0DAA0D;AACvF;AACA;AACA,6BAA6B,6DAA6D;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,iBAAiB;AAClD,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,IAAI;AACnB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,8DAA8D;AAC9D,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uBAAuB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oLAAoL,UAAU,iBAAiB;AAC/M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,mBAAmB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iJAAiJ;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qEAAqE,8DAA8D,EAAE;AACrI;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yKAAyK;AACpO;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,cAAc,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,sCAAsC;AACtL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA,mDAAmD,gDAAgD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,wCAAwC,UAAU,qBAAqB,cAAc,gCAAgC;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,yKAAyK;AAChP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,gBAAgB,GAAG,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,wCAAwC;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA,0BAA0B,4CAA4C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D,+CAA+C;AAC/C,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD,mCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mBAAmB;AACnB,kBAAkB;AAClB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAwE;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,yDAAyD;AACzD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uDAAuD;AACvD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oDAAoD;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,sDAAsD;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,wDAAwD;AACxD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,oDAAoD;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yDAAyD;AACzD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wDAAwD;AACxD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6DAA6D;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oDAAoD;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qDAAqD;AACrD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE,MAAM,EAAE,QAAQ,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,eAAe;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uCAAuC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP,UAAU;AACV,CAAC;AACD,+B;;;;;;;;;;;ACvvjBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACnLtC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,uDAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;ACtXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AA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","file":"clappr.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Clappr\"] = factory();\n\telse\n\t\troot[\"Clappr\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/main.js\");\n","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /\n * \n * ```\n * Now, create the player:\n * ```html\n *
\n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.activeContainer.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.activeContainer.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n constructor(options) {\n super(options)\n const playbackDefaultOptions = { recycleVideo : true }\n const defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners(this.options.events)\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners(newEvents = {}, events = {}) {\n const hasNewEvents = Object.keys(newEvents).length > 0\n hasNewEvents && Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType, events[userEvent])\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.stopListening()\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.activeContainer.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.activeContainer.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.activeContainer.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.activeContainer.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage)\n return this\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.activeContainer.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.activeContainer.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options = {}) {\n this._registerOptionEventListeners(options.events, this.options.events)\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.activeContainer.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.activeContainer.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.activeContainer.getDuration()\n }\n}\n\nObject.assign(Player.prototype, ErrorMixin)\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nclass PlayerInfo {\n constructor() {\n this.options = {}\n this.playbackPlugins = []\n this.currentSize = { width: 0, height: 0 }\n }\n}\n\nPlayerInfo._players = {}\n\nPlayerInfo.getInstance = (playerId) => {\n return PlayerInfo._players[playerId] || (PlayerInfo._players[playerId] = new PlayerInfo())\n}\n\nexport default PlayerInfo\n","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport PlayerError from './components/error'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport MediaControl from './plugins/media_control'\nimport ClickToPausePlugin from './plugins/click_to_pause'\nimport DVRControls from './plugins/dvr_controls'\nimport Favicon from './plugins/favicon'\nimport Log from './plugins/log'\nimport Poster from './plugins/poster'\nimport SpinnerThreeBouncePlugin from './plugins/spinner_three_bounce'\nimport WaterMarkPlugin from './plugins/watermark'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n PlayerError,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n ClickToPausePlugin,\n DVRControls,\n Favicon,\n Log,\n Poster,\n SpinnerThreeBouncePlugin,\n WaterMarkPlugin,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n","// Copyright 2015 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Browser from '../../components/browser'\n\nimport flashHTML from './public/flash.html'\nimport './public/flash.scss'\n\nconst IE_CLASSID = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'\n\nexport default class BaseFlashPlayback extends Playback {\n get tagName() { return 'object' }\n get swfPath() { return '' }\n get wmode() { return 'transparent' }\n get template() { return template(flashHTML) }\n get attributes() {\n let type = 'application/x-shockwave-flash'\n\n if (Browser.isLegacyIE)\n type = ''\n\n\n return {\n class: 'clappr-flash-playback',\n type: type,\n width: '100%',\n height: '100%',\n data: this.swfPath,\n 'data-flash-playback': this.name\n }\n }\n\n setElement(element) {\n this.$el = element\n this.el = element[0]\n }\n\n render() {\n this.$el.attr('data', this.swfPath)\n this.$el.html(this.template({\n cid: this.cid,\n swfPath: this.swfPath,\n baseUrl: this.baseUrl,\n playbackId: this.uniqueId,\n wmode: this.wmode,\n callbackName: `window.Clappr.flashlsCallbacks.${this.cid}` })\n )\n\n if (Browser.isIE) {\n this.$('embed').remove()\n\n if (Browser.isLegacyIE)\n this.$el.attr('classid', IE_CLASSID)\n\n }\n\n this.el.id = this.cid\n\n return this\n }\n}\n","export default require('./base_flash_playback')\n","module.exports = \" \\\">\\n \\n \\n \\n \\n \\n \\\">\\n \\n &callback=<%= callbackName %>\\\">\\n\\\"\\n type=\\\"application/x-shockwave-flash\\\"\\n disabled=\\\"disabled\\\"\\n tabindex=\\\"-1\\\"\\n enablecontextmenu=\\\"false\\\"\\n allowScriptAccess=\\\"always\\\"\\n quality=\\\"autohigh\\\"\\n pluginspage=\\\"http://www.macromedia.com/go/getflashplayer\\\"\\n wmode=\\\"<%= wmode %>\\\"\\n swliveconnect=\\\"true\\\"\\n allowfullscreen=\\\"false\\\"\\n bgcolor=\\\"#000000\\\"\\n FlashVars=\\\"playbackId=<%= playbackId %>&callback=<%= callbackName %>\\\"\\n data=\\\"<%= swfPath %>\\\"\\n src=\\\"<%= swfPath %>\\\"\\n width=\\\"100%\\\"\\n height=\\\"100%\\\">\\n \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./flash.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./flash.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./flash.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { seekStringToSeconds } from '../../base/utils'\n\nimport BaseFlashPlayback from '../../playbacks/base_flash_playback'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport $ from 'clappr-zepto'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport flashSwf from './public/Player.swf'\n\nconst MAX_ATTEMPTS = 60\n\nexport default class Flash extends BaseFlashPlayback {\n get name() { return 'flash' }\n get swfPath() { return template(flashSwf)({ baseUrl: this._baseUrl }) }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this._currentState === 'ENDED'\n }\n\n /**\n * Determine if the playback is buffering.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return !!this._bufferingState && this._currentState !== 'ENDED'\n }\n\n constructor(...args) {\n super(...args)\n this._src = this.options.src\n this._baseUrl = this.options.baseUrl\n this._autoPlay = this.options.autoPlay\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume']\n this.settings.seekEnabled = true\n this._isReadyState = false\n this._addListeners()\n }\n\n\n _bootstrap() {\n if (this.el.playerPlay) {\n this.el.width = '100%'\n this.el.height = '100%'\n if (this._currentState === 'PLAYING') { this._firstPlay() } else {\n this._currentState = 'IDLE'\n this._autoPlay && this.play()\n }\n $('
').insertAfter(this.$el)\n if (this.getDuration() > 0)\n this._metadataLoaded()\n else\n Mediator.once(this.uniqueId + ':timeupdate', this._metadataLoaded, this)\n\n } else {\n this._attempts = this._attempts || 0\n if (++this._attempts <= MAX_ATTEMPTS)\n setTimeout(() => this._bootstrap(), 50)\n else\n this.trigger(Events.PLAYBACK_ERROR, { message: 'Max number of attempts reached' }, this.name)\n\n }\n }\n\n _metadataLoaded() {\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE, this.name)\n }\n\n getPlaybackType() {\n return Playback.VOD\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n _updateTime() {\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.getPosition(), total: this.el.getDuration() }, this.name)\n }\n\n _addListeners() {\n Mediator.on(this.uniqueId + ':progress', this._progress, this)\n Mediator.on(this.uniqueId + ':timeupdate', this._updateTime, this)\n Mediator.on(this.uniqueId + ':statechanged', this._checkState, this)\n Mediator.on(this.uniqueId + ':flashready', this._bootstrap, this)\n }\n\n stopListening() {\n super.stopListening()\n Mediator.off(this.uniqueId + ':progress')\n Mediator.off(this.uniqueId + ':timeupdate')\n Mediator.off(this.uniqueId + ':statechanged')\n Mediator.off(this.uniqueId + ':flashready')\n }\n\n _checkState() {\n if (this._isIdle || this._currentState === 'PAUSED') { return } else if (this._currentState !== 'PLAYING_BUFFERING' && this.el.getState() === 'PLAYING_BUFFERING') {\n this._bufferingState = true\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n this._currentState = 'PLAYING_BUFFERING'\n } else if (this.el.getState() === 'PLAYING') {\n this._bufferingState = false\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n this._currentState = 'PLAYING'\n } else if (this.el.getState() === 'IDLE') { this._currentState = 'IDLE' } else if (this.el.getState() === 'ENDED') {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: this.el.getDuration() }, this.name)\n this._currentState = 'ENDED'\n this._isIdle = true\n }\n }\n\n _progress() {\n if (this._currentState !== 'IDLE' && this._currentState !== 'ENDED') {\n this.trigger(Events.PLAYBACK_PROGRESS,{\n start: 0,\n current: this.el.getBytesLoaded(),\n total: this.el.getBytesTotal()\n })\n }\n }\n\n _firstPlay() {\n if (this.el.playerPlay) {\n this._isIdle = false\n this.el.playerPlay(this._src)\n this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this._checkInitialSeek())\n this._currentState = 'PLAYING'\n } else { this.listenToOnce(this, Events.PLAYBACK_READY, this._firstPlay) }\n\n }\n\n _checkInitialSeek() {\n let seekTime = seekStringToSeconds(window.location.href)\n if (seekTime !== 0)\n this.seekSeconds(seekTime)\n\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n if (this._currentState === 'PAUSED' || this._currentState === 'PLAYING_BUFFERING') {\n this._currentState = 'PLAYING'\n this.el.playerResume()\n this.trigger(Events.PLAYBACK_PLAY, this.name)\n } else if (this._currentState !== 'PLAYING') {\n this._firstPlay()\n this.trigger(Events.PLAYBACK_PLAY, this.name)\n }\n }\n\n volume(value) {\n if (this.isReady)\n this.el.playerVolume(value)\n else\n this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.volume(value))\n\n }\n\n pause() {\n this._currentState = 'PAUSED'\n this.el.playerPause()\n this.trigger(Events.PLAYBACK_PAUSE, this.name)\n }\n\n stop() {\n this.el.playerStop()\n this.trigger(Events.PLAYBACK_STOP)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: 0 }, this.name)\n }\n\n isPlaying() {\n return !!(this.isReady && this._currentState.indexOf('PLAYING') > -1)\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n getDuration() {\n return this.el.getDuration()\n }\n\n seekPercentage(percentage) {\n if (this.el.getDuration() > 0) {\n let seekSeconds = this.el.getDuration() * (percentage / 100)\n this.seek(seekSeconds)\n } else { this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.seekPercentage(percentage)) }\n\n }\n\n seek(time) {\n if (this.isReady && this.el.playerSeek) {\n this.el.playerSeek(time)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: time, total: this.el.getDuration() }, this.name)\n if (this._currentState === 'PAUSED')\n this.el.playerPause()\n\n } else { this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.seek(time)) }\n\n }\n\n destroy() {\n clearInterval(this.bootstrapId)\n super.stopListening()\n this.$el.remove()\n }\n}\n\nFlash.canPlay = function(resource) {\n if (!Browser.hasFlash || !resource || resource.constructor !== String) { return false } else {\n const resourceParts = resource.split('?')[0].match(/.*\\.(.*)$/) || []\n return resourceParts.length > 1 && !Browser.isMobile && resourceParts[1].toLowerCase().match(/^(mp4|mov|f4v|3gpp|3gp)$/)\n\n }\n}\n","import Flash from './flash'\nexport default Flash\n","module.exports = \"<%=baseUrl%>/4b76590b32dab62bc95c1b7951efae78.swf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseFlashPlayback from '../../playbacks/base_flash_playback'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Mediator from '../../components/mediator'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport HLSEvents from './flashls_events'\nimport hlsSwf from './public/HLSPlayer.swf'\nimport $ from 'clappr-zepto'\n\n\nconst MAX_ATTEMPTS = 60\nconst AUTO = -1\n\nexport default class FlasHLS extends BaseFlashPlayback {\n get name() { return 'flashls' }\n get swfPath() { return template(hlsSwf)({ baseUrl: this._baseUrl }) }\n\n get levels() { return this._levels || [] }\n get currentLevel() {\n if (this._currentLevel === null || this._currentLevel === undefined)\n return AUTO\n else\n return this._currentLevel //0 is a valid level ID\n\n }\n set currentLevel(id) {\n this._currentLevel = id\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START)\n this.el.playerSetCurrentLevel(id)\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this._hasEnded\n }\n\n /**\n * Determine if the playback is buffering.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return !!this._bufferingState && !this._hasEnded\n }\n\n constructor(...args) {\n super(...args)\n this._src = this.options.src\n this._baseUrl = this.options.baseUrl\n this._initHlsParameters(this.options)\n // TODO can this be private?\n this.highDefinition = false\n this._autoPlay = this.options.autoPlay\n this._loop = this.options.loop\n this._defaultSettings = {\n left: ['playstop'],\n default: ['seekbar'],\n right: ['fullscreen', 'volume', 'hd-indicator'],\n seekEnabled: false\n }\n this.settings = $.extend({}, this._defaultSettings)\n this._playbackType = Playback.LIVE\n this._hasEnded = false\n this._addListeners()\n }\n\n _initHlsParameters(options) {\n this._autoStartLoad = (options.autoStartLoad === undefined) ? true : options.autoStartLoad\n this._capLevelToStage = (options.capLevelToStage === undefined) ? false : options.capLevelToStage\n this._maxLevelCappingMode = (options.maxLevelCappingMode === undefined) ? 'downscale' : options.maxLevelCappingMode\n this._minBufferLength = (options.minBufferLength === undefined) ? -1 : options.minBufferLength\n this._minBufferLengthCapping = (options.minBufferLengthCapping === undefined) ? -1 : options.minBufferLengthCapping\n this._maxBufferLength = (options.maxBufferLength === undefined) ? 120 : options.maxBufferLength\n this._maxBackBufferLength = (options.maxBackBufferLength === undefined) ? 30 : options.maxBackBufferLength\n this._lowBufferLength = (options.lowBufferLength === undefined) ? 3 : options.lowBufferLength\n this._mediaTimePeriod = (options.mediaTimePeriod === undefined) ? 100 : options.mediaTimePeriod\n this._fpsDroppedMonitoringPeriod = (options.fpsDroppedMonitoringPeriod === undefined) ? 5000 : options.fpsDroppedMonitoringPeriod\n this._fpsDroppedMonitoringThreshold = (options.fpsDroppedMonitoringThreshold === undefined) ? 0.2 : options.fpsDroppedMonitoringThreshold\n this._capLevelonFPSDrop = (options.capLevelonFPSDrop === undefined) ? false : options.capLevelonFPSDrop\n this._smoothAutoSwitchonFPSDrop = (options.smoothAutoSwitchonFPSDrop === undefined) ? this.capLevelonFPSDrop : options.smoothAutoSwitchonFPSDrop\n this._switchDownOnLevelError = (options.switchDownOnLevelError === undefined) ? true : options.switchDownOnLevelError\n this._seekMode = (options.seekMode === undefined) ? 'ACCURATE' : options.seekMode\n this._keyLoadMaxRetry = (options.keyLoadMaxRetry === undefined) ? 3 : options.keyLoadMaxRetry\n this._keyLoadMaxRetryTimeout = (options.keyLoadMaxRetryTimeout === undefined) ? 64000 : options.keyLoadMaxRetryTimeout\n this._fragmentLoadMaxRetry = (options.fragmentLoadMaxRetry === undefined) ? 3 : options.fragmentLoadMaxRetry\n this._fragmentLoadMaxRetryTimeout = (options.fragmentLoadMaxRetryTimeout === undefined) ? 4000 : options.fragmentLoadMaxRetryTimeout\n this._fragmentLoadSkipAfterMaxRetry = (options.fragmentLoadSkipAfterMaxRetry === undefined) ? true : options.fragmentLoadSkipAfterMaxRetry\n this._maxSkippedFragments = (options.maxSkippedFragments === undefined) ? 5 : options.maxSkippedFragments\n this._flushLiveURLCache = (options.flushLiveURLCache === undefined) ? false : options.flushLiveURLCache\n this._initialLiveManifestSize = (options.initialLiveManifestSize === undefined) ? 1 : options.initialLiveManifestSize\n this._manifestLoadMaxRetry = (options.manifestLoadMaxRetry === undefined) ? 3 : options.manifestLoadMaxRetry\n this._manifestLoadMaxRetryTimeout = (options.manifestLoadMaxRetryTimeout === undefined) ? 64000 : options.manifestLoadMaxRetryTimeout\n this._manifestRedundantLoadmaxRetry = (options.manifestRedundantLoadmaxRetry === undefined) ? 3 : options.manifestRedundantLoadmaxRetry\n this._startFromBitrate = (options.startFromBitrate === undefined) ? -1 : options.startFromBitrate\n this._startFromLevel = (options.startFromLevel === undefined) ? -1 : options.startFromLevel\n this._autoStartMaxDuration = (options.autoStartMaxDuration === undefined) ? -1 : options.autoStartMaxDuration\n this._seekFromLevel = (options.seekFromLevel === undefined) ? -1 : options.seekFromLevel\n this._useHardwareVideoDecoder = (options.useHardwareVideoDecoder === undefined) ? false : options.useHardwareVideoDecoder\n this._hlsLogEnabled = (options.hlsLogEnabled === undefined) ? true : options.hlsLogEnabled\n this._logDebug = (options.logDebug === undefined) ? false : options.logDebug\n this._logDebug2 = (options.logDebug2 === undefined) ? false : options.logDebug2\n this._logWarn = (options.logWarn === undefined) ? true : options.logWarn\n this._logError = (options.logError === undefined) ? true : options.logError\n this._hlsMinimumDvrSize = (options.hlsMinimumDvrSize === undefined) ? 60 : options.hlsMinimumDvrSize\n }\n\n _addListeners() {\n Mediator.on(this.cid + ':flashready', () => this._bootstrap())\n Mediator.on(this.cid + ':timeupdate', (timeMetrics) => this._updateTime(timeMetrics))\n Mediator.on(this.cid + ':playbackstate', (state) => this._setPlaybackState(state))\n Mediator.on(this.cid + ':levelchanged', (level) => this._levelChanged(level))\n Mediator.on(this.cid + ':error', (code, url, message) => this._flashPlaybackError(code, url, message))\n Mediator.on(this.cid + ':fragmentloaded',(loadmetrics) => this._onFragmentLoaded(loadmetrics))\n Mediator.on(this.cid + ':levelendlist', (level) => this._onLevelEndlist(level))\n }\n\n stopListening() {\n super.stopListening()\n Mediator.off(this.cid + ':flashready')\n Mediator.off(this.cid + ':timeupdate')\n Mediator.off(this.cid + ':playbackstate')\n Mediator.off(this.cid + ':levelchanged')\n Mediator.off(this.cid + ':playbackerror')\n Mediator.off(this.cid + ':fragmentloaded')\n Mediator.off(this.cid + ':manifestloaded')\n Mediator.off(this.cid + ':levelendlist')\n }\n\n _bootstrap() {\n if (this.el.playerLoad) {\n this.el.width = '100%'\n this.el.height = '100%'\n this._isReadyState = true\n this._srcLoaded = false\n this._currentState = 'IDLE'\n this._setFlashSettings()\n this._updatePlaybackType()\n if (this._autoPlay || this._shouldPlayOnManifestLoaded)\n this.play()\n\n this.trigger(Events.PLAYBACK_READY, this.name)\n } else {\n this._bootstrapAttempts = this._bootstrapAttempts || 0\n if (++this._bootstrapAttempts <= MAX_ATTEMPTS) {\n setTimeout(() => this._bootstrap(), 50)\n } else {\n const formattedError = this.createError({\n code: 'playerLoadFail_maxNumberAttemptsReached',\n description: `${this.name} error: Max number of attempts reached`,\n level: PlayerError.Levels.FATAL,\n raw: {},\n })\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n }\n }\n\n _setFlashSettings() {\n this.el.playerSetAutoStartLoad(this._autoStartLoad)\n this.el.playerSetCapLevelToStage(this._capLevelToStage)\n this.el.playerSetMaxLevelCappingMode(this._maxLevelCappingMode)\n this.el.playerSetMinBufferLength(this._minBufferLength)\n this.el.playerSetMinBufferLengthCapping(this._minBufferLengthCapping)\n this.el.playerSetMaxBufferLength(this._maxBufferLength)\n this.el.playerSetMaxBackBufferLength(this._maxBackBufferLength)\n this.el.playerSetLowBufferLength(this._lowBufferLength)\n this.el.playerSetMediaTimePeriod(this._mediaTimePeriod)\n this.el.playerSetFpsDroppedMonitoringPeriod(this._fpsDroppedMonitoringPeriod)\n this.el.playerSetFpsDroppedMonitoringThreshold(this._fpsDroppedMonitoringThreshold)\n this.el.playerSetCapLevelonFPSDrop(this._capLevelonFPSDrop)\n this.el.playerSetSmoothAutoSwitchonFPSDrop(this._smoothAutoSwitchonFPSDrop)\n this.el.playerSetSwitchDownOnLevelError(this._switchDownOnLevelError)\n this.el.playerSetSeekMode(this._seekMode)\n this.el.playerSetKeyLoadMaxRetry(this._keyLoadMaxRetry)\n this.el.playerSetKeyLoadMaxRetryTimeout(this._keyLoadMaxRetryTimeout)\n this.el.playerSetFragmentLoadMaxRetry(this._fragmentLoadMaxRetry)\n this.el.playerSetFragmentLoadMaxRetryTimeout(this._fragmentLoadMaxRetryTimeout)\n this.el.playerSetFragmentLoadSkipAfterMaxRetry(this._fragmentLoadSkipAfterMaxRetry)\n this.el.playerSetMaxSkippedFragments(this._maxSkippedFragments)\n this.el.playerSetFlushLiveURLCache(this._flushLiveURLCache)\n this.el.playerSetInitialLiveManifestSize(this._initialLiveManifestSize)\n this.el.playerSetManifestLoadMaxRetry(this._manifestLoadMaxRetry)\n this.el.playerSetManifestLoadMaxRetryTimeout(this._manifestLoadMaxRetryTimeout)\n this.el.playerSetManifestRedundantLoadmaxRetry(this._manifestRedundantLoadmaxRetry)\n this.el.playerSetStartFromBitrate(this._startFromBitrate)\n this.el.playerSetStartFromLevel(this._startFromLevel)\n this.el.playerSetAutoStartMaxDuration(this._autoStartMaxDuration)\n this.el.playerSetSeekFromLevel(this._seekFromLevel)\n this.el.playerSetUseHardwareVideoDecoder(this._useHardwareVideoDecoder)\n this.el.playerSetLogInfo(this._hlsLogEnabled)\n this.el.playerSetLogDebug(this._logDebug)\n this.el.playerSetLogDebug2(this._logDebug2)\n this.el.playerSetLogWarn(this._logWarn)\n this.el.playerSetLogError(this._logError)\n }\n\n setAutoStartLoad(autoStartLoad) {\n this._autoStartLoad = autoStartLoad\n this.el.playerSetAutoStartLoad(this._autoStartLoad)\n }\n\n setCapLevelToStage(capLevelToStage) {\n this._capLevelToStage = capLevelToStage\n this.el.playerSetCapLevelToStage(this._capLevelToStage)\n }\n\n setMaxLevelCappingMode(maxLevelCappingMode) {\n this._maxLevelCappingMode = maxLevelCappingMode\n this.el.playerSetMaxLevelCappingMode(this._maxLevelCappingMode)\n }\n\n setSetMinBufferLength(minBufferLength) {\n this._minBufferLength = minBufferLength\n this.el.playerSetMinBufferLength(this._minBufferLength)\n }\n\n setMinBufferLengthCapping(minBufferLengthCapping) {\n this._minBufferLengthCapping = minBufferLengthCapping\n this.el.playerSetMinBufferLengthCapping(this._minBufferLengthCapping)\n }\n\n setMaxBufferLength(maxBufferLength) {\n this._maxBufferLength = maxBufferLength\n this.el.playerSetMaxBufferLength(this._maxBufferLength)\n }\n\n setMaxBackBufferLength(maxBackBufferLength) {\n this._maxBackBufferLength = maxBackBufferLength\n this.el.playerSetMaxBackBufferLength(this._maxBackBufferLength)\n }\n\n setLowBufferLength(lowBufferLength) {\n this._lowBufferLength = lowBufferLength\n this.el.playerSetLowBufferLength(this._lowBufferLength)\n }\n\n setMediaTimePeriod(mediaTimePeriod) {\n this._mediaTimePeriod = mediaTimePeriod\n this.el.playerSetMediaTimePeriod(this._mediaTimePeriod)\n }\n\n setFpsDroppedMonitoringPeriod(fpsDroppedMonitoringPeriod) {\n this._fpsDroppedMonitoringPeriod = fpsDroppedMonitoringPeriod\n this.el.playerSetFpsDroppedMonitoringPeriod(this._fpsDroppedMonitoringPeriod)\n }\n\n setFpsDroppedMonitoringThreshold(fpsDroppedMonitoringThreshold) {\n this._fpsDroppedMonitoringThreshold = fpsDroppedMonitoringThreshold\n this.el.playerSetFpsDroppedMonitoringThreshold(this._fpsDroppedMonitoringThreshold)\n }\n\n setCapLevelonFPSDrop(capLevelonFPSDrop) {\n this._capLevelonFPSDrop = capLevelonFPSDrop\n this.el.playerSetCapLevelonFPSDrop(this._capLevelonFPSDrop)\n }\n\n setSmoothAutoSwitchonFPSDrop(smoothAutoSwitchonFPSDrop) {\n this._smoothAutoSwitchonFPSDrop = smoothAutoSwitchonFPSDrop\n this.el.playerSetSmoothAutoSwitchonFPSDrop(this._smoothAutoSwitchonFPSDrop)\n }\n\n setSwitchDownOnLevelError(switchDownOnLevelError) {\n this._switchDownOnLevelError = switchDownOnLevelError\n this.el.playerSetSwitchDownOnLevelError(this._switchDownOnLevelError)\n }\n\n setSeekMode(seekMode) {\n this._seekMode = seekMode\n this.el.playerSetSeekMode(this._seekMode)\n }\n\n setKeyLoadMaxRetry(keyLoadMaxRetry) {\n this._keyLoadMaxRetry = keyLoadMaxRetry\n this.el.playerSetKeyLoadMaxRetry(this._keyLoadMaxRetry)\n }\n\n setKeyLoadMaxRetryTimeout(keyLoadMaxRetryTimeout) {\n this._keyLoadMaxRetryTimeout = keyLoadMaxRetryTimeout\n this.el.playerSetKeyLoadMaxRetryTimeout(this._keyLoadMaxRetryTimeout)\n }\n\n setFragmentLoadMaxRetry(fragmentLoadMaxRetry) {\n this._fragmentLoadMaxRetry = fragmentLoadMaxRetry\n this.el.playerSetFragmentLoadMaxRetry(this._fragmentLoadMaxRetry)\n }\n\n setFragmentLoadMaxRetryTimeout(fragmentLoadMaxRetryTimeout) {\n this._fragmentLoadMaxRetryTimeout = fragmentLoadMaxRetryTimeout\n this.el.playerSetFragmentLoadMaxRetryTimeout(this._fragmentLoadMaxRetryTimeout)\n }\n\n setFragmentLoadSkipAfterMaxRetry(fragmentLoadSkipAfterMaxRetry) {\n this._fragmentLoadSkipAfterMaxRetry = fragmentLoadSkipAfterMaxRetry\n this.el.playerSetFragmentLoadSkipAfterMaxRetry(this._fragmentLoadSkipAfterMaxRetry)\n }\n\n setMaxSkippedFragments(maxSkippedFragments) {\n this._maxSkippedFragments = maxSkippedFragments\n this.el.playerSetMaxSkippedFragments(this._maxSkippedFragments)\n }\n\n setFlushLiveURLCache(flushLiveURLCache) {\n this._flushLiveURLCache = flushLiveURLCache\n this.el.playerSetFlushLiveURLCache(this._flushLiveURLCache)\n }\n\n setInitialLiveManifestSize(initialLiveManifestSize) {\n this._initialLiveManifestSize = initialLiveManifestSize\n this.el.playerSetInitialLiveManifestSize(this._initialLiveManifestSize)\n }\n\n setManifestLoadMaxRetry(manifestLoadMaxRetry) {\n this._manifestLoadMaxRetry = manifestLoadMaxRetry\n this.el.playerSetManifestLoadMaxRetry(this._manifestLoadMaxRetry)\n }\n\n setManifestLoadMaxRetryTimeout(manifestLoadMaxRetryTimeout) {\n this._manifestLoadMaxRetryTimeout = manifestLoadMaxRetryTimeout\n this.el.playerSetManifestLoadMaxRetryTimeout(this._manifestLoadMaxRetryTimeout)\n }\n\n setManifestRedundantLoadmaxRetry(manifestRedundantLoadmaxRetry) {\n this._manifestRedundantLoadmaxRetry = manifestRedundantLoadmaxRetry\n this.el.playerSetManifestRedundantLoadmaxRetry(this._manifestRedundantLoadmaxRetry)\n }\n\n setStartFromBitrate(startFromBitrate) {\n this._startFromBitrate = startFromBitrate\n this.el.playerSetStartFromBitrate(this._startFromBitrate)\n }\n\n setStartFromLevel(startFromLevel) {\n this._startFromLevel = startFromLevel\n this.el.playerSetStartFromLevel(this._startFromLevel)\n }\n\n setAutoStartMaxDuration(autoStartMaxDuration) {\n this._autoStartMaxDuration = autoStartMaxDuration\n this.el.playerSetAutoStartMaxDuration(this._autoStartMaxDuration)\n }\n\n setSeekFromLevel(seekFromLevel) {\n this._seekFromLevel = seekFromLevel\n this.el.playerSetSeekFromLevel(this._seekFromLevel)\n }\n\n setUseHardwareVideoDecoder(useHardwareVideoDecoder) {\n this._useHardwareVideoDecoder = useHardwareVideoDecoder\n this.el.playerSetUseHardwareVideoDecoder(this._useHardwareVideoDecoder)\n }\n\n setSetLogInfo(hlsLogEnabled) {\n this._hlsLogEnabled = hlsLogEnabled\n this.el.playerSetLogInfo(this._hlsLogEnabled)\n }\n\n setLogDebug(logDebug) {\n this._logDebug = logDebug\n this.el.playerSetLogDebug(this._logDebug)\n }\n\n setLogDebug2(logDebug2) {\n this._logDebug2 = logDebug2\n this.el.playerSetLogDebug2(this._logDebug2)\n }\n\n setLogWarn(logWarn) {\n this._logWarn = logWarn\n this.el.playerSetLogWarn(this._logWarn)\n }\n\n setLogError(logError) {\n this._logError = logError\n this.el.playerSetLogError(this._logError)\n }\n\n _levelChanged(level) {\n const currentLevel = this.el.getLevels()[level]\n if (currentLevel) {\n this.highDefinition = (currentLevel.height >= 720 || (currentLevel.bitrate / 1000) >= 2000)\n this.trigger(Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinition)\n\n if (!this._levels || this._levels.length === 0) this._fillLevels()\n\n this.trigger(Events.PLAYBACK_BITRATE, {\n height: currentLevel.height,\n width: currentLevel.width,\n bandwidth: currentLevel.bitrate,\n bitrate: currentLevel.bitrate,\n level: level\n })\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END)\n }\n }\n\n _updateTime(timeMetrics) {\n if (this._currentState === 'IDLE')\n return\n\n\n const duration = this._normalizeDuration(timeMetrics.duration)\n let position = Math.min(Math.max(timeMetrics.position, 0), duration)\n const previousDVRStatus = this._dvrEnabled\n const livePlayback = (this._playbackType === Playback.LIVE)\n this._dvrEnabled = (livePlayback && duration > this._hlsMinimumDvrSize)\n\n if (duration === 100 || livePlayback === undefined)\n return\n\n\n if (this._dvrEnabled !== previousDVRStatus) {\n this._updateSettings()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE, this.name)\n }\n\n if (livePlayback && !this._dvrEnabled)\n position = duration\n\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: position, total: duration }, this.name)\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n if (this._currentState === 'PAUSED')\n this.el.playerResume()\n else if (!this._srcLoaded && this._currentState !== 'PLAYING')\n this._firstPlay()\n else\n this.el.playerPlay()\n\n }\n\n getPlaybackType() {\n return this._playbackType? this._playbackType: null\n }\n\n getCurrentTime() {\n return this.el.getPosition()\n }\n\n getCurrentLevelIndex() {\n return this._currentLevel\n }\n\n getCurrentLevel() {\n return this.levels[this.currentLevel]\n }\n\n getCurrentBitrate() {\n return this.levels[this.currentLevel].bitrate\n }\n\n setCurrentLevel(level) {\n this.currentLevel = level\n }\n\n isHighDefinitionInUse() {\n return this.highDefinition\n }\n\n getLevels() {\n return this.levels\n }\n\n _setPlaybackState(state) {\n if (['PLAYING_BUFFERING', 'PAUSED_BUFFERING'].indexOf(state) >= 0) {\n this._bufferingState = true\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n this._updateCurrentState(state)\n } else if (['PLAYING', 'PAUSED'].indexOf(state) >= 0) {\n if (['PLAYING_BUFFERING', 'PAUSED_BUFFERING', 'IDLE'].indexOf(this._currentState) >= 0) {\n this._bufferingState = false\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n }\n this._updateCurrentState(state)\n } else if (state === 'IDLE') {\n this._srcLoaded = false\n if (this._loop && ['PLAYING_BUFFERING', 'PLAYING'].indexOf(this._currentState) >= 0) {\n this.play()\n this.seek(0)\n } else {\n this._updateCurrentState(state)\n this._hasEnded = true\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: this.getDuration() }, this.name)\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n }\n }\n\n _updateCurrentState(state) {\n this._currentState = state\n if (state !== 'IDLE')\n this._hasEnded = false\n\n this._updatePlaybackType()\n if (state === 'PLAYING')\n this.trigger(Events.PLAYBACK_PLAY, this.name)\n else if (state === 'PAUSED')\n this.trigger(Events.PLAYBACK_PAUSE, this.name)\n\n }\n\n _updatePlaybackType() {\n this._playbackType = this.el.getType()\n if (this._playbackType) {\n this._playbackType = this._playbackType.toLowerCase()\n if (this._playbackType === Playback.VOD)\n this._startReportingProgress()\n else\n this._stopReportingProgress()\n\n }\n this.trigger(Events.PLAYBACK_PLAYBACKSTATE, { type: this._playbackType })\n }\n\n _startReportingProgress() {\n if (!this._reportingProgress)\n this._reportingProgress = true\n\n }\n\n _stopReportingProgress() {\n this._reportingProgress = false\n }\n\n _onFragmentLoaded(loadmetrics) {\n this.trigger(Events.PLAYBACK_FRAGMENT_LOADED, loadmetrics)\n if (this._reportingProgress && this.getCurrentTime()) {\n const buffered = this.getCurrentTime() + this.el.getbufferLength()\n this.trigger(Events.PLAYBACK_PROGRESS, {\n start: this.getCurrentTime(),\n current: buffered,\n total: this.el.getDuration()\n })\n }\n }\n\n _onLevelEndlist() {\n this._updatePlaybackType()\n }\n\n _firstPlay() {\n this._shouldPlayOnManifestLoaded = true\n if (this.el.playerLoad) {\n Mediator.once(this.cid + ':manifestloaded', (duration, loadmetrics) => this._manifestLoaded(duration, loadmetrics))\n this._setFlashSettings() //ensure flushLiveURLCache will work (#327)\n this.el.playerLoad(this._src)\n this._srcLoaded = true\n }\n }\n\n volume(value) {\n if (this.isReady)\n this.el.playerVolume(value)\n else\n this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.volume(value))\n\n }\n\n pause() {\n if (this._playbackType !== Playback.LIVE || this._dvrEnabled) {\n this.el.playerPause()\n if (this._playbackType === Playback.LIVE && this._dvrEnabled)\n this._updateDvr(true)\n\n }\n }\n\n stop() {\n this._srcLoaded = false\n this.el.playerStop()\n this.trigger(Events.PLAYBACK_STOP)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: 0 }, this.name)\n }\n\n isPlaying() {\n if (this._currentState)\n return !!(this._currentState.match(/playing/i))\n\n return false\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n getDuration() {\n return this._normalizeDuration(this.el.getDuration())\n }\n\n _normalizeDuration(duration) {\n if (this._playbackType === Playback.LIVE) {\n // estimate 10 seconds of buffer time for live streams for seek positions\n duration = Math.max(0, duration - 10)\n }\n return duration\n }\n\n seekPercentage(percentage) {\n const duration = this.el.getDuration()\n let time = 0\n if (percentage > 0)\n time = duration * percentage / 100\n\n this.seek(time)\n }\n\n seek(time) {\n const duration = this.getDuration()\n if (this._playbackType === Playback.LIVE) {\n // seek operations to a time within 3 seconds from live stream will position playhead back to live\n const dvrInUse = duration - time > 3\n this._updateDvr(dvrInUse)\n }\n this.el.playerSeek(time)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: time, total: duration }, this.name)\n }\n\n _updateDvr(dvrInUse) {\n const previousDvrInUse = !!this._dvrInUse\n this._dvrInUse = dvrInUse\n if (this._dvrInUse !== previousDvrInUse) {\n this._updateSettings()\n this.trigger(Events.PLAYBACK_DVR, this._dvrInUse)\n this.trigger(Events.PLAYBACK_STATS_ADD, { 'dvr': this._dvrInUse })\n }\n }\n\n _flashPlaybackError(code, url, message) {\n const error = {\n code,\n description: message,\n level: PlayerError.Levels.FATAL,\n raw: { code, url, message },\n }\n const formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n _manifestLoaded(duration, loadmetrics) {\n if (this._shouldPlayOnManifestLoaded) {\n this._shouldPlayOnManifestLoaded = false\n // this method initialises the player (and starts playback)\n // this needs to happen before PLAYBACK_LOADEDMETADATA is fired\n // as the user may call seek() in a LOADEDMETADATA listener.\n /// when playerPlay() is called the player seeks to 0\n this.el.playerPlay()\n }\n\n this._fillLevels()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: duration, data: loadmetrics })\n }\n\n _fillLevels() {\n const levels = this.el.getLevels()\n const levelsLength = levels.length\n this._levels = []\n\n for (let index = 0 ; index < levelsLength ; index++)\n this._levels.push({ id: index, label: `${levels[index].height}p`, level: levels[index] })\n\n this.trigger(Events.PLAYBACK_LEVELS_AVAILABLE, this._levels)\n }\n\n destroy() {\n this.stopListening()\n this.$el.remove()\n }\n\n _updateSettings() {\n this.settings = $.extend({}, this._defaultSettings)\n if (this._playbackType === Playback.VOD || this._dvrInUse) {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = true\n } else if (this._dvrEnabled) {\n this.settings.left = ['playpause']\n this.settings.seekEnabled = true\n } else { this.settings.seekEnabled = false }\n\n }\n\n get dvrEnabled() {\n return !!this._dvrEnabled\n }\n\n _createCallbacks() {\n if (!window.Clappr)\n window.Clappr = {}\n\n if (!window.Clappr.flashlsCallbacks)\n window.Clappr.flashlsCallbacks = {}\n\n this.flashlsEvents = new HLSEvents(this.cid)\n window.Clappr.flashlsCallbacks[this.cid] = (eventName, args) => {\n this.flashlsEvents[eventName].apply(this.flashlsEvents, args)\n }\n }\n\n render() {\n super.render()\n this._createCallbacks()\n return this\n }\n}\n\nFlasHLS.canPlay = function(resource, mimeType) {\n const resourceParts = resource.split('?')[0].match(/.*\\.(.*)$/) || []\n return Browser.hasFlash &&\n ((resourceParts.length > 1 && resourceParts[1].toLowerCase() === 'm3u8') ||\n mimeType === 'application/x-mpegURL' || mimeType === 'application/vnd.apple.mpegurl')\n}\n","import Mediator from '../../components/mediator'\n\nexport default class HLSEvents {\n constructor(instanceId) {\n this.instanceId = instanceId\n }\n ready() {\n Mediator.trigger(`${this.instanceId}:flashready`)\n }\n videoSize(width, height) {\n Mediator.trigger(`${this.instanceId}:videosizechanged`, width, height)\n }\n complete() {\n Mediator.trigger(`${this.instanceId}:complete`)\n }\n error(code, url, message) {\n Mediator.trigger(`${this.instanceId}:error`, code, url, message)\n }\n manifest(duration, loadmetrics) {\n Mediator.trigger(`${this.instanceId}:manifestloaded`, duration, loadmetrics)\n }\n audioLevelLoaded(loadmetrics) {\n Mediator.trigger(`${this.instanceId}:audiolevelloaded`, loadmetrics)\n }\n levelLoaded(loadmetrics) {\n Mediator.trigger(`${this.instanceId}:levelloaded`, loadmetrics)\n }\n levelEndlist(level) {\n Mediator.trigger(`${this.instanceId}:levelendlist`, level)\n }\n fragmentLoaded(loadmetrics) {\n Mediator.trigger(`${this.instanceId}:fragmentloaded`, loadmetrics)\n }\n fragmentPlaying(playmetrics) {\n Mediator.trigger(`${this.instanceId}:fragmentplaying`, playmetrics)\n }\n position(timemetrics) {\n Mediator.trigger(`${this.instanceId}:timeupdate`, timemetrics)\n }\n state(newState) {\n Mediator.trigger(`${this.instanceId}:playbackstate`, newState)\n }\n seekState(newState) {\n Mediator.trigger(`${this.instanceId}:seekstate`, newState)\n }\n switch(newLevel) {\n Mediator.trigger(`${this.instanceId}:levelchanged`, newLevel)\n }\n audioTracksListChange(trackList) {\n Mediator.trigger(`${this.instanceId}:audiotracklistchanged`, trackList)\n }\n audioTrackChange(trackId) {\n Mediator.trigger(`${this.instanceId}:audiotrackchanged`, trackId)\n }\n}\n\n","import FlasHLS from './flashls'\nexport default FlasHLS\n","module.exports = \"<%=baseUrl%>/8fa12a459188502b9f0d39b8a67d9e6c.swf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport HLSJS from 'hls.js'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport { now, assign, listContainsIgnoreCase } from '../../base/utils'\nimport Log from '../../plugins/log'\nimport PlayerError from '../../components/error'\n\nconst AUTO = -1\n\nexport default class HLS extends HTML5VideoPlayback {\n get name() { return 'hls' }\n\n get levels() { return this._levels || [] }\n\n get currentLevel() {\n if (this._currentLevel === null || this._currentLevel === undefined)\n return AUTO\n else\n return this._currentLevel //0 is a valid level ID\n\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n set currentLevel(id) {\n this._currentLevel = id\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START)\n if (this.options.playback.hlsUseNextLevel)\n this._hls.nextLevel = this._currentLevel\n else\n this._hls.currentLevel = this._currentLevel\n }\n\n get _startTime() {\n if (this._playbackType === Playback.LIVE && this._playlistType !== 'EVENT')\n return this._extrapolatedStartTime\n\n return this._playableRegionStartTime\n }\n\n get _now() {\n return now()\n }\n\n // the time in the video element which should represent the start of the sliding window\n // extrapolated to increase in real time (instead of jumping as the early segments are removed)\n get _extrapolatedStartTime() {\n if (!this._localStartTimeCorrelation)\n return this._playableRegionStartTime\n\n let corr = this._localStartTimeCorrelation\n let timePassed = this._now - corr.local\n let extrapolatedWindowStartTime = (corr.remote + timePassed) / 1000\n // cap at the end of the extrapolated window duration\n return Math.min(extrapolatedWindowStartTime, this._playableRegionStartTime + this._extrapolatedWindowDuration)\n }\n\n // the time in the video element which should represent the end of the content\n // extrapolated to increase in real time (instead of jumping as segments are added)\n get _extrapolatedEndTime() {\n let actualEndTime = this._playableRegionStartTime + this._playableRegionDuration\n if (!this._localEndTimeCorrelation)\n return actualEndTime\n\n let corr = this._localEndTimeCorrelation\n let timePassed = this._now - corr.local\n let extrapolatedEndTime = (corr.remote + timePassed) / 1000\n return Math.max(actualEndTime - this._extrapolatedWindowDuration, Math.min(extrapolatedEndTime, actualEndTime))\n }\n\n get _duration() {\n return this._extrapolatedEndTime - this._startTime\n }\n\n // Returns the duration (seconds) of the window that the extrapolated start time is allowed\n // to move in before being capped.\n // The extrapolated start time should never reach the cap at the end of the window as the\n // window should slide as chunks are removed from the start.\n // This also applies to the extrapolated end time in the same way.\n //\n // If chunks aren't being removed for some reason that the start time will reach and remain fixed at\n // playableRegionStartTime + extrapolatedWindowDuration\n //\n // <-- window duration -->\n // I.e playableRegionStartTime |-----------------------|\n // | --> . . .\n // . --> | --> . .\n // . . --> | --> .\n // . . . --> |\n // . . . .\n // extrapolatedStartTime\n get _extrapolatedWindowDuration() {\n if (this._segmentTargetDuration === null)\n return 0\n\n return this._extrapolatedWindowNumSegments * this._segmentTargetDuration\n }\n\n static get HLSJS() {\n return HLSJS\n }\n\n constructor(...args) {\n super(...args)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback = { ...this.options, ...this.options.playback }\n this._minDvrSize = typeof (this.options.hlsMinimumDvrSize) === 'undefined' ? 60 : this.options.hlsMinimumDvrSize\n // The size of the start time extrapolation window measured as a multiple of segments.\n // Should be 2 or higher, or 0 to disable. Should only need to be increased above 2 if more than one segment is\n // removed from the start of the playlist at a time. E.g if the playlist is cached for 10 seconds and new chunks are\n // added/removed every 5.\n this._extrapolatedWindowNumSegments = !this.options.playback || typeof (this.options.playback.extrapolatedWindowNumSegments) === 'undefined' ? 2 : this.options.playback.extrapolatedWindowNumSegments\n\n this._playbackType = Playback.VOD\n this._lastTimeUpdate = { current: 0, total: 0 }\n this._lastDuration = null\n // for hls streams which have dvr with a sliding window,\n // the content at the start of the playlist is removed as new\n // content is appended at the end.\n // this means the actual playable start time will increase as the\n // start content is deleted\n // For streams with dvr where the entire recording is kept from the\n // beginning this should stay as 0\n this._playableRegionStartTime = 0\n // {local, remote} remote is the time in the video element that should represent 0\n // local is the system time when the 'remote' measurment took place\n this._localStartTimeCorrelation = null\n // {local, remote} remote is the time in the video element that should represents the end\n // local is the system time when the 'remote' measurment took place\n this._localEndTimeCorrelation = null\n // if content is removed from the beginning then this empty area should\n // be ignored. \"playableRegionDuration\" excludes the empty area\n this._playableRegionDuration = 0\n // #EXT-X-PROGRAM-DATE-TIME\n this._programDateTime = 0\n // true when the actual duration is longer than hlsjs's live sync point\n // when this is false playableRegionDuration will be the actual duration\n // when this is true playableRegionDuration will exclude the time after the sync point\n this._durationExcludesAfterLiveSyncPoint = false\n // #EXT-X-TARGETDURATION\n this._segmentTargetDuration = null\n // #EXT-X-PLAYLIST-TYPE\n this._playlistType = null\n this._recoverAttemptsRemaining = this.options.hlsRecoverAttempts || 16\n }\n\n _setup() {\n this._ccIsSetup = false\n this._ccTracksUpdated = false\n this._hls = new HLSJS(assign({}, this.options.playback.hlsjsConfig))\n this._hls.on(HLSJS.Events.MEDIA_ATTACHED, () => this._hls.loadSource(this.options.src))\n this._hls.on(HLSJS.Events.LEVEL_LOADED, (evt, data) => this._updatePlaybackType(evt, data))\n this._hls.on(HLSJS.Events.LEVEL_UPDATED, (evt, data) => this._onLevelUpdated(evt, data))\n this._hls.on(HLSJS.Events.LEVEL_SWITCHING, (evt,data) => this._onLevelSwitch(evt, data))\n this._hls.on(HLSJS.Events.FRAG_LOADED, (evt, data) => this._onFragmentLoaded(evt, data))\n this._hls.on(HLSJS.Events.ERROR, (evt, data) => this._onHLSJSError(evt, data))\n this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, (evt, data) => this._onSubtitleLoaded(evt, data))\n this._hls.on(HLSJS.Events.SUBTITLE_TRACKS_UPDATED, () => this._ccTracksUpdated = true)\n this._hls.attachMedia(this.el)\n }\n\n render() {\n this._ready()\n return super.render()\n }\n\n _ready() {\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _recover(evt, data, error) {\n if (!this._recoveredDecodingError) {\n this._recoveredDecodingError = true\n this._hls.recoverMediaError()\n } else if (!this._recoveredAudioCodecError) {\n this._recoveredAudioCodecError = true\n this._hls.swapAudioCodec()\n this._hls.recoverMediaError()\n } else {\n Log.error('hlsjs: failed to recover', { evt, data })\n error.level = PlayerError.Levels.FATAL\n const formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n }\n }\n\n // override\n _setupSrc(srcUrl) { // eslint-disable-line no-unused-vars\n // this playback manages the src on the video element itself\n }\n\n _startTimeUpdateTimer() {\n if (this._timeUpdateTimer) return\n\n this._timeUpdateTimer = setInterval(() => {\n this._onDurationChange()\n this._onTimeUpdate()\n }, 100)\n }\n\n _stopTimeUpdateTimer() {\n if (!this._timeUpdateTimer) return\n\n clearInterval(this._timeUpdateTimer)\n this._timeUpdateTimer = null\n }\n\n getProgramDateTime() {\n return this._programDateTime\n }\n // the duration on the video element itself should not be used\n // as this does not necesarily represent the duration of the stream\n // https://github.com/clappr/clappr/issues/668#issuecomment-157036678\n getDuration() {\n return this._duration\n }\n\n getCurrentTime() {\n // e.g. can be < 0 if user pauses near the start\n // eventually they will then be kicked to the end by hlsjs if they run out of buffer\n // before the official start time\n return Math.max(0, this.el.currentTime - this._startTime)\n }\n\n // the time that \"0\" now represents relative to when playback started\n // for a stream with a sliding window this will increase as content is\n // removed from the beginning\n getStartTimeOffset() {\n return this._startTime\n }\n\n seekPercentage(percentage) {\n let seekTo = this._duration\n if (percentage > 0)\n seekTo = this._duration * (percentage / 100)\n\n this.seek(seekTo)\n }\n\n seek(time) {\n if (time < 0) {\n Log.warn('Attempt to seek to a negative time. Resetting to live point. Use seekToLivePoint() to seek to the live point.')\n time = this.getDuration()\n }\n // assume live if time within 3 seconds of end of stream\n this.dvrEnabled && this._updateDvr(time < this.getDuration()-3)\n time += this._startTime\n super.seek(time)\n }\n\n seekToLivePoint() {\n this.seek(this.getDuration())\n }\n\n _updateDvr(status) {\n this.trigger(Events.PLAYBACK_DVR, status)\n this.trigger(Events.PLAYBACK_STATS_ADD, { 'dvr': status })\n }\n\n _updateSettings() {\n if (this._playbackType === Playback.VOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else if (this.dvrEnabled)\n this.settings.left = ['playpause']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n _onHLSJSError(evt, data) {\n const error = {\n code: `${data.type}_${data.details}`,\n description: `${this.name} error: type: ${data.type}, details: ${data.details}`,\n raw: data,\n }\n let formattedError\n if (data.response) error.description += `, response: ${JSON.stringify(data.response)}`\n // only report/handle errors if they are fatal\n // hlsjs should automatically handle non fatal errors\n if (data.fatal) {\n if (this._recoverAttemptsRemaining > 0) {\n this._recoverAttemptsRemaining -= 1\n switch (data.type) {\n case HLSJS.ErrorTypes.NETWORK_ERROR:\n switch (data.details) {\n // The following network errors cannot be recovered with HLS.startLoad()\n // For more details, see https://github.com/video-dev/hls.js/blob/master/doc/design.md#error-detection-and-handling\n // For \"level load\" fatal errors, see https://github.com/video-dev/hls.js/issues/1138\n case HLSJS.ErrorDetails.MANIFEST_LOAD_ERROR:\n case HLSJS.ErrorDetails.MANIFEST_LOAD_TIMEOUT:\n case HLSJS.ErrorDetails.MANIFEST_PARSING_ERROR:\n case HLSJS.ErrorDetails.LEVEL_LOAD_ERROR:\n case HLSJS.ErrorDetails.LEVEL_LOAD_TIMEOUT:\n Log.error('hlsjs: unrecoverable network fatal error.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n break\n default:\n Log.warn('hlsjs: trying to recover from network error.', { evt, data })\n error.level = PlayerError.Levels.WARN\n this.createError(error)\n this._hls.startLoad()\n break\n }\n break\n case HLSJS.ErrorTypes.MEDIA_ERROR:\n Log.warn('hlsjs: trying to recover from media error.', { evt, data })\n error.level = PlayerError.Levels.WARN\n this.createError(error)\n this._recover(evt, data, error)\n break\n default:\n Log.error('hlsjs: could not recover from error.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n break\n }\n } else {\n Log.error('hlsjs: could not recover from error after maximum number of attempts.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n }\n } else {\n // Transforms HLSJS.ErrorDetails.KEY_LOAD_ERROR non-fatal error to\n // playback fatal error if triggerFatalErrorOnResourceDenied playback\n // option is set. HLSJS.ErrorTypes.KEY_SYSTEM_ERROR are fatal errors\n // and therefore already handled.\n if (this.options.playback.triggerFatalErrorOnResourceDenied && this._keyIsDenied(data)) {\n Log.error('hlsjs: could not load decrypt key.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n return\n }\n\n error.level = PlayerError.Levels.WARN\n this.createError(error)\n Log.warn('hlsjs: non-fatal error occurred', { evt, data })\n }\n }\n\n _keyIsDenied(data) {\n return data.type === HLSJS.ErrorTypes.NETWORK_ERROR\n && data.details === HLSJS.ErrorDetails.KEY_LOAD_ERROR\n && data.response\n && data.response.code >= 400\n }\n\n _onTimeUpdate() {\n let update = { current: this.getCurrentTime(), total: this.getDuration(), firstFragDateTime: this.getProgramDateTime() }\n let isSame = this._lastTimeUpdate && (\n update.current === this._lastTimeUpdate.current &&\n update.total === this._lastTimeUpdate.total)\n if (isSame)\n return\n\n this._lastTimeUpdate = update\n this.trigger(Events.PLAYBACK_TIMEUPDATE, update, this.name)\n }\n\n _onDurationChange() {\n let duration = this.getDuration()\n if (this._lastDuration === duration)\n return\n\n this._lastDuration = duration\n super._onDurationChange()\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, {\n // for a stream with sliding window dvr something that is buffered my slide off the start of the timeline\n start: Math.max(0, this.el.buffered.start(i) - this._playableRegionStartTime),\n end: Math.max(0, this.el.buffered.end(i) - this._playableRegionStartTime)\n }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.getDuration()\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n play() {\n if (!this._hls)\n this._setup()\n\n super.play()\n this._startTimeUpdateTimer()\n }\n\n pause() {\n if (!this._hls)\n return\n\n super.pause()\n if (this.dvrEnabled)\n this._updateDvr(true)\n\n }\n\n stop() {\n this._stopTimeUpdateTimer()\n if (this._hls) {\n super.stop()\n this._hls.destroy()\n delete this._hls\n }\n }\n\n destroy() {\n this._stopTimeUpdateTimer()\n if (this._hls) {\n this._hls.destroy()\n delete this._hls\n }\n super.destroy()\n }\n\n _updatePlaybackType(evt, data) {\n this._playbackType = data.details.live ? Playback.LIVE : Playback.VOD\n this._onLevelUpdated(evt, data)\n\n // Live stream subtitle tracks detection hack (may not immediately available)\n if (this._ccTracksUpdated && this._playbackType === Playback.LIVE && this.hasClosedCaptionsTracks)\n this._onSubtitleLoaded()\n\n }\n\n _fillLevels() {\n this._levels = this._hls.levels.map((level, index) => {\n return { id: index, level: level, label: `${level.bitrate/1000}Kbps` }\n })\n this.trigger(Events.PLAYBACK_LEVELS_AVAILABLE, this._levels)\n }\n\n _onLevelUpdated(evt, data) {\n this._segmentTargetDuration = data.details.targetduration\n this._playlistType = data.details.type || null\n\n let startTimeChanged = false\n let durationChanged = false\n let fragments = data.details.fragments\n let previousPlayableRegionStartTime = this._playableRegionStartTime\n let previousPlayableRegionDuration = this._playableRegionDuration\n\n if (fragments.length === 0)\n return\n\n\n // #EXT-X-PROGRAM-DATE-TIME\n if (fragments[0].rawProgramDateTime)\n this._programDateTime = fragments[0].rawProgramDateTime\n\n\n if (this._playableRegionStartTime !== fragments[0].start) {\n startTimeChanged = true\n this._playableRegionStartTime = fragments[0].start\n }\n\n if (startTimeChanged) {\n if (!this._localStartTimeCorrelation) {\n // set the correlation to map to middle of the extrapolation window\n this._localStartTimeCorrelation = {\n local: this._now,\n remote: (fragments[0].start + (this._extrapolatedWindowDuration/2)) * 1000\n }\n } else {\n // check if the correlation still works\n let corr = this._localStartTimeCorrelation\n let timePassed = this._now - corr.local\n // this should point to a time within the extrapolation window\n let startTime = (corr.remote + timePassed) / 1000\n if (startTime < fragments[0].start) {\n // our start time is now earlier than the first chunk\n // (maybe the chunk was removed early)\n // reset correlation so that it sits at the beginning of the first available chunk\n this._localStartTimeCorrelation = {\n local: this._now,\n remote: fragments[0].start * 1000\n }\n } else if (startTime > previousPlayableRegionStartTime + this._extrapolatedWindowDuration) {\n // start time was past the end of the old extrapolation window (so would have been capped)\n // see if now that time would be inside the window, and if it would be set the correlation\n // so that it resumes from the time it was at at the end of the old window\n // update the correlation so that the time starts counting again from the value it's on now\n this._localStartTimeCorrelation = {\n local: this._now,\n remote: Math.max(fragments[0].start, previousPlayableRegionStartTime + this._extrapolatedWindowDuration) * 1000\n }\n }\n }\n }\n\n let newDuration = data.details.totalduration\n // if it's a live stream then shorten the duration to remove access\n // to the area after hlsjs's live sync point\n // seeks to areas after this point sometimes have issues\n if (this._playbackType === Playback.LIVE) {\n let fragmentTargetDuration = data.details.targetduration\n let hlsjsConfig = this.options.playback.hlsjsConfig || {}\n let liveSyncDurationCount = hlsjsConfig.liveSyncDurationCount || HLSJS.DefaultConfig.liveSyncDurationCount\n let hiddenAreaDuration = fragmentTargetDuration * liveSyncDurationCount\n if (hiddenAreaDuration <= newDuration) {\n newDuration -= hiddenAreaDuration\n this._durationExcludesAfterLiveSyncPoint = true\n } else { this._durationExcludesAfterLiveSyncPoint = false }\n\n }\n\n if (newDuration !== this._playableRegionDuration) {\n durationChanged = true\n this._playableRegionDuration = newDuration\n }\n\n // Note the end time is not the playableRegionDuration\n // The end time will always increase even if content is removed from the beginning\n let endTime = fragments[0].start + newDuration\n let previousEndTime = previousPlayableRegionStartTime + previousPlayableRegionDuration\n let endTimeChanged = endTime !== previousEndTime\n if (endTimeChanged) {\n if (!this._localEndTimeCorrelation) {\n // set the correlation to map to the end\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: endTime * 1000\n }\n } else {\n // check if the correlation still works\n let corr = this._localEndTimeCorrelation\n let timePassed = this._now - corr.local\n // this should point to a time within the extrapolation window from the end\n let extrapolatedEndTime = (corr.remote + timePassed) / 1000\n if (extrapolatedEndTime > endTime) {\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: endTime * 1000\n }\n } else if (extrapolatedEndTime < endTime - this._extrapolatedWindowDuration) {\n // our extrapolated end time is now earlier than the extrapolation window from the actual end time\n // (maybe a chunk became available early)\n // reset correlation so that it sits at the beginning of the extrapolation window from the end time\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: (endTime - this._extrapolatedWindowDuration) * 1000\n }\n } else if (extrapolatedEndTime > previousEndTime) {\n // end time was past the old end time (so would have been capped)\n // set the correlation so that it resumes from the time it was at at the end of the old window\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: previousEndTime * 1000\n }\n }\n }\n }\n\n // now that the values have been updated call any methods that use on them so they get the updated values\n // immediately\n durationChanged && this._onDurationChange()\n startTimeChanged && this._onProgress()\n }\n\n _onFragmentLoaded(evt, data) {\n this.trigger(Events.PLAYBACK_FRAGMENT_LOADED, data)\n }\n\n _onSubtitleLoaded() {\n // This event may be triggered multiple times\n // Setup CC only once (disable CC by default)\n if (!this._ccIsSetup) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this._ccIsSetup = true\n }\n }\n\n _onLevelSwitch(evt, data) {\n if (!this.levels.length)\n this._fillLevels()\n\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END)\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH, data)\n let currentLevel = this._hls.levels[data.level]\n if (currentLevel) {\n // TODO should highDefinition be private and maybe have a read only accessor if it's used somewhere\n this.highDefinition = (currentLevel.height >= 720 || (currentLevel.bitrate / 1000) >= 2000)\n this.trigger(Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinition)\n this.trigger(Events.PLAYBACK_BITRATE, {\n height: currentLevel.height,\n width: currentLevel.width,\n bandwidth: currentLevel.bitrate,\n bitrate: currentLevel.bitrate,\n level: data.level\n })\n }\n }\n\n get dvrEnabled() {\n // enabled when:\n // - the duration does not include content after hlsjs's live sync point\n // - the playable region duration is longer than the configured duration to enable dvr after\n // - the playback type is LIVE.\n return (this._durationExcludesAfterLiveSyncPoint && this._duration >= this._minDvrSize && this.getPlaybackType() === Playback.LIVE)\n }\n\n getPlaybackType() {\n return this._playbackType\n }\n\n isSeekEnabled() {\n return (this._playbackType === Playback.VOD || this.dvrEnabled)\n }\n}\n\nHLS.canPlay = function(resource, mimeType) {\n const resourceParts = resource.split('?')[0].match(/.*\\.(.*)$/) || []\n const isHls = ((resourceParts.length > 1 && resourceParts[1].toLowerCase() === 'm3u8') || listContainsIgnoreCase(mimeType, ['application/vnd.apple.mpegurl', 'application/x-mpegURL']))\n\n return !!(HLSJS.isSupported() && isHls)\n}\n","import HLS from './hls'\nexport default HLS\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, seekStringToSeconds, DomRecycler, canAutoPlayMedia } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport Events from '../../base/events'\nimport Log from '../../plugins/log'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\nconst UNKNOWN_ERROR = { code: 'unknown', message: 'unknown' }\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n this.options.autoPlay && this.attemptAutoPlay()\n }\n\n configure(options) {\n super.configure(options)\n this.el.loop = !!options.loop\n }\n\n // See Playback.attemptAutoPlay()\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => {\n error && Log.warn(this.name, 'autoplay error.', { result, error })\n\n // https://github.com/clappr/clappr/issues/1076\n result && process.nextTick(() => !this._destroyed && this.play())\n })\n }\n\n // See Playback.canAutoPlay()\n canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay)\n cb(true, null)\n\n let opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false, // Known issue: mediacontrols may asynchronously mute video\n }\n\n // Use current video element if recycling feature enabled with mobile devices\n if (Browser.isMobile && DomRecycler.options.recycleVideo)\n opts.element = this.el\n\n // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n canAutoPlayMedia(cb, opts)\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n if (!this.isPlaying()) {\n super.consent()\n this.el.load()\n }\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n this.el.volume = value / 100\n }\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return this.el.muted === true || this.el.volume === 0\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n const { code, message } = this.el.error || UNKNOWN_ERROR\n const isUnknownError = code === UNKNOWN_ERROR.code\n\n const formattedError = this.createError({\n code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n })\n\n if (isUnknownError)\n Log.warn(this.name, 'HTML5 unknown error: ', formattedError)\n else\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n super.destroy()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n","import HTML5Video from './html5_video'\nexport default HTML5Video\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n \\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n","import HTMLImg from './html_img'\nexport default HTMLImg\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import NoOp from './no_op'\nexport default NoOp\n","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for (let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n","module.exports = \" \\n<%=message%>
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n","import ClickToPausePlugin from './click_to_pause'\nexport default ClickToPausePlugin\n","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport ccIcon from '../../icons/09-cc.svg'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(ccIcon)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n","module.exports = \"\\\"> \\n
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n","import DVRControls from './dvr_controls'\nexport default DVRControls\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","module.exports = \"<%= live %>
\\n\\\"><%= backToLive %> \\n\";","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\nimport { Fullscreen } from '../base/utils'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && Fullscreen.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n","import Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport PlayerError from '../../components/error/'\n\nimport reloadIcon from '../../icons/10-reload.svg'\nimport templateHtml from './public/error_screen.html'\nimport './public/error_screen.scss'\n\nexport default class ErrorScreen extends UICorePlugin {\n get name() { return 'error_screen' }\n get template() { return template(templateHtml) }\n get container() { return this.core.getCurrentContainer() }\n get attributes() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': '',\n }\n }\n\n constructor(core) {\n super(core)\n\n if (this.options.disableErrorScreen) return this.disable()\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged)\n }\n\n bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload')\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this))\n }\n\n reload() {\n this.listenToOnce(this.core, Events.CORE_READY, () => this.container.play())\n this.core.load(this.options.sources, this.options.mimeType)\n this.unbindReload()\n }\n\n unbindReload() {\n this.reloadButton && this.reloadButton.off('click')\n }\n\n onContainerChanged() {\n this.err = null\n this.unbindReload()\n this.hide()\n }\n\n onError(err = {}) {\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err\n this.container.disableMediaControl()\n this.container.stop()\n this.show()\n }\n }\n\n show() {\n this.render()\n this.$el.show()\n }\n\n hide() {\n this.$el.hide()\n }\n\n render() {\n if (!this.err) return\n\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon,\n }))\n\n this.core.$el.append(this.el)\n\n this.bindReload()\n\n return this\n }\n}\n","import ErrorScreen from './error_screen'\nexport default ErrorScreen\n","module.exports = \"\\n <% if (icon) { %>\\n
<%= icon %>
\\n <% } %>\\n
<%= title %>
\\n
<%= message %>
\\n
Error code: <%= code %>
\\n
<%= reloadIcon %>
\\n
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.core.activeContainer && this.containerChanged()\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.activeContainer\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $(' ')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $(' ')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(playIcon)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(pauseIcon)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n","import Favicon from './favicon.js'\nexport default Favicon\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady() {\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n","import Log from './log'\nexport default Log\n","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n","import MediaControl from './media_control'\nexport default MediaControl\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\n\nimport Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\n\nimport $ from 'clappr-zepto'\n\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\nimport stopIcon from '../../icons/03-stop.svg'\nimport volumeIcon from '../../icons/04-volume.svg'\nimport volumeMuteIcon from '../../icons/05-mute.svg'\nimport fullscreenIcon from '../../icons/06-expand.svg'\nimport exitFullscreenIcon from '../../icons/07-shrink.svg'\nimport hdIcon from '../../icons/08-hd.svg'\n\nexport default class MediaControl extends UICorePlugin {\n get name() { return 'media_control' }\n get disabled() {\n let playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP\n return this.userDisabled || playbackIsNOOP\n }\n\n get container() { return this.core && this.core.activeContainer }\n\n get playback() { return this.core && this.core.activePlayback }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(core) {\n super(core)\n this.persistConfig = this.options.persistConfig\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n this.kibo = new Kibo(this.options.focusElement)\n this.bindKeyEvents()\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n } else {\n this.settings = {}\n }\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n getExternalInterface() {\n return {\n setVolume: this.setVolume,\n getVolume: () => this.volume,\n }\n }\n\n bindEvents() {\n this.stopListening()\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged)\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show)\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay))\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindContainerEvents()\n }\n\n bindContainerEvents() {\n if (!this.container) return\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.unbindKeyEvents()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.bindKeyEvents()\n this.show()\n }\n\n play() {\n this.container && this.container.play()\n }\n\n pause() {\n this.container && this.container.pause()\n }\n\n stop() {\n this.container && this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.playback && this.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return\n\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) {\n this.$volumeIcon.append(volumeIcon)\n } else {\n this.$volumeIcon.append(volumeMuteIcon)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon)\n this.$playStopToggle.append(stopIcon)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n Browser.isMobile && this.show()\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n let icon = Fullscreen.isFullscreen() ? exitFullscreenIcon : fullscreenIcon\n this.$fullscreenToggle.append(icon)\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320')\n }\n\n togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play()\n return false\n }\n\n togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play()\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n event && event.preventDefault()\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n event && event.preventDefault()\n }\n\n stopDrag(event) {\n this.draggingSeekBar && this.seek(event)\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n this.setVolume(this.muted ? 100 : 0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container && this.container.isReady) {\n this.container.setVolume(value)\n } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container)\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady())\n else\n setWhenContainerReady()\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.core.toggleFullscreen()\n this.resetUserKeepVisible()\n }\n\n onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null\n this.bindEvents()\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n // set the new container to match the volume of the last one\n this.setInitialVolume()\n this.changeTogglePlay()\n this.bindContainerEvents()\n this.settingsUpdate()\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n this.container && this.container.mediaControlDisabled && this.disable()\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout)\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse()))\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container && this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled) return\n\n const timeout = 2000\n let mousePointerMoved = event && (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY)\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n const showing = true\n this.updateCursorStyle(showing)\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false) return\n\n let hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible\n let hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n const showing = false\n this.updateCursorStyle(showing)\n }\n }\n\n updateCursorStyle(showing) {\n if (showing)\n this.core.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.core.$el.addClass('nocursor')\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container && this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(playIcon)\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon)\n $layer.find('button.media-control-button[data-stop]').append(stopIcon)\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.$volumeIcon.append(volumeIcon)\n this.$fullscreenToggle.append(fullscreenIcon)\n this.$hdIndicator.append(hdIcon)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n // not changed since last update\n if (this.displayedSeekBarPercentage === value) return\n\n this.displayedSeekBarPercentage = value\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, callback) {\n this.kibo.down(key, () => {\n this.show()\n return callback()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement)\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => {\n this.bindKeyAndShow(i, () => {\n this.settings.seekEnabled && this.container && this.container.seekPercentage(i * 10)\n })\n })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor)\n }\n\n destroy() {\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\n super.destroy()\n }\n\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure() {\n this.options.chromeless ? this.disable() : this.enable()\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = this.options.hideMediaControlDelay || 2000\n this.settings && this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n\n if (this.container) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n this.disabled && this.hide()\n }\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n !this.settings.seekEnabled && this.$seekBarContainer.addClass('seek-disabled')\n !Browser.isMobile && !this.options.disableKeyboardShortcuts && this.bindKeyEvents()\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.core.$el.append(this.el)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n","module.exports = \"<%=baseUrl%>/a8c874b93b3d848f39a71260c57e3863.cur\";","module.exports = \"
\\n\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PosterPlugin from './poster'\nexport default PosterPlugin\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport PlayerError from '../../components/error/error'\nimport posterHTML from './public/poster.html'\nimport playIcon from '../../icons/01-play.svg'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.showPlayButton()\n }\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction))\n this.showPlayButton()\n else\n this.hidePlayButton()\n }\n\n showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return\n\n this.$playButton.show()\n this.$el.addClass('clickable')\n }\n\n hidePlayButton() {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n\n clicked() {\n // Let \"click_to_pause\" plugin handle click event if media has started playing\n if (! this.hasStartedPlaying) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.updatePlayButton(showPlayButton)\n this.updatePoster()\n }\n\n updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster()\n else this.hidePoster()\n }\n\n showPoster() {\n this.container.disableMediaControl()\n this.$el.show()\n }\n\n hidePoster() {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(playIcon)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import SeekTime from './seek_time'\nexport default SeekTime\n","module.exports = \" \\n \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n","import SpinnerThreeBouncePlugin from './spinner_three_bounce'\nexport default SpinnerThreeBouncePlugin\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n","import StatsPlugin from './stats'\nexport default StatsPlugin\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const fallbackLang = this._messages['en']\n const i18n = lang && this._messages[lang] || fallbackLang\n return i18n[key] || fallbackLang[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.',\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.',\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.',\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.',\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.',\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.',\n },\n 'ar': {\n 'live': 'مباشر',\n 'back_to_live': 'الرجوع إلى المباشر',\n 'disabled': 'معطّل',\n 'playback_not_supported': 'المتصفح الذي تستخدمه لا يدعم تشغيل هذا الفيديو. الرجاء إستخدام متصفح آخر.',\n 'default_error_title': 'غير قادر الى التشغيل.',\n 'default_error_message': 'حدثت مشكلة أثناء تحميل الفيديو.',\n },\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n this._messages['ar-IQ'] = this._messages['ar']\n }\n}\n","import WaterMarkPlugin from './watermark'\nexport default WaterMarkPlugin\n","module.exports = \"\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n","import Kibo from './kibo'\n\nexport default { Kibo }\n","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://Clappr/webpack/universalModuleDefinition","webpack://Clappr/webpack/bootstrap","webpack://Clappr/./node_modules/babel-runtime/core-js/array/from.js","webpack://Clappr/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://Clappr/./node_modules/babel-runtime/core-js/json/stringify.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/assign.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/create.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/keys.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://Clappr/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://Clappr/./node_modules/babel-runtime/helpers/createClass.js","webpack://Clappr/./node_modules/babel-runtime/helpers/extends.js","webpack://Clappr/./node_modules/babel-runtime/helpers/inherits.js","webpack://Clappr/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://Clappr/./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack://Clappr/./node_modules/babel-runtime/helpers/typeof.js","webpack://Clappr/./node_modules/clappr-zepto/zepto.js","webpack://Clappr/./node_modules/core-js/library/fn/array/from.js","webpack://Clappr/./node_modules/core-js/library/fn/get-iterator.js","webpack://Clappr/./node_modules/core-js/library/fn/json/stringify.js","webpack://Clappr/./node_modules/core-js/library/fn/object/assign.js","webpack://Clappr/./node_modules/core-js/library/fn/object/create.js","webpack://Clappr/./node_modules/core-js/library/fn/object/define-property.js","webpack://Clappr/./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/fn/object/keys.js","webpack://Clappr/./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/index.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_a-function.js","webpack://Clappr/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://Clappr/./node_modules/core-js/library/modules/_an-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_array-includes.js","webpack://Clappr/./node_modules/core-js/library/modules/_classof.js","webpack://Clappr/./node_modules/core-js/library/modules/_cof.js","webpack://Clappr/./node_modules/core-js/library/modules/_core.js","webpack://Clappr/./node_modules/core-js/library/modules/_create-property.js","webpack://Clappr/./node_modules/core-js/library/modules/_ctx.js","webpack://Clappr/./node_modules/core-js/library/modules/_defined.js","webpack://Clappr/./node_modules/core-js/library/modules/_descriptors.js","webpack://Clappr/./node_modules/core-js/library/modules/_dom-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_export.js","webpack://Clappr/./node_modules/core-js/library/modules/_fails.js","webpack://Clappr/./node_modules/core-js/library/modules/_global.js","webpack://Clappr/./node_modules/core-js/library/modules/_has.js","webpack://Clappr/./node_modules/core-js/library/modules/_hide.js","webpack://Clappr/./node_modules/core-js/library/modules/_html.js","webpack://Clappr/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_iobject.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array-iter.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-call.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-detect.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-step.js","webpack://Clappr/./node_modules/core-js/library/modules/_iterators.js","webpack://Clappr/./node_modules/core-js/library/modules/_keyof.js","webpack://Clappr/./node_modules/core-js/library/modules/_library.js","webpack://Clappr/./node_modules/core-js/library/modules/_meta.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dp.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dps.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopd.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gops.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gpo.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-pie.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-sap.js","webpack://Clappr/./node_modules/core-js/library/modules/_property-desc.js","webpack://Clappr/./node_modules/core-js/library/modules/_redefine.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-proto.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared-key.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared.js","webpack://Clappr/./node_modules/core-js/library/modules/_string-at.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-index.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-integer.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-iobject.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-length.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-primitive.js","webpack://Clappr/./node_modules/core-js/library/modules/_uid.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.from.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.assign.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.create.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.define-property.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.symbol.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://Clappr/./node_modules/core-js/library/modules/web.dom.iterable.js","webpack://Clappr/./src/components/container/public/style.scss","webpack://Clappr/./src/components/core/public/style.scss","webpack://Clappr/./src/playbacks/base_flash_playback/public/flash.scss","webpack://Clappr/./src/playbacks/html5_video/public/style.scss","webpack://Clappr/./src/playbacks/html_img/public/style.scss","webpack://Clappr/./src/playbacks/no_op/public/style.scss","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss","webpack://Clappr/./src/plugins/media_control/public/media-control.scss","webpack://Clappr/./src/plugins/poster/public/poster.scss","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss","webpack://Clappr/./src/plugins/watermark/public/watermark.scss","webpack://Clappr/./node_modules/css-loader/lib/css-base.js","webpack://Clappr/./node_modules/css-loader/lib/url/escape.js","webpack://Clappr/./node_modules/hls.js/dist/hls.js","webpack://Clappr/./node_modules/node-libs-browser/node_modules/process/browser.js","webpack://Clappr/./node_modules/style-loader/lib/addStyles.js","webpack://Clappr/./node_modules/style-loader/lib/urls.js","webpack://Clappr/./src/base/base_object.js","webpack://Clappr/./src/base/container_plugin.js","webpack://Clappr/./src/base/core_plugin.js","webpack://Clappr/./src/base/error_mixin.js","webpack://Clappr/./src/base/events.js","webpack://Clappr/./src/base/media.js","webpack://Clappr/./src/base/playback.js","webpack://Clappr/./src/base/polyfills.js","webpack://Clappr/./src/base/styler.js","webpack://Clappr/./src/base/template.js","webpack://Clappr/./src/base/ui_container_plugin.js","webpack://Clappr/./src/base/ui_core_plugin.js","webpack://Clappr/./src/base/ui_object.js","webpack://Clappr/./src/base/utils.js","webpack://Clappr/./src/components/browser/browser.js","webpack://Clappr/./src/components/browser/browser_data.js","webpack://Clappr/./src/components/browser/index.js","webpack://Clappr/./src/components/browser/os_data.js","webpack://Clappr/./src/components/container/container.js","webpack://Clappr/./src/components/container/index.js","webpack://Clappr/./src/components/container/public/style.scss?075b","webpack://Clappr/./src/components/container_factory/container_factory.js","webpack://Clappr/./src/components/container_factory/index.js","webpack://Clappr/./src/components/core/core.js","webpack://Clappr/./src/components/core/index.js","webpack://Clappr/./src/components/core/public/Roboto.ttf","webpack://Clappr/./src/components/core/public/fonts.css","webpack://Clappr/./src/components/core/public/style.scss?7375","webpack://Clappr/./src/components/core_factory/core_factory.js","webpack://Clappr/./src/components/core_factory/index.js","webpack://Clappr/./src/components/error/error.js","webpack://Clappr/./src/components/error/index.js","webpack://Clappr/./src/components/loader/index.js","webpack://Clappr/./src/components/loader/loader.js","webpack://Clappr/./src/components/mediator.js","webpack://Clappr/./src/components/player.js","webpack://Clappr/./src/components/player_info.js","webpack://Clappr/./src/icons/01-play.svg","webpack://Clappr/./src/icons/02-pause.svg","webpack://Clappr/./src/icons/03-stop.svg","webpack://Clappr/./src/icons/04-volume.svg","webpack://Clappr/./src/icons/05-mute.svg","webpack://Clappr/./src/icons/06-expand.svg","webpack://Clappr/./src/icons/07-shrink.svg","webpack://Clappr/./src/icons/08-hd.svg","webpack://Clappr/./src/icons/09-cc.svg","webpack://Clappr/./src/icons/10-reload.svg","webpack://Clappr/./src/main.js","webpack://Clappr/./src/playbacks/base_flash_playback/base_flash_playback.js","webpack://Clappr/./src/playbacks/base_flash_playback/index.js","webpack://Clappr/./src/playbacks/base_flash_playback/public/flash.html","webpack://Clappr/./src/playbacks/base_flash_playback/public/flash.scss?7c65","webpack://Clappr/./src/playbacks/flash/flash.js","webpack://Clappr/./src/playbacks/flash/index.js","webpack://Clappr/./src/playbacks/flash/public/Player.swf","webpack://Clappr/./src/playbacks/flashls/flashls.js","webpack://Clappr/./src/playbacks/flashls/flashls_events.js","webpack://Clappr/./src/playbacks/flashls/index.js","webpack://Clappr/./src/playbacks/flashls/public/HLSPlayer.swf","webpack://Clappr/./src/playbacks/hls/hls.js","webpack://Clappr/./src/playbacks/hls/index.js","webpack://Clappr/./src/playbacks/html5_audio/html5_audio.js","webpack://Clappr/./src/playbacks/html5_audio/index.js","webpack://Clappr/./src/playbacks/html5_video/html5_video.js","webpack://Clappr/./src/playbacks/html5_video/index.js","webpack://Clappr/./src/playbacks/html5_video/public/style.scss?2a3b","webpack://Clappr/./src/playbacks/html5_video/public/tracks.html","webpack://Clappr/./src/playbacks/html_img/html_img.js","webpack://Clappr/./src/playbacks/html_img/index.js","webpack://Clappr/./src/playbacks/html_img/public/style.scss?ab98","webpack://Clappr/./src/playbacks/no_op/index.js","webpack://Clappr/./src/playbacks/no_op/no_op.js","webpack://Clappr/./src/playbacks/no_op/public/error.html","webpack://Clappr/./src/playbacks/no_op/public/style.scss?c7ee","webpack://Clappr/./src/plugins/click_to_pause/click_to_pause.js","webpack://Clappr/./src/plugins/click_to_pause/index.js","webpack://Clappr/./src/plugins/closed_captions/closed_captions.js","webpack://Clappr/./src/plugins/closed_captions/index.js","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.html","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss?0946","webpack://Clappr/./src/plugins/dvr_controls/dvr_controls.js","webpack://Clappr/./src/plugins/dvr_controls/index.js","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss?12b3","webpack://Clappr/./src/plugins/dvr_controls/public/index.html","webpack://Clappr/./src/plugins/end_video.js","webpack://Clappr/./src/plugins/error_screen/error_screen.js","webpack://Clappr/./src/plugins/error_screen/index.js","webpack://Clappr/./src/plugins/error_screen/public/error_screen.html","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss?65c2","webpack://Clappr/./src/plugins/favicon/favicon.js","webpack://Clappr/./src/plugins/favicon/index.js","webpack://Clappr/./src/plugins/google_analytics/google_analytics.js","webpack://Clappr/./src/plugins/google_analytics/index.js","webpack://Clappr/./src/plugins/log/index.js","webpack://Clappr/./src/plugins/log/log.js","webpack://Clappr/./src/plugins/media_control/index.js","webpack://Clappr/./src/plugins/media_control/media_control.js","webpack://Clappr/./src/plugins/media_control/public/closed-hand.cur","webpack://Clappr/./src/plugins/media_control/public/media-control.html","webpack://Clappr/./src/plugins/media_control/public/media-control.scss?f597","webpack://Clappr/./src/plugins/poster/index.js","webpack://Clappr/./src/plugins/poster/poster.js","webpack://Clappr/./src/plugins/poster/public/poster.html","webpack://Clappr/./src/plugins/poster/public/poster.scss?638d","webpack://Clappr/./src/plugins/seek_time/index.js","webpack://Clappr/./src/plugins/seek_time/public/seek_time.html","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss?a475","webpack://Clappr/./src/plugins/seek_time/seek_time.js","webpack://Clappr/./src/plugins/sources.js","webpack://Clappr/./src/plugins/spinner_three_bounce/index.js","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.html","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss?ec8c","webpack://Clappr/./src/plugins/spinner_three_bounce/spinner_three_bounce.js","webpack://Clappr/./src/plugins/stats/index.js","webpack://Clappr/./src/plugins/stats/stats.js","webpack://Clappr/./src/plugins/strings.js","webpack://Clappr/./src/plugins/watermark/index.js","webpack://Clappr/./src/plugins/watermark/public/watermark.html","webpack://Clappr/./src/plugins/watermark/public/watermark.scss?ef86","webpack://Clappr/./src/plugins/watermark/watermark.js","webpack://Clappr/./src/vendor/index.js","webpack://Clappr/./src/vendor/kibo.js"],"names":["BaseObject","_options","options","uniqueId","ContainerPlugin","container","playerError","enabled","bindEvents","enable","disable","stopListening","destroy","prototype","extend","properties","type","CorePlugin","core","getExternalInterface","ErrorMixin","createError","error","useCodePrefix","scope","constructor","origin","name","i18n","prefixedCode","code","defaultError","description","level","Levels","FATAL","raw","errorData","UI","defaultUI","title","t","message","warn","slice","Array","eventSplitter","eventsApi","obj","action","rest","key","apply","concat","test","names","split","i","l","length","triggerEvents","events","args","klass","ev","a1","a2","a3","run","callback","call","ctx","exception","Events","on","context","_events","push","once","off","arguments","retain","j","k","_callback","trigger","debug","allEvents","all","listeningTo","_listeningTo","remove","_listenId","id","register","eventName","Custom","property","toUpperCase","trim","toLowerCase","map","value","index","join","listAvailableCustomEvents","filter","listenMethods","listenTo","listenToOnce","forEach","method","PLAYER_READY","PLAYER_RESIZE","PLAYER_FULLSCREEN","PLAYER_PLAY","PLAYER_PAUSE","PLAYER_STOP","PLAYER_ENDED","PLAYER_SEEK","PLAYER_ERROR","ERROR","PLAYER_TIMEUPDATE","PLAYER_VOLUMEUPDATE","PLAYER_SUBTITLE_AVAILABLE","PLAYBACK_PROGRESS","PLAYBACK_TIMEUPDATE","PLAYBACK_READY","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","PLAYBACK_SETTINGSUPDATE","PLAYBACK_LOADEDMETADATA","PLAYBACK_HIGHDEFINITIONUPDATE","PLAYBACK_BITRATE","PLAYBACK_LEVELS_AVAILABLE","PLAYBACK_LEVEL_SWITCH_START","PLAYBACK_LEVEL_SWITCH_END","PLAYBACK_PLAYBACKSTATE","PLAYBACK_DVR","PLAYBACK_MEDIACONTROL_DISABLE","PLAYBACK_MEDIACONTROL_ENABLE","PLAYBACK_ENDED","PLAYBACK_PLAY_INTENT","PLAYBACK_PLAY","PLAYBACK_PAUSE","PLAYBACK_SEEK","PLAYBACK_SEEKED","PLAYBACK_STOP","PLAYBACK_ERROR","PLAYBACK_STATS_ADD","PLAYBACK_FRAGMENT_LOADED","PLAYBACK_LEVEL_SWITCH","PLAYBACK_SUBTITLE_AVAILABLE","PLAYBACK_SUBTITLE_CHANGED","CORE_CONTAINERS_CREATED","CORE_ACTIVE_CONTAINER_CHANGED","CORE_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_RESIZE","CORE_SCREEN_ORIENTATION_CHANGED","CORE_MOUSE_MOVE","CORE_MOUSE_LEAVE","CONTAINER_PLAYBACKSTATE","CONTAINER_PLAYBACKDVRSTATECHANGED","CONTAINER_BITRATE","CONTAINER_STATS_REPORT","CONTAINER_DESTROYED","CONTAINER_READY","CONTAINER_ERROR","CONTAINER_LOADEDMETADATA","CONTAINER_SUBTITLE_AVAILABLE","CONTAINER_SUBTITLE_CHANGED","CONTAINER_TIMEUPDATE","CONTAINER_PROGRESS","CONTAINER_PLAY","CONTAINER_STOP","CONTAINER_PAUSE","CONTAINER_ENDED","CONTAINER_CLICK","CONTAINER_DBLCLICK","CONTAINER_CONTEXTMENU","CONTAINER_MOUSE_ENTER","CONTAINER_MOUSE_LEAVE","CONTAINER_SEEK","CONTAINER_SEEKED","CONTAINER_VOLUME","CONTAINER_FULLSCREEN","CONTAINER_STATE_BUFFERING","CONTAINER_STATE_BUFFERFULL","CONTAINER_SETTINGSUPDATE","CONTAINER_HIGHDEFINITIONUPDATE","CONTAINER_MEDIACONTROL_SHOW","CONTAINER_MEDIACONTROL_HIDE","CONTAINER_MEDIACONTROL_DISABLE","CONTAINER_MEDIACONTROL_ENABLE","CONTAINER_STATS_ADD","CONTAINER_OPTIONS_CHANGE","MEDIACONTROL_RENDERED","MEDIACONTROL_FULLSCREEN","MEDIACONTROL_SHOW","MEDIACONTROL_HIDE","MEDIACONTROL_MOUSEMOVE_SEEKBAR","MEDIACONTROL_MOUSELEAVE_SEEKBAR","MEDIACONTROL_PLAYING","MEDIACONTROL_NOTPLAYING","MEDIACONTROL_CONTAINERCHANGED","MEDIACONTROL_OPTIONS_CHANGE","mp4","Playback","_i18n","_consented","settings","consent","play","pause","stop","seek","time","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","volume","configure","attemptAutoPlay","canAutoPlay","result","cb","closedCaptionsTracks","trackId","canPlay","source","mimeType","VOD","AOD","LIVE","find","Object","defineProperty","predicate","TypeError","o","len","thisArg","kValue","undefined","Styler","getStyleFor","style","baseUrl","html","toString","evaluate","interpolate","escape","noMatch","escapes","escaper","htmlEntities","entityRe","RegExp","escapeExpr","string","replace","match","counter","tmpl","text","data","render","matcher","offset","variable","Function","e","template","UIContainerPlugin","$el","show","hide","UICorePlugin","delegateEventSplitter","UIObject","cid","_ensureElement","delegateEvents","$","selector","undelegateEvents","setElement","element","delegate","zepto","isZ","el","bind","attrs","attributes","className","create","tagName","attr","assign","formatTime","seekStringToSeconds","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","listContainsIgnoreCase","canAutoPlayMedia","prop","propDescriptor","parent","Surrogate","initialize","paddedHours","isFinite","parseInt","seconds","minutes","hours","days","out","Fullscreen","getFullscreenElement","document","webkitFullscreenElement","webkitIsFullScreen","mozFullScreen","msFullscreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","querySelector","webkitEnterFullScreen","cancelFullscreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Config","_defaultConfig","parse","_defaultValueFor","_createKeyspace","domain","restore","hasLocalstorage","localStorage","persist","QueryString","paramsString","pl","search","decode","s","decodeURIComponent","params","exec","query","window","location","substring","_urlParams","hash","_hashParams","paramName","seekString","hashParams","parts","factor","suffix","idsCounter","prefix","parseFloat","scripts","getElementsByTagName","src","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","navigator","language","performance","Date","arr","item","indexOf","splice","items","itemEach","inline","muted","timeout","createElement","setAttribute","promise","timeoutId","setResult","Error","then","catch","err","videoStack","DomRecycler","recycleVideo","shift","garbage","children","DoubleEventHandler","delay","lastTime","handle","event","prevented","currentTime","getTime","diffTime","preventDefault","Media","Browser","setItem","removeItem","hasFlash","fo","ActiveXObject","mimeTypes","enabledPlugin","getBrowserInfo","ua","extra","version","appName","appVersion","getBrowserData","browserObject","userAgent","browser","browserRegExp","identifier","browserRegExpResult","group","versionIdentifier","versionRegExp","versionRegExpResult","setBrowserVersion","splitVersion","fullVersion","majorVersion","minorVersion","getOsData","osObject","os","osRegExp","osRegExpResult","setOsVersion","versionSeparator","separator","finalSeparator","substr","getViewportSize","viewportObject","width","height","setViewportOrientation","orientation","viewport","getDevice","platformRegExp","matches","device","browserInfo","isEdge","isChrome","isSafari","isFirefox","isLegacyIE","isIE","isIE11","isChromecast","isMobile","isiOS","isAndroid","isWindowsPhone","isWin8App","isWiiU","isPS4","BROWSER_DATA","OS_DATA","Container","class","playback","ended","buffering","hasClosedCaptionsTracks","closedCaptionsTrackId","isReady","mediaControlDisabled","plugins","dblTapHandler","clickTimer","clickDelay","onProgress","timeUpdated","ready","onBuffering","bufferfull","settingsUpdate","loadedMetadata","highDefinitionUpdate","updateBitrate","playbackStateChanged","playbackDvrStateChanged","disableMediaControl","enableMediaControl","onSeeked","onEnded","playing","paused","stopped","subtitleAvailable","subtitleChanged","track","state","dvrInUse","newBitrate","statsReport","metrics","isDvrEnabled","dvrEnabled","isDvrInUse","plugin","setStyle","css","animate","duration","getCurrentTime","metadata","timeProgress","current","clicked","chromeless","allowUserInteraction","cancelClicked","dblClicked","dblTap","evt","onContextMenu","setVolume","fullscreen","addPlugin","hasPlugin","getPlugin","mouseEnter","mouseLeave","isHD","updateStyle","removeClass","addClass","append","ContainerFactory","loader","createContainers","Deferred","resolve","sources","createContainer","findPlaybackPlugin","playbackPlugins","p","resolvedSource","protocol","playbackPlugin","defer","addContainerPlugins","containerPlugins","Plugin","Core","tabindex","dummyMediaControl","_dummyMediaControl","_activeContainer","activeContainer","configureDomRecycler","playerInfo","getInstance","playerId","firstResize","containers","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","containerFactory","prepareContainers","setupContainers","resolveOnContainersReady","updateSize","isFullscreen","setFullscreen","setPlayerSize","removeAttr","previousSize","currentSize","resize","triggerResize","enableResizeObserver","checkSizeCallback","clientWidth","clientHeight","resizeObserverInterval","setInterval","newSize","thereWasChange","oldHeight","oldWidth","computedSize","disableResizeObserver","clearInterval","when","done","load","unbind","innerWidth","innerHeight","_screenOrientation","removeContainer","c","setupContainer","renderContainers","appendToParent","appendChild","getCurrentContainer","getCurrentPlayback","activePlayback","toggleFullscreen","onMouseMove","onMouseLeave","hasCoreParent","appendTo","parentElement","size","CoreFactory","player","addCorePlugins","corePlugins","setupExternalInterface","externalFunctions","PlayerError","WARN","INFO","Loader","externalPlugins","useOnlyPlainHtml5Plugins","PLAIN_HTML5_ONLY","isArray","validateExternalPluginsType","addExternalPlugins","groupPluginsByType","reduce","memo","removeDups","list","groupUp","pluginsMap","reduceRight","unshift","plugintypes","errorMessage","ReferenceError","Mediator","opts","Player","_loader","_ready","onReady","onResize","onPlay","onPause","onStop","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","playbackDefaultOptions","defaultOptions","persistConfig","_normalizeSources","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","parentId","setParentId","attachTo","_addEventListeners","_onReady","_containerChanged","_onFullscreenChange","_onResize","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","newEvents","hasNewEvents","userEvent","eventType","eventsMapping","eventFunction","autoPlay","mute","_mutedVolume","getVolume","unmute","PlayerInfo","_players","VERSION","MediaControl","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","ClickToPausePlugin","DVRControls","Favicon","Log","Poster","SpinnerThreeBouncePlugin","WaterMarkPlugin","Vendor","IE_CLASSID","swfPath","playbackId","wmode","callbackName","require","MAX_ATTEMPTS","_baseUrl","_currentState","_bufferingState","_src","_autoPlay","default","left","right","seekEnabled","_isReadyState","_addListeners","_bootstrap","playerPlay","_firstPlay","insertAfter","_metadataLoaded","_attempts","_updateTime","getPosition","total","_progress","_checkState","_isIdle","getState","start","getBytesLoaded","getBytesTotal","_checkInitialSeek","seekTime","href","seekSeconds","playerResume","playerVolume","playerPause","playerStop","playerSeek","bootstrapId","resource","String","resourceParts","AUTO","_levels","_currentLevel","playerSetCurrentLevel","_hasEnded","_initHlsParameters","highDefinition","_loop","loop","_defaultSettings","_playbackType","_autoStartLoad","autoStartLoad","_capLevelToStage","capLevelToStage","_maxLevelCappingMode","maxLevelCappingMode","_minBufferLength","minBufferLength","_minBufferLengthCapping","minBufferLengthCapping","_maxBufferLength","maxBufferLength","_maxBackBufferLength","maxBackBufferLength","_lowBufferLength","lowBufferLength","_mediaTimePeriod","mediaTimePeriod","_fpsDroppedMonitoringPeriod","fpsDroppedMonitoringPeriod","_fpsDroppedMonitoringThreshold","fpsDroppedMonitoringThreshold","_capLevelonFPSDrop","capLevelonFPSDrop","_smoothAutoSwitchonFPSDrop","smoothAutoSwitchonFPSDrop","_switchDownOnLevelError","switchDownOnLevelError","_seekMode","seekMode","_keyLoadMaxRetry","keyLoadMaxRetry","_keyLoadMaxRetryTimeout","keyLoadMaxRetryTimeout","_fragmentLoadMaxRetry","fragmentLoadMaxRetry","_fragmentLoadMaxRetryTimeout","fragmentLoadMaxRetryTimeout","_fragmentLoadSkipAfterMaxRetry","fragmentLoadSkipAfterMaxRetry","_maxSkippedFragments","maxSkippedFragments","_flushLiveURLCache","flushLiveURLCache","_initialLiveManifestSize","initialLiveManifestSize","_manifestLoadMaxRetry","manifestLoadMaxRetry","_manifestLoadMaxRetryTimeout","manifestLoadMaxRetryTimeout","_manifestRedundantLoadmaxRetry","manifestRedundantLoadmaxRetry","_startFromBitrate","startFromBitrate","_startFromLevel","startFromLevel","_autoStartMaxDuration","autoStartMaxDuration","_seekFromLevel","seekFromLevel","_useHardwareVideoDecoder","useHardwareVideoDecoder","_hlsLogEnabled","hlsLogEnabled","_logDebug","logDebug","_logDebug2","logDebug2","_logWarn","logWarn","_logError","logError","_hlsMinimumDvrSize","hlsMinimumDvrSize","timeMetrics","_setPlaybackState","_levelChanged","url","_flashPlaybackError","loadmetrics","_onFragmentLoaded","_onLevelEndlist","playerLoad","_srcLoaded","_setFlashSettings","_updatePlaybackType","_shouldPlayOnManifestLoaded","_bootstrapAttempts","formattedError","playerSetAutoStartLoad","playerSetCapLevelToStage","playerSetMaxLevelCappingMode","playerSetMinBufferLength","playerSetMinBufferLengthCapping","playerSetMaxBufferLength","playerSetMaxBackBufferLength","playerSetLowBufferLength","playerSetMediaTimePeriod","playerSetFpsDroppedMonitoringPeriod","playerSetFpsDroppedMonitoringThreshold","playerSetCapLevelonFPSDrop","playerSetSmoothAutoSwitchonFPSDrop","playerSetSwitchDownOnLevelError","playerSetSeekMode","playerSetKeyLoadMaxRetry","playerSetKeyLoadMaxRetryTimeout","playerSetFragmentLoadMaxRetry","playerSetFragmentLoadMaxRetryTimeout","playerSetFragmentLoadSkipAfterMaxRetry","playerSetMaxSkippedFragments","playerSetFlushLiveURLCache","playerSetInitialLiveManifestSize","playerSetManifestLoadMaxRetry","playerSetManifestLoadMaxRetryTimeout","playerSetManifestRedundantLoadmaxRetry","playerSetStartFromBitrate","playerSetStartFromLevel","playerSetAutoStartMaxDuration","playerSetSeekFromLevel","playerSetUseHardwareVideoDecoder","playerSetLogInfo","playerSetLogDebug","playerSetLogDebug2","playerSetLogWarn","playerSetLogError","setAutoStartLoad","setCapLevelToStage","setMaxLevelCappingMode","setSetMinBufferLength","setMinBufferLengthCapping","setMaxBufferLength","setMaxBackBufferLength","setLowBufferLength","setMediaTimePeriod","setFpsDroppedMonitoringPeriod","setFpsDroppedMonitoringThreshold","setCapLevelonFPSDrop","setSmoothAutoSwitchonFPSDrop","setSwitchDownOnLevelError","setSeekMode","setKeyLoadMaxRetry","setKeyLoadMaxRetryTimeout","setFragmentLoadMaxRetry","setFragmentLoadMaxRetryTimeout","setFragmentLoadSkipAfterMaxRetry","setMaxSkippedFragments","setFlushLiveURLCache","setInitialLiveManifestSize","setManifestLoadMaxRetry","setManifestLoadMaxRetryTimeout","setManifestRedundantLoadmaxRetry","setStartFromBitrate","setStartFromLevel","setAutoStartMaxDuration","setSeekFromLevel","setUseHardwareVideoDecoder","setSetLogInfo","setLogDebug","setLogDebug2","setLogWarn","setLogError","currentLevel","getLevels","bitrate","_fillLevels","bandwidth","_normalizeDuration","position","Math","min","max","previousDVRStatus","_dvrEnabled","livePlayback","_updateSettings","getCurrentLevelIndex","getCurrentLevel","levels","getCurrentBitrate","setCurrentLevel","_updateCurrentState","getType","_startReportingProgress","_stopReportingProgress","_reportingProgress","buffered","getbufferLength","_manifestLoaded","_updateDvr","previousDvrInUse","_dvrInUse","levelsLength","label","_createCallbacks","Clappr","flashlsCallbacks","flashlsEvents","HLSEvents","instanceId","videoSize","complete","manifest","audioLevelLoaded","levelLoaded","levelEndlist","fragmentLoaded","fragmentPlaying","playmetrics","timemetrics","newState","seekState","switch","newLevel","audioTracksListChange","trackList","audioTrackChange","hlsUseNextLevel","_hls","nextLevel","_playlistType","_extrapolatedStartTime","_playableRegionStartTime","_localStartTimeCorrelation","corr","timePassed","_now","local","extrapolatedWindowStartTime","remote","_extrapolatedWindowDuration","actualEndTime","_playableRegionDuration","_localEndTimeCorrelation","extrapolatedEndTime","_extrapolatedEndTime","_startTime","_segmentTargetDuration","_extrapolatedWindowNumSegments","_minDvrSize","extrapolatedWindowNumSegments","_lastTimeUpdate","_lastDuration","_programDateTime","_durationExcludesAfterLiveSyncPoint","_recoverAttemptsRemaining","hlsRecoverAttempts","_setup","_ccIsSetup","_ccTracksUpdated","hlsjsConfig","MEDIA_ATTACHED","loadSource","LEVEL_LOADED","LEVEL_UPDATED","_onLevelUpdated","LEVEL_SWITCHING","_onLevelSwitch","FRAG_LOADED","_onHLSJSError","SUBTITLE_TRACK_LOADED","_onSubtitleLoaded","SUBTITLE_TRACKS_UPDATED","attachMedia","_recover","_recoveredDecodingError","recoverMediaError","_recoveredAudioCodecError","swapAudioCodec","_setupSrc","srcUrl","_startTimeUpdateTimer","_timeUpdateTimer","_onDurationChange","_stopTimeUpdateTimer","getProgramDateTime","_duration","seekTo","seekToLivePoint","status","isSeekEnabled","details","response","fatal","ErrorTypes","NETWORK_ERROR","ErrorDetails","MANIFEST_LOAD_ERROR","MANIFEST_LOAD_TIMEOUT","MANIFEST_PARSING_ERROR","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","startLoad","MEDIA_ERROR","triggerFatalErrorOnResourceDenied","_keyIsDenied","KEY_LOAD_ERROR","update","firstFragDateTime","isSame","_onProgress","bufferedPos","end","progress","live","targetduration","startTimeChanged","durationChanged","fragments","previousPlayableRegionStartTime","previousPlayableRegionDuration","rawProgramDateTime","startTime","newDuration","totalduration","fragmentTargetDuration","liveSyncDurationCount","DefaultConfig","hiddenAreaDuration","endTime","previousEndTime","endTimeChanged","isHls","isSupported","updateSettings","resourceUrl","mimetypes","_canPlay","MIMETYPES","codec","AUDIO_MIMETYPES","KNOWN_AUDIO_MIMETYPES","acc","UNKNOWN_ERROR","isAudioOnly","_mimeTypesForUrl","audioOnly","_isBuffering","_destroyed","_loadStarted","_playheadMoving","_playheadMovingTimer","_stopped","_ccTrackId","disableContextMenu","disableVideoTagContextMenu","playbackConfig","preload","posterUrl","poster","defaultMuted","controls","useVideoTagDefaultControls","crossOrigin","playInline","playsinline","crossorigin","externalTracks","_setupExternalTracks","process","nextTick","disableCanAutoPlay","autoPlayTimeout","tracks","_externalTracks","kind","lang","_onLoadedMetadata","_handleBufferingEvents","target","autoSeekFromUrl","onDemandType","Infinity","removeAttribute","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","before","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeking","_onSeeked","playheadShouldBeMoving","readyState","HAVE_FUTURE_DATA","isUnknownError","handleTextTrackChange","textTracks","removeEventListener","_typeFor","isHTML5Video","_handleTextTrackChange","addEventListener","mode","showingTrack","mimeTypesByExtension","extension","media","canPlayType","mediaType","_onLoad","m","_noiseFrameNum","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","random","color","pow","putImageData","_stop","_animationHandle","getContext","click","pointerEnabled","ClosedCaptions","config","closedCaptionsConfig","_title","_ariaLabel","ariaLabel","_labelCb","labelCallback","containerChanged","mediaControl","hideContextMenu","onSubtitleChanged","onContainerStop","ccAvailable","renderCcButton","setCurrentContextMenuElement","onTrackSelect","dataset","ccSelect","stopPropagation","hasCC","toggleContextMenu","toggle","contextMenuElement","isNaN","_trackId","$ccButton","disabledLabel","$fullscreen","prepend","dvrChanged","hasClass","shouldRender","useDvrControls","backToLive","EndVideo","exitOnEnd","exitFullscreenOnEnd","ErrorScreen","disableErrorScreen","onContainerChanged","bindReload","reloadButton","reload","unbindReload","icon","reloadIcon","oldIcon","_container","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","svg","fillStyle","d","path","Path2D","fill","toDataURL","playIcon","changeIcon","pauseIcon","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","script","onload","addEventListeners","body","onBufferFull","onPlaybackChanged","onVolumeChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","playbackState","array","res","BOLD","DEBUG","LEVEL_DEBUG","LEVEL_INFO","LEVEL_WARN","LEVEL_ERROR","LEVEL_DISABLED","COLORS","DESCRIPTIONS","offLevel","kibo","down","onOff","BLACKLIST","log","info","previousLevel","console","klassDescription","_instance","setLevel","playbackIsNOOP","userDisabled","intendedVolume","currentPositionValue","currentDurationValue","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","focusElement","bindKeyEvents","isEmptyObject","stopDragHandler","stopDrag","updateDragHandler","updateDrag","onActiveContainerChanged","hideMediaControlDelay","playerResize","bindContainerEvents","changeTogglePlay","updateProgressBar","nodeName","onLoadedMetadataOnVideoTag","unbindKeyEvents","initialVolume","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","pos","$volumeBarFill","$volumeBarScrubber","ceil","$volumeIcon","applyButtonStyle","$playPauseToggle","$playStopToggle","mousemoveOnSeekBar","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","setSeekPercentage","offsetY","volumeFromUI","toggleMute","isInitialVolume","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","loadedStart","loadedEnd","renderSeekBar","currentSeekBarPercentage","newPosition","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","disabled","mousePointerMoved","clientX","lastMouseX","clientY","lastMouseY","hideId","showing","updateCursorStyle","hideMediaControl","hasKeepVisibleRequested","hasDraggingAction","newSettings","getSettings","settingsChanged","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","keys","parseColors","mediacontrol","buttonsColor","buttons","seekbarColor","seekbar","previousSeekPercentage","PosterPlugin","showOnVideoEnd","hasStartedPlaying","playRequested","hasFatalError","showPlayButton","updatePlayButton","hidePlayButton","$playButton","shouldHideOnPlay","updatePoster","showPoster","hidePoster","isRegularPoster","custom","$playWrapper","SeekTime","mediaControlContainer","isLiveStreamWithDvr","actualLiveTime","hoveringOverSeekBar","hoverPosition","actualLiveServerTime","actualLiveServerTimeDiff","showTime","hideTime","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","useActualLiveTime","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","showTimeout","StatsPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","totalTime","isRebuffering","metric","getStats","Strings","_initializeMessages","_language","fallbackLang","_messages","defaultMessages","strings","watermark","imageUrl","imageLink","watermarkLink","hidden","templateOptions","Kibo","KEY_NAMES_BY_CODE","KEY_CODES_BY_NAME","hasOwnProperty","MODIFIERS","registerEvent","func","attachEvent","unregisterEvent","detachEvent","stringContains","neatString","capitalize","isString","what","arrayIncludes","haystack","needle","extractModifiers","keyCombination","modifiers","extractKey","modifiersAndKey","keyName","keyCode","that","lastKeyCode","lastModifiers","keysDown","any","keysUp","downHandler","handler","upHandler","unloader","upOrDown","registeredKeys","lastModifiersAndKey","registerKeys","newKeys","unregisterKeys","up","lastKey","modifier"],"mappings":"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c;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C,sBAAsB;AAC3F,2BAA2B;AAC3B,2BAA2B,oDAAoD,sCAAsC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C,oCAAoC;;AAE5G;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,sCAAsC;AACrF;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,YAAY;AACZ;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,2CAA2C,4BAA4B;AACvE,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,wBAAwB,oBAAoB;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,wCAAwC,mCAAmC;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,0CAA0C,wBAAwB;AAClE,KAAK;AACL;AACA,kCAAkC,6DAA6D;AAC/F,KAAK;AACL;AACA;AACA,oEAAoE,oBAAoB;AACxF,OAAO;AACP,KAAK;AACL;AACA,kCAAkC,sBAAsB;AACxD,KAAK;AACL;AACA;AACA,sCAAsC,sBAAsB;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA,iCAAiC,8BAA8B;AAC/D,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,6BAA6B,yEAAyE;AACtG,6BAA6B,qEAAqE;AAClG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kCAAkC;AAClC;AACA,OAAO,QAAQ;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,kCAAkC,oBAAoB;AACtD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iDAAiD;AAChF;AACA;AACA,OAAO;AACP;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA,6EAA6E;AAC7E;;AAEA,kCAAkC,yBAAyB,SAAS;AACpE,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA,yCAAyC,4BAA4B;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,aAAa,eAAe;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,IAAI;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,EAAE;AACrB,2CAA2C,8CAA8C;AACzF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;;AAEzB;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D,2CAA2C,iBAAiB;AAC5D,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA,aAAa;AACb,WAAW;;AAEX;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,mBAAmB;AACnB,sBAAsB;AACtB;AACA,eAAe,qCAAqC;AACpD,eAAe;;AAEf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA,aAAa;;AAEb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,YAAY;AAC1C,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,yBAAyB,kCAAkC;AAC3D,yBAAyB,iCAAiC;AAC1D,yBAAyB,gCAAgC;AACzD,yBAAyB,yBAAyB;AAClD,4BAA4B,6BAA6B;AACzD,mCAAmC,4CAA4C;AAC/E,sCAAsC,iCAAiC;AACvE,qCAAqC,qDAAqD;AAC1F,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+CAA+C,uCAAuC;AACtF,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;;;;;;;;;;ACj4DA,mBAAO,CAAC,wGAAmC;AAC3C,mBAAO,CAAC,8FAA8B;AACtC,iBAAiB,mBAAO,CAAC,4EAAqB,a;;;;;;;;;;;ACF9C,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,qGAAgC;AACxC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A;AACA,cAAc,mBAAO,CAAC,kEAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACpDa;AACb;AACA,eAAe,mBAAO,CAAC,8EAAgB;AACvC,eAAe,mBAAO,CAAC,8EAAgB;AACvC,eAAe,mBAAO,CAAC,4EAAe;AACtC,eAAe,mBAAO,CAAC,0EAAc;AACrC,eAAe,mBAAO,CAAC,sEAAY;AACnC;;AAEA;AACA,6BAA6B,mBAAO,CAAC,kEAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU,EAAE;AAC9C,mBAAmB,sCAAsC;AACzD,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,W;;;;;;;;;;;AChCD;AACA,kBAAkB,mBAAO,CAAC,0EAAc;AACxC,kBAAkB,mBAAO,CAAC,4EAAe;AACzC,kBAAkB,mBAAO,CAAC,kFAAkB;AAC5C,kBAAkB,mBAAO,CAAC,4EAAe;AACzC,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,4EAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,gEAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACxCA,qBAAqB,mBAAO,CAAC,0EAAc;AAC3C,qBAAqB,mBAAO,CAAC,oFAAmB;AAChD,qBAAqB,mBAAO,CAAC,gFAAiB;AAC9C;;AAEA,YAAY,mBAAO,CAAC,8EAAgB;AACpC;AACA;AACA;AACA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ACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA,sBAAsB,iCAAiC;AACvD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,8BAA8B;AAC5F;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,8EAAgB;AAC1B,EAAE,mBAAO,CAAC,4EAAe;AACzB,EAAE,mBAAO,CAAC,8EAAgB;;AAE1B,qBAAqB,mBAAO,CAAC,sEAAY;AACzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,gBAAgB;;AAE1E;AACA;AACA;AACA,oBAAoB,oBAAoB;;AAExC,0CAA0C,oBAAoB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,eAAe,EAAE;AACzC,wBAAwB,gBAAgB;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK,QAAQ,iCAAiC;AAClG,CAAC;AACD;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,oCAAoC,mBAAO,CAAC,gEAAS;AACrD;AACA;AACA;AACA;AACA;AACA,0C;;;;;;;;;;;AC1OA,mBAAO,CAAC,4EAAe,mB;;;;;;;;;;;ACAvB,mBAAO,CAAC,4EAAe,gB;;;;;;;;;;;ACAvB,mBAAO,CAAC,0FAAsB;AAC9B,oBAAoB,mBAAO,CAAC,oEAAW;AACvC,oBAAoB,mBAAO,CAAC,gEAAS;AACrC,oBAAoB,mBAAO,CAAC,0EAAc;AAC1C,oBAAoB,mBAAO,CAAC,8DAAQ;;AAEpC,wGAAwG,OAAO;AAC/G;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACZA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,+BAA+B,uBAAuB,4BAA4B,iBAAiB,gBAAgB,oBAAoB,EAAE,4CAA4C,sBAAsB,EAAE,8FAA8F,oBAAoB,EAAE;;AAExV;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,kBAAkB,gCAAgC,8BAA8B,2BAA2B,0BAA0B,yBAAyB,sBAAsB,wCAAwC,uCAAuC,4CAA4C,4CAA4C,uBAAuB,cAAc,eAAe,cAAc,uBAAuB,wBAAwB,uBAAuB,qBAAqB,oBAAoB,8DAA8D,uBAAuB,2BAA2B,EAAE,0lDAA0lD,gBAAgB,iBAAiB,gBAAgB,oBAAoB,sBAAsB,+BAA+B,EAAE,yBAAyB,gCAAgC,wBAAwB,EAAE,+DAA+D,uBAAuB,0BAA0B,6BAA6B,EAAE,+CAA+C,mBAAmB,EAAE,sHAAsH,sBAAsB,sBAAsB,EAAE,yBAAyB,mBAAmB,EAAE,yBAAyB,iBAAiB,EAAE,qBAAqB,sBAAsB,0BAA0B,kBAAkB,EAAE,uBAAuB,qBAAqB,EAAE,8BAA8B,6BAA6B,8BAA8B,aAAa,cAAc,EAAE,4BAA4B,mBAAmB,EAAE,mBAAmB,6BAA6B,EAAE;;AAE/uG;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,gDAAgD,mBAAmB,uBAAuB,WAAW,YAAY,iBAAiB,gBAAgB,yBAAyB,EAAE;;AAEpM;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,uBAAuB,uBAAuB,iBAAiB,gBAAgB,mBAAmB,EAAE;;AAE3H;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,oBAAoB,oBAAoB,qBAAqB,EAAE;;AAEtF;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,iBAAiB,uBAAuB,iBAAiB,gBAAgB,uBAAuB,EAAE,oCAAoC,uBAAuB,uBAAuB,oBAAoB,YAAY,aAAa,iBAAiB,kBAAkB,wCAAwC,wCAAwC,wCAAwC,qBAAqB,mBAAmB,EAAE,4CAA4C,2BAA2B,iBAAiB,gBAAgB,EAAE;;AAEviB;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,mCAAmC,iBAAiB,uBAAuB,kBAAkB,EAAE,8CAA8C,qBAAqB,EAAE,+CAA+C,8BAA8B,EAAE,yDAAyD,uBAAuB,qBAAqB,EAAE,iEAAiE,uBAAuB,4BAA4B,EAAE,yCAAyC,4BAA4B,yBAAyB,mBAAmB,8BAA8B,oBAAoB,gCAAgC,EAAE,uCAAuC,sBAAsB,EAAE,qDAAqD,kCAAkC,qBAAqB,EAAE,2CAA2C,oBAAoB,0BAA0B,uBAAuB,8BAA8B,EAAE,mDAAmD,iCAAiC,uBAAuB,EAAE,uDAAuD,yBAAyB,kCAAkC,EAAE,mDAAmD,oBAAoB,EAAE;;AAEnxC;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,qCAAqC,0BAA0B,gBAAgB,gBAAgB,sBAAsB,oBAAoB,sBAAsB,qBAAqB,EAAE,iDAAiD,sBAAsB,gEAAgE,gCAAgC,EAAE,0DAA0D,sBAAsB,8BAA8B,2BAA2B,mBAAmB,oBAAoB,6BAA6B,4BAA4B,kCAAkC,EAAE,4DAA4D,qBAAqB,EAAE,qEAAqE,iCAAiC,EAAE,mDAAmD,sBAAsB,oBAAoB,oBAAoB,gBAAgB,kBAAkB,oCAAoC,mBAAmB,iBAAiB,mBAAmB,gEAAgE,gCAAgC,gCAAgC,EAAE,4DAA4D,sBAAsB,8BAA8B,2BAA2B,mBAAmB,oBAAoB,6BAA6B,4BAA4B,+BAA+B,EAAE,2DAA2D,mBAAmB,uDAAuD,EAAE,sDAAsD,kBAAkB,EAAE,wDAAwD,mBAAmB,EAAE,0KAA0K,8BAA8B,EAAE,sKAAsK,8BAA8B,EAAE;;AAExmE;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,4BAA4B,wCAAwC,uCAAuC,mBAAmB,uBAAuB,WAAW,iBAAiB,gBAAgB,yCAAyC,kBAAkB,yBAAyB,yBAAyB,kBAAkB,iCAAiC,kCAAkC,mCAAmC,mCAAmC,6BAA6B,8BAA8B,oCAAoC,EAAE,yDAAyD,sBAAsB,qBAAqB,uBAAuB,EAAE,uDAAuD,wBAAwB,wBAAwB,sBAAsB,EAAE,yDAAyD,iBAAiB,qBAAqB,EAAE,sDAAsD,sBAAsB,uBAAuB,EAAE,qCAAqC,sBAAsB,kBAAkB,0BAA0B,EAAE;;AAE5mC;;;;;;;;;;;;ACPA,aAAa,mBAAO,CAAC,0GAAuD;AAC5E,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,gCAAgC,gCAAgC,EAAE,wCAAwC,uBAAuB,gBAAgB,iBAAiB,kBAAkB,yBAAyB,EAAE,iDAAiD,2BAA2B,0CAA0C,kCAAkC,6BAA6B,mBAAO,CAAC,6EAAmB,cAAc,EAAE,qDAAqD,4CAA4C,oCAAoC,+BAA+B,mBAAO,CAAC,6EAAmB,cAAc,EAAE,mFAAmF,yBAAyB,kBAAkB,kBAAkB,gBAAgB,mEAAmE,wCAAwC,EAAE,4DAA4D,qBAAqB,wBAAwB,kBAAkB,kBAAkB,mBAAmB,6BAA6B,uBAAuB,gCAAgC,EAAE,kEAAkE,mBAAmB,oBAAoB,oDAAoD,EAAE,sGAAsG,iBAAiB,EAAE,+FAA+F,oBAAoB,EAAE,0JAA0J,mBAAmB,EAAE,4EAA4E,yBAAyB,kBAAkB,kBAAkB,mBAAmB,mBAAmB,6BAA6B,2BAA2B,uCAAuC,EAAE,4HAA4H,2BAA2B,eAAe,kBAAkB,qBAAqB,EAAE,8HAA8H,qBAAqB,2BAA2B,0BAA0B,EAAE,6HAA6H,2BAA2B,eAAe,mBAAmB,qBAAqB,EAAE,0GAA0G,sCAAsC,kBAAkB,sBAAsB,mBAAmB,wBAAwB,8BAA8B,oBAAoB,qBAAqB,EAAE,gHAAgH,sBAAsB,uBAAuB,EAAE,uHAAuH,wBAAwB,EAAE,kHAAkH,wBAAwB,EAAE,uHAAuH,sBAAsB,uBAAuB,EAAE,wHAAwH,sBAAsB,uBAAuB,EAAE,uHAAuH,sBAAsB,uBAAuB,EAAE,6HAA6H,uBAAuB,wCAAwC,oBAAoB,uBAAuB,EAAE,+HAA+H,wCAAwC,oBAAoB,0BAA0B,wBAAwB,uBAAuB,uBAAuB,EAAE,yIAAyI,2BAA2B,yBAAyB,EAAE,iJAAiJ,2BAA2B,gCAAgC,EAAE,4HAA4H,sBAAsB,EAAE,2HAA2H,sBAAsB,EAAE,sOAAsO,8BAA8B,wBAAwB,qBAAqB,wBAAwB,0BAA0B,2BAA2B,EAAE,sHAAsH,4BAA4B,EAAE,sHAAsH,wCAAwC,0BAA0B,EAAE,+HAA+H,yBAAyB,4BAA4B,EAAE,2GAA2G,2BAA2B,mBAAmB,gBAAgB,8BAA8B,+BAA+B,oBAAoB,qBAAqB,wBAAwB,EAAE,2IAA2I,sBAAsB,sBAAsB,6BAA6B,oBAAoB,oCAAoC,EAAE,uKAAuK,+BAA+B,mBAAmB,oBAAoB,qBAAqB,yBAAyB,sCAAsC,0CAA0C,EAAE,uKAAuK,+BAA+B,mBAAmB,oBAAoB,qBAAqB,yBAAyB,sCAAsC,0CAA0C,EAAE,sKAAsK,uBAAuB,+BAA+B,sBAAsB,uBAAuB,wBAAwB,uDAAuD,0CAA0C,EAAE,0KAA0K,qBAAqB,EAAE,2HAA2H,0BAA0B,EAAE,0LAA0L,uBAAuB,EAAE,yIAAyI,6BAA6B,8CAA8C,8CAA8C,mBAAmB,kBAAkB,sBAAsB,uBAAuB,qBAAqB,wCAAwC,EAAE,4KAA4K,+BAA+B,sBAAsB,qBAAqB,uBAAuB,wBAAwB,gCAAgC,2DAA2D,oCAAoC,EAAE,6GAA6G,qBAAqB,8BAA8B,qBAAqB,wBAAwB,sBAAsB,+BAA+B,EAAE,mJAAmJ,sBAAsB,oBAAoB,EAAE,+KAA+K,0CAA0C,sBAAsB,oCAAoC,wBAAwB,yBAAyB,yBAAyB,EAAE,uLAAuL,4BAA4B,EAAE,qLAAqL,2BAA2B,iCAAiC,uBAAuB,EAAE,4LAA4L,4BAA4B,EAAE,2LAA2L,+BAA+B,EAAE,2IAA2I,sBAAsB,6BAA6B,2BAA2B,mBAAmB,sBAAsB,uBAAuB,yBAAyB,yCAAyC,EAAE,0KAA0K,wBAAwB,+BAA+B,qBAAqB,0BAA0B,sCAAsC,EAAE,qMAAqM,iCAAiC,qBAAqB,sBAAsB,uBAAuB,2BAA2B,wCAAwC,4CAA4C,EAAE,qMAAqM,iCAAiC,qBAAqB,sBAAsB,uBAAuB,2BAA2B,wCAAwC,4CAA4C,EAAE,oMAAoM,yBAAyB,iCAAiC,wBAAwB,yBAAyB,0BAA0B,yDAAyD,4CAA4C,EAAE,wKAAwK,+BAA+B,gDAAgD,gDAAgD,qBAAqB,oBAAoB,wBAAwB,yBAAyB,uBAAuB,0CAA0C,EAAE,0MAA0M,iCAAiC,wBAAwB,uBAAuB,yBAAyB,0BAA0B,kCAAkC,6DAA6D,sCAAsC,EAAE,iLAAiL,wBAAwB,uBAAuB,8BAA8B,yBAAyB,yBAAyB,4CAA4C,uDAAuD,+CAA+C,+EAA+E,EAAE,wLAAwL,6CAA6C,yBAAyB,EAAE,kMAAkM,8BAA8B,EAAE,yLAAyL,6CAA6C,6CAA6C,EAAE,4JAA4J,eAAe,mBAAmB,eAAe,iBAAiB,EAAE;;AAEhxd;;;;;;;;;;;;ACRA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,gCAAgC,yBAAyB,yBAAyB,kBAAkB,6BAA6B,8BAA8B,oCAAoC,8BAA8B,+BAA+B,gCAAgC,uBAAuB,iBAAiB,gBAAgB,iBAAiB,WAAW,YAAY,2BAA2B,2BAA2B,iCAAiC,iCAAiC,EAAE,2CAA2C,sBAAsB,EAAE,kEAAkE,iBAAiB,EAAE,4DAA4D,kBAAkB,kBAAkB,qBAAqB,oBAAoB,oCAAoC,EAAE,kEAAkE,qBAAqB,EAAE,yEAAyE,qBAAqB,EAAE;;AAEjhC;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,+BAA+B,uBAAuB,wBAAwB,iBAAiB,sBAAsB,iBAAiB,gBAAgB,iBAAiB,yCAAyC,kBAAkB,kCAAkC,EAAE,uDAAuD,iBAAiB,EAAE,iDAAiD,4BAA4B,mBAAmB,sBAAsB,wBAAwB,yBAAyB,0BAA0B,EAAE,gDAAgD,4BAA4B,sCAAsC,sBAAsB,yBAAyB,0BAA0B,EAAE,yDAAyD,uBAAuB,0BAA0B,EAAE;;AAEn1B;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,wCAAwC,uBAAuB,mBAAmB,gBAAgB,uBAAuB,iBAAiB,YAAY,aAAa,sBAAsB,uBAAuB,wCAAwC,wCAAwC,wCAAwC,EAAE,+CAA+C,kBAAkB,mBAAmB,gCAAgC,0BAA0B,4BAA4B,+DAA+D,+DAA+D,6GAA6G,wCAAwC,EAAE,wDAAwD,sCAAsC,sCAAsC,EAAE,wDAAwD,sCAAsC,sCAAsC,EAAE,oCAAoC,mBAAmB,kCAAkC,kCAAkC,EAAE,SAAS,kCAAkC,kCAAkC,EAAE,EAAE,4BAA4B,mBAAmB,kCAAkC,kCAAkC,EAAE,SAAS,kCAAkC,kCAAkC,EAAE,EAAE;;AAEh8C;;;;;;;;;;;;ACPA,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,sCAAsC,uBAAuB,oBAAoB,qBAAqB,eAAe,uBAAuB,gBAAgB,EAAE,yCAAyC,kBAAkB,oBAAoB,EAAE,2CAA2C,oBAAoB,EAAE,mDAAmD,iBAAiB,eAAe,EAAE,oDAAoD,iBAAiB,gBAAgB,EAAE,gDAAgD,cAAc,eAAe,EAAE,iDAAiD,cAAc,gBAAgB,EAAE;;AAEnpB;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACfA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAKoB;AAC1B,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF,wHAAwH,mBAAmB,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yDAAyD,OAAO;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA,2DAA2D;AAC3D,+DAA+D;AAC/D,mEAAmE;AACnE,uEAAuE;AACvE;AACA,0DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iB;AACA;;AAEA,oFAAoF;AACpF;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;AACT,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAAmD,cAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA,0DAA0D,cAAc;AACxE;;AAEA;AACA;AACA;AACA,qCAAqC,0BAA0B,EAAE;AACjE,2CAA2C,eAAe;AAC1D;AACA;AACA;;AAEA;AACA,8DAA8D,+DAA+D;;AAE7H;AACA;;AAEA;AACA,kDAAkD,oBAAoB,WAAW;;AAEjF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,iBAAiB;AAClC,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,kCAAkC;;AAEzE;;AAEA,oDAAoD,sBAAsB;AAC1E;AACA;AACA;AACA;AACA;AACA,qFAAqF,sCAAsC,EAAE;AAC7H,sIAAsI,+CAA+C,yEAAyE,gBAAgB,EAAE;AAChR,GAAG;;AAEH,iHAAiH,4CAA4C,sEAAsE,gBAAgB,SAAS;;AAE5P,qCAAqC,0BAA0B;AAC/D,qBAAqB;;AAErB;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,yDAAyD;AACzD,iDAAiD;AACjD,iEAAiE;AACjE,mEAAmE;AACnE,iEAAiE;AACjE,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yIAAyI;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kNAAkN;AAClN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,2BAA2B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,MAAM,GAAG,aAAa,GAAG,gBAAgB,GAAG,qCAAqC,GAAG,UAAU;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,aAAa;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,+CAA+C;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,qEAAqE;AAC9I;AACA;AACA;AACA,8EAA8E,cAAc;AAC5F;AACA;AACA;AACA;AACA;AACA,0EAA0E,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA,uDAAuD,oEAAoE;AAC3H;AACA;AACA;AACA;AACA;AACA,4CAA4C,kEAAkE;AAC9G;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wCAAwC;AACvG;AACA;AACA;AACA;AACA,0EAA0E,mBAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qEAAqE;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,+BAA+B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sBAAsB,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mBAAmB;AACvF;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4DAA4D,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,2DAA2D;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6GAA6G;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA,8DAA8D,2IAA2I;AACzM;AACA;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6GAA6G;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAgE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB,GAAG,KAAK,YAAY,oBAAoB,IAAI,eAAe;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,gCAAgC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA,oCAAoC;AACpC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,cAAc;AAC/B,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,YAAY;AAC7B,iBAAiB,SAAS;AAC1B,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC,iBAAiB,OAAO;AACxB,iBAAiB,YAAY;AAC7B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,YAAY;AAC7B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4DAA4D,yBAAyB,EAAE;AACvF,4DAA4D,yBAAyB,EAAE;AACvF;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oGAAoG;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,wDAAwD;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA,WAAW,EAAE;AACb,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA,+BAA+B,eAAe;AAC9C,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,+BAA+B,eAAe;AAC9C,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,MAAM,GAAG,aAAa,GAAG,gBAAgB,GAAG,qCAAqC,GAAG,UAAU;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oEAAoE,uFAAuF,EAAE;AAC7J;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B,EAAE;AACzE;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB,EAAE;AAC3E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,oDAAoD;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0BAA0B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,iCAAiC,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iCAAiC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4EAA4E,qDAAqD;AACjI;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,oBAAoB;AACzF;AACA;AACA,2EAA2E,0BAA0B;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yCAAyC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,6EAA6E;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mHAAmH;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,iEAAiE;AACvI;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qEAAqE;AAClI,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uCAAuC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mDAAmD,yCAAyC,EAAE;AAChK,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;AACtF;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,qEAAqE,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yBAAyB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,sCAAsC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,gDAAgD,EAAE;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,6BAA6B;AACzG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6BAA6B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,mEAAmE,4BAA4B;AAC/F,SAAS;AACT;AACA;AACA,mEAAmE,6BAA6B;AAChG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6HAA6H;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc,GAAG,6CAA6C,GAAG,cAAc;AAClH;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qKAAqK;AACvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,sBAAsB;AAC3I,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,sBAAsB;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS,yCAAyC,EAAE;AAC7H;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2DAA2D;AAC5E,iBAAiB,oEAAoE;AACrF,iBAAiB,4DAA4D;AAC7E,iBAAiB;AACjB;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,wJAAwJ;AAClN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,sIAAsI,4EAA4E,EAAE;AAC7Q;AACA,+BAA+B,oGAAoG;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mUAAmU;AAC9V;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,kCAAkC,uCAAuC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC;AACpC,oBAAoB;AACpB,+BAA+B;AAC/B,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,gCAAgC;AAChC;AACA,2BAA2B,sBAAsB;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,wBAAwB;AACxB,qBAAqB;AACrB,qBAAqB;AACrB;AACA,uBAAuB,oCAAoC;AAC3D;AACA,aAAa;AACb;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oBAAoB;AACpB,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,WAAW;AAC1B,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB,YAAY,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB,YAAY,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iBAAiB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc,GAAG,6CAA6C,GAAG,cAAc;AAClH;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,+EAA+E,iBAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAA0D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mBAAmB;AACvF;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,oEAAoE,4BAA4B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qCAAqC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sJAAsJ;AACrN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;AACA,iGAAiG,0CAA0C;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yHAAyH;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B;AACpF;AACA,uDAAuD,+BAA+B;AACtF;AACA,wDAAwD;AACxD;AACA,8EAA8E;AAC9E;AACA,kDAAkD,+BAA+B;AACjF;AACA,oDAAoD,+BAA+B;AACnF;AACA,oDAAoD;AACpD;AACA,yDAAyD,+BAA+B;AACxF;AACA,2DAA2D,+BAA+B;AAC1F;AACA,mDAAmD,qCAAqC;AACxF;AACA,2DAA2D;AAC3D;AACA,iEAAiE;AACjE;AACA,8DAA8D;AAC9D;AACA;AACA,yDAAyD;AACzD;AACA,sDAAsD,qCAAqC;AAC3F;AACA,8DAA8D;AAC9D;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iIAAiI;AACvL;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA,UAAU;AACV;AACA;AACA,uEAAuE;AACvE;AACA,sFAAsF;AACtF;AACA,sEAAsE;AACtE;AACA,4EAA4E;AAC5E;AACA,0DAA0D;AAC1D;AACA,0FAA0F,UAAU;AACpG;AACA,2DAA2D;AAC3D;AACA,6DAA6D;AAC7D;AACA,qFAAqF;AACrF;AACA,yHAAyH;AACzH;AACA,6DAA6D;AAC7D;AACA,6DAA6D;AAC7D;AACA,+DAA+D;AAC/D;AACA,qDAAqD,2GAA2G;AAChK;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA,uDAAuD;AACvD;AACA,2DAA2D;AAC3D;AACA,6DAA6D,qEAAqE,gCAAgC;AAClK;AACA,mHAAmH;AACnH;AACA,+FAA+F;AAC/F;AACA,wEAAwE;AACxE;AACA,iEAAiE;AACjE;AACA,iEAAiE;AACjE;AACA,yDAAyD;AACzD;AACA,2DAA2D,8DAA8D,iCAAiC;AAC1J;AACA,2EAA2E;AAC3E;AACA,2DAA2D;AAC3D;AACA,2DAA2D;AAC3D;AACA,6DAA6D,iEAAiE,iCAAiC;AAC/J;AACA,kEAAkE;AAClE;AACA,wDAAwD;AACxD;AACA,qDAAqD;AACrD;AACA,6DAA6D,0BAA0B,2BAA2B;AAClH;AACA,gFAAgF;AAChF;AACA,2DAA2D,8DAA8D,kCAAkC;AAC3J;AACA,8DAA8D,8EAA8E,mBAAmB;AAC/J;AACA,yEAAyE;AACzE;AACA,yDAAyD;AACzD;AACA,oDAAoD;AACpD;AACA,kEAAkE;AAClE;AACA,yDAAyD;AACzD;AACA,+FAA+F,mDAAmD,kEAAkE;AACpN;AACA,sFAAsF;AACtF;AACA,gDAAgD;AAChD;AACA,oEAAoE;AACpE;AACA,8CAA8C;AAC9C;AACA,uMAAuM;AACvM;AACA,wDAAwD;AACxD;AACA,8DAA8D,yDAAyD,kCAAkC;AACzJ;AACA,+DAA+D;AAC/D;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA,wDAAwD,6EAA6E;AACrI;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gLAAgL;AAClO;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8JAA8J;AAChN;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA,+DAA+D,2DAA2D;AAC1H;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oFAAoF,wBAAwB;AAC5G;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,aAAa;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uIAAuI;AACzL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qHAAqH;AACvK;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,wBAAwB;AAC5G;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,0CAA0C,EAAE;AAC3G;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,6DAA6D,uCAAuC,EAAE;AACtG;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,2CAA2C,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iDAAiD;AAC9E;AACA;AACA,6BAA6B,0DAA0D;AACvF;AACA;AACA,6BAA6B,0DAA0D;AACvF;AACA;AACA,6BAA6B,6DAA6D;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,iBAAiB;AAClD,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,IAAI;AACnB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,8DAA8D;AAC9D,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uBAAuB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oLAAoL,UAAU,iBAAiB;AAC/M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,mBAAmB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iJAAiJ;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qEAAqE,8DAA8D,EAAE;AACrI;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yKAAyK;AACpO;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,cAAc,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,sCAAsC;AACtL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA,mDAAmD,gDAAgD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,wCAAwC,UAAU,qBAAqB,cAAc,gCAAgC;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,yKAAyK;AAChP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,gBAAgB,GAAG,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,wCAAwC;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA,0BAA0B,4CAA4C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D,+CAA+C;AAC/C,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD,mCAAmC,mDAAmD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mBAAmB;AACnB,kBAAkB;AAClB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAwE;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,yDAAyD;AACzD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uDAAuD;AACvD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oDAAoD;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,sDAAsD;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,wDAAwD;AACxD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,oDAAoD;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yDAAyD;AACzD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wDAAwD;AACxD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6DAA6D;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oDAAoD;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qDAAqD;AACrD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE,MAAM,EAAE,QAAQ,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,eAAe;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uCAAuC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;;AAEP,UAAU;AACV,CAAC;AACD,+B;;;;;;;;;;;ACvvjBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACnLtC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,uDAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;ACtXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFA;;AACA;;;;;;AAEA;;;;;;AAPA;AACA;AACA;;IAWqBA,U;;;;;AACnB;;;;;wBAKc;AAAE,aAAO,KAAKC,QAAZ;AAAsB;;AAEtC;;;;;;;AAIA,wBAAwB;AAAA,QAAZC,OAAY,uEAAJ,EAAI;AAAA;;AAAA,+DACtB,mBAAMA,OAAN,CADsB;;AAEtB,UAAKD,QAAL,GAAgBC,OAAhB;AACA,UAAKC,QAAL,GAAgB,qBAAS,GAAT,CAAhB;AAHsB;AAIvB;AACD;;;;;;;;;;;kBAjBmBH,U;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbrB;;;;AACA;;AACA;;;;;;AAEA;;;;;;;IAOqBI,e;;;;wBACD;AAAE,aAAO,KAAKC,SAAL,CAAeC,WAAtB;AAAmC;;;AAEvD,2BAAYD,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,uBAAMA,UAAUH,OAAhB,CADqB;;AAErB,UAAKG,SAAL,GAAiBA,SAAjB;AACA,UAAKE,OAAL,GAAe,IAAf;AACA,UAAKC,UAAL;AAJqB;AAKtB;;4BAEDC,M,qBAAS;AACP,QAAI,CAAC,KAAKF,OAAV,EAAmB;AACjB,WAAKC,UAAL;AACA,WAAKD,OAAL,GAAe,IAAf;AACD;AACF,G;;4BAEDG,O,sBAAU;AACR,QAAI,KAAKH,OAAT,EAAkB;AAChB,WAAKI,aAAL;AACA,WAAKJ,OAAL,GAAe,KAAf;AACD;AACF,G;;4BAEDC,U,yBAAa,CAAE,C;;4BAEfI,O,sBAAU;AACR,SAAKD,aAAL;AACD,G;;;;;kBA5BkBP,e;;;AA+BrB,sBAAcA,gBAAgBS,SAA9B;;AAEAT,gBAAgBU,MAAhB,GAAyB,UAASC,UAAT,EAAqB;AAC5C,SAAO,mBAAOX,eAAP,EAAwBW,UAAxB,CAAP;AACD,CAFD;;AAIAX,gBAAgBY,IAAhB,GAAuB,WAAvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDA;;AACA;;;;AACA;;;;;;IAEqBC,U;;;;wBACD;AAAE,aAAO,KAAKC,IAAL,CAAUZ,WAAjB;AAA8B;;;AAElD,sBAAYY,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,uBAAMA,KAAKhB,OAAX,CADgB;;AAEhB,UAAKgB,IAAL,GAAYA,IAAZ;AACA,UAAKX,OAAL,GAAe,IAAf;AACA,UAAKC,UAAL;AAJgB;AAKjB;;uBAEDA,U,yBAAa,CAAE,C;;uBAEfC,M,qBAAS;AACP,QAAI,CAAC,KAAKF,OAAV,EAAmB;AACjB,WAAKC,UAAL;AACA,WAAKD,OAAL,GAAe,IAAf;AACD;AACF,G;;uBAEDG,O,sBAAU;AACR,QAAI,KAAKH,OAAT,EAAkB;AAChB,WAAKI,aAAL;AACA,WAAKJ,OAAL,GAAe,KAAf;AACD;AACF,G;;uBAEDY,oB,mCAAuB;AAAE,WAAO,EAAP;AAAW,G;;uBAEpCP,O,sBAAU;AACR,SAAKD,aAAL;AACD,G;;;;;kBA9BkBM,U;;;AAiCrB,sBAAcA,WAAWJ,SAAzB;;AAEAI,WAAWH,MAAX,GAAoB,UAASC,UAAT,EAAqB;AACvC,SAAO,mBAAOE,UAAP,EAAmBF,UAAnB,CAAP;AACD,CAFD;;AAIAE,WAAWD,IAAX,GAAkB,MAAlB;;;;;;;;;;;;;;;;;;;;;;;AC3CA;;;;AACA;;;;;;AAEA,IAAMI,aAAa;AACjB;;;;;;AAMAC,aAPiB,uBAOLC,KAPK,EAOqC;AAAA,QAAnCpB,OAAmC,uEAAzB,EAAEqB,eAAe,IAAjB,EAAyB;;AACpD,QAAMC,QAAQ,KAAKC,WAAL,IAAoB,KAAKA,WAAL,CAAiBT,IAArC,IAA6C,EAA3D;AACA,QAAMU,SAAS,KAAKC,IAAL,IAAaH,KAA5B;AACA,QAAMI,OAAO,KAAKA,IAAL,IAAa,KAAKV,IAAL,IAAa,KAAKA,IAAL,CAAUU,IAApC,IAA4C,KAAKvB,SAAL,IAAkB,KAAKA,SAAL,CAAeuB,IAA1F;;AAEA,QAAMC,eAAkBH,MAAlB,UAA4BJ,SAASA,MAAMQ,IAAf,IAAuB,SAAnD,CAAN;AACA,QAAMC,eAAe;AACnBC,mBAAa,EADM;AAEnBC,aAAO,gBAAYC,MAAZ,CAAmBC,KAFP;AAGnBT,oBAHmB;AAInBF,kBAJmB;AAKnBY,WAAK;AALc,KAArB;;AAQA,QAAMC,YAAY,sBAAc,EAAd,EAAkBN,YAAlB,EAAgCT,KAAhC,EAAuC;AACvDQ,YAAM5B,QAAQqB,aAAR,GAAwBM,YAAxB,GAAuCP,MAAMQ;AADI,KAAvC,CAAlB;;AAIA,QAAIF,QAAQS,UAAUJ,KAAV,IAAmB,gBAAYC,MAAZ,CAAmBC,KAA9C,IAAuD,CAACE,UAAUC,EAAtE,EAA0E;AACxE,UAAMC,YAAY;AAChBC,eAAOZ,KAAKa,CAAL,CAAO,qBAAP,CADS;AAEhBC,iBAASd,KAAKa,CAAL,CAAO,uBAAP;AAFO,OAAlB;AAIAJ,gBAAUC,EAAV,GAAeC,SAAf;AACD;;AAED,QAAI,KAAKjC,WAAT,EACE,KAAKA,WAAL,CAAiBe,WAAjB,CAA6BgB,SAA7B,EADF,KAGE,cAAIM,IAAJ,CAASjB,MAAT,EAAiB,qCAAjB,EAAwDW,SAAxD;;AAEF,WAAOA,SAAP;AACD;AAvCgB,CAAnB;;kBA0CejB,U;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCf;;;;AACA;;;;AALA;AACA;AACA;;AAKA,IAAMwB,QAAQC,MAAMhC,SAAN,CAAgB+B,KAA9B;;AAEA,IAAME,gBAAgB,KAAtB;;AAEA,IAAMC,YAAY,SAAZA,SAAY,CAASC,GAAT,EAAcC,MAAd,EAAsBtB,IAAtB,EAA4BuB,IAA5B,EAAkC;AAClD,MAAI,CAACvB,IAAL,EAAW,OAAO,IAAP;;AAEX;AACA,MAAI,QAAOA,IAAP,uDAAOA,IAAP,OAAgB,QAApB,EAA8B;AAC5B,SAAK,IAAMwB,GAAX,IAAkBxB,IAAlB;AACEqB,UAAIC,MAAJ,EAAYG,KAAZ,CAAkBJ,GAAlB,EAAuB,CAACG,GAAD,EAAMxB,KAAKwB,GAAL,CAAN,EAAiBE,MAAjB,CAAwBH,IAAxB,CAAvB;AADF,KAGA,OAAO,KAAP;AACD;;AAED;AACA,MAAIJ,cAAcQ,IAAd,CAAmB3B,IAAnB,CAAJ,EAA8B;AAC5B,QAAM4B,QAAQ5B,KAAK6B,KAAL,CAAWV,aAAX,CAAd;AACA,SAAK,IAAIW,IAAI,CAAR,EAAWC,IAAIH,MAAMI,MAA1B,EAAkCF,IAAIC,CAAtC,EAAyCD,GAAzC;AACET,UAAIC,MAAJ,EAAYG,KAAZ,CAAkBJ,GAAlB,EAAuB,CAACO,MAAME,CAAN,CAAD,EAAWJ,MAAX,CAAkBH,IAAlB,CAAvB;AADF,KAGA,OAAO,KAAP;AACD;;AAED,SAAO,IAAP;AACD,CArBD;;AAuBA,IAAMU,gBAAgB,SAAhBA,aAAgB,CAASC,MAAT,EAAiBC,IAAjB,EAAuBC,KAAvB,EAA8BpC,IAA9B,EAAoC;AACxD,MAAIqC,WAAJ;AAAA,MAAQP,IAAI,CAAC,CAAb;AACA,MAAMC,IAAIG,OAAOF,MAAjB;AAAA,MAAyBM,KAAKH,KAAK,CAAL,CAA9B;AAAA,MAAuCI,KAAKJ,KAAK,CAAL,CAA5C;AAAA,MAAqDK,KAAKL,KAAK,CAAL,CAA1D;AACAM;;AAEA,WAASA,GAAT,GAAe;AACb,QAAI;AACF,cAAQN,KAAKH,MAAb;AACA;AACA,aAAK,CAAL;AAAQ,iBAAO,EAAEF,CAAF,GAAMC,CAAb,EAAgB;AAAE,aAACM,KAAKH,OAAOJ,CAAP,CAAN,EAAiBY,QAAjB,CAA0BC,IAA1B,CAA+BN,GAAGO,GAAlC;AAAwC,WAAC;AACnE,aAAK,CAAL;AAAQ,iBAAO,EAAEd,CAAF,GAAMC,CAAb,EAAgB;AAAE,aAACM,KAAKH,OAAOJ,CAAP,CAAN,EAAiBY,QAAjB,CAA0BC,IAA1B,CAA+BN,GAAGO,GAAlC,EAAuCN,EAAvC;AAA4C,WAAC;AACvE,aAAK,CAAL;AAAQ,iBAAO,EAAER,CAAF,GAAMC,CAAb,EAAgB;AAAE,aAACM,KAAKH,OAAOJ,CAAP,CAAN,EAAiBY,QAAjB,CAA0BC,IAA1B,CAA+BN,GAAGO,GAAlC,EAAuCN,EAAvC,EAA2CC,EAA3C;AAAgD,WAAC;AAC3E,aAAK,CAAL;AAAQ,iBAAO,EAAET,CAAF,GAAMC,CAAb,EAAgB;AAAE,aAACM,KAAKH,OAAOJ,CAAP,CAAN,EAAiBY,QAAjB,CAA0BC,IAA1B,CAA+BN,GAAGO,GAAlC,EAAuCN,EAAvC,EAA2CC,EAA3C,EAA+CC,EAA/C;AAAoD,WAAC;AAC/E;AAAS,iBAAO,EAAEV,CAAF,GAAMC,CAAb,EAAgB;AAAE,aAACM,KAAKH,OAAOJ,CAAP,CAAN,EAAiBY,QAAjB,CAA0BjB,KAA1B,CAAgCY,GAAGO,GAAnC,EAAwCT,IAAxC;AAA+C,WAAC;AAN3E;AAQD,KATD,CASE,OAAOU,SAAP,EAAkB;AAClB,oBAAIlD,KAAJ,CAAU8B,KAAV,gBAAqB,CAACW,KAAD,EAAQ,gBAAR,EAA0BpC,IAA1B,EAAgC,SAAhC,EAA0C,GAA1C,EAA+C6C,SAA/C,CAArB;AACAJ;AACD;AACF;AACF,CApBD;;AAsBA;;;;;;IAKqBK,M;;;;;AACnB;;;;;;;mBAOAC,E,eAAG/C,I,EAAM0C,Q,EAAUM,O,EAAS;AAC1B,QAAI,CAAC5B,UAAU,IAAV,EAAgB,IAAhB,EAAsBpB,IAAtB,EAA4B,CAAC0C,QAAD,EAAWM,OAAX,CAA5B,CAAD,IAAqD,CAACN,QAA1D,EAAoE,OAAO,IAAP;AACpE,SAAKO,OAAL,KAAiB,KAAKA,OAAL,GAAe,EAAhC;AACA,QAAMf,SAAS,KAAKe,OAAL,CAAajD,IAAb,MAAuB,KAAKiD,OAAL,CAAajD,IAAb,IAAqB,EAA5C,CAAf;AACAkC,WAAOgB,IAAP,CAAY,EAAER,UAAUA,QAAZ,EAAsBM,SAASA,OAA/B,EAAwCJ,KAAKI,WAAW,IAAxD,EAAZ;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;;;mBAOAG,I,iBAAKnD,I,EAAM0C,Q,EAAUM,O,EAAS;AAAA;;AAC5B,QAAIG,cAAJ;AACA,QAAI,CAAC/B,UAAU,IAAV,EAAgB,MAAhB,EAAwBpB,IAAxB,EAA8B,CAAC0C,QAAD,EAAWM,OAAX,CAA9B,CAAD,IAAuD,CAACN,QAA5D,EAAsE,OAAO,IAAP;AACtE,QAAMU,MAAM,SAANA,GAAM;AAAA,aAAM,MAAKA,GAAL,CAASpD,IAAT,EAAemD,KAAf,CAAN;AAAA,KAAZ;AACAA,YAAO,gBAAW;AAChBC,UAAIpD,IAAJ,EAAUmD,KAAV;AACAT,eAASjB,KAAT,CAAe,IAAf,EAAqB4B,SAArB;AACD,KAHD;AAIA,WAAO,KAAKN,EAAL,CAAQ/C,IAAR,EAAcmD,KAAd,EAAoBH,OAApB,CAAP;AACD,G;;AAED;;;;;;;;;mBAOAI,G,gBAAIpD,I,EAAM0C,Q,EAAUM,O,EAAS;AAC3B,QAAIM,eAAJ;AAAA,QAAYjB,WAAZ;AAAA,QAAgBH,eAAhB;AAAA,QAAwBN,cAAxB;AAAA,QAA+BE,UAA/B;AAAA,QAAkCC,UAAlC;AAAA,QAAqCwB,UAArC;AAAA,QAAwCC,UAAxC;AACA,QAAI,CAAC,KAAKP,OAAN,IAAiB,CAAC7B,UAAU,IAAV,EAAgB,KAAhB,EAAuBpB,IAAvB,EAA6B,CAAC0C,QAAD,EAAWM,OAAX,CAA7B,CAAtB,EAAyE,OAAO,IAAP;AACzE,QAAI,CAAChD,IAAD,IAAS,CAAC0C,QAAV,IAAsB,CAACM,OAA3B,EAAoC;AAClC,WAAKC,OAAL,GAAe,KAAK,CAApB;AACA,aAAO,IAAP;AACD;AACDrB,YAAQ5B,OAAO,CAACA,IAAD,CAAP,GAAgB,oBAAY,KAAKiD,OAAjB,CAAxB;AACA;AACA,SAAKnB,IAAI,CAAJ,EAAOC,IAAIH,MAAMI,MAAtB,EAA8BF,IAAIC,CAAlC,EAAqCD,GAArC,EAA0C;AACxC9B,aAAO4B,MAAME,CAAN,CAAP;AACAI,eAAS,KAAKe,OAAL,CAAajD,IAAb,CAAT;AACA,UAAIkC,MAAJ,EAAY;AACV,aAAKe,OAAL,CAAajD,IAAb,IAAqBsD,SAAS,EAA9B;AACA,YAAIZ,YAAYM,OAAhB,EAAyB;AACvB,eAAKO,IAAI,CAAJ,EAAOC,IAAItB,OAAOF,MAAvB,EAA+BuB,IAAIC,CAAnC,EAAsCD,GAAtC,EAA2C;AACzClB,iBAAKH,OAAOqB,CAAP,CAAL;AACA,gBAAKb,YAAYA,aAAaL,GAAGK,QAA5B,IAAwCA,aAAaL,GAAGK,QAAH,CAAYe,SAAlE,IACCT,WAAWA,YAAYX,GAAGW,OAD/B,EAEEM,OAAOJ,IAAP,CAAYb,EAAZ;AAEH;AACF;AACD,YAAI,CAACiB,OAAOtB,MAAZ,EAAoB,OAAO,KAAKiB,OAAL,CAAajD,IAAb,CAAP;AACrB;AACF;AACD,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKA0D,O,oBAAQ1D,I,EAAM;AACZ,QAAMoC,QAAQ,KAAKpC,IAAL,IAAa,KAAKF,WAAL,CAAiBE,IAA5C;AACA,kBAAI2D,KAAJ,CAAUlC,KAAV,gBAAqB,CAACW,KAAD,EAAQV,MAAR,CAAeR,MAAMhC,SAAN,CAAgB+B,KAAhB,CAAsB0B,IAAtB,CAA2BU,SAA3B,CAAf,CAArB;AACA,QAAI,CAAC,KAAKJ,OAAV,EAAmB,OAAO,IAAP;AACnB,QAAMd,OAAOlB,MAAM0B,IAAN,CAAWU,SAAX,EAAsB,CAAtB,CAAb;AACA,QAAI,CAACjC,UAAU,IAAV,EAAgB,SAAhB,EAA2BpB,IAA3B,EAAiCmC,IAAjC,CAAL,EAA6C,OAAO,IAAP;AAC7C,QAAMD,SAAS,KAAKe,OAAL,CAAajD,IAAb,CAAf;AACA,QAAM4D,YAAY,KAAKX,OAAL,CAAaY,GAA/B;AACA,QAAI3B,MAAJ,EAAYD,cAAcC,MAAd,EAAsBC,IAAtB,EAA4BC,KAA5B,EAAmCpC,IAAnC;AACZ,QAAI4D,SAAJ,EAAe3B,cAAc2B,SAAd,EAAyBP,SAAzB,EAAoCjB,KAApC,EAA2CpC,IAA3C;AACf,WAAO,IAAP;AACD,G;;AAED;;;;;;;;;mBAOAhB,a,0BAAcqC,G,EAAKrB,I,EAAM0C,Q,EAAU;AACjC,QAAIoB,cAAc,KAAKC,YAAvB;AACA,QAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAME,SAAS,CAAChE,IAAD,IAAS,CAAC0C,QAAzB;AACA,QAAI,CAACA,QAAD,IAAa,QAAO1C,IAAP,uDAAOA,IAAP,OAAgB,QAAjC,EAA2C0C,WAAW,IAAX;AAC3C,QAAIrB,GAAJ,EAAS,CAACyC,cAAc,EAAf,EAAmBzC,IAAI4C,SAAvB,IAAoC5C,GAApC;AACT,SAAK,IAAM6C,EAAX,IAAiBJ,WAAjB,EAA8B;AAC5BzC,YAAMyC,YAAYI,EAAZ,CAAN;AACA7C,UAAI+B,GAAJ,CAAQpD,IAAR,EAAc0C,QAAd,EAAwB,IAAxB;AACA,UAAIsB,UAAU,oBAAY3C,IAAI4B,OAAhB,EAAyBjB,MAAzB,KAAoC,CAAlD,EAAqD,OAAO,KAAK+B,YAAL,CAAkBG,EAAlB,CAAP;AACtD;AACD,WAAO,IAAP;AACD,G;;SAEMC,Q,qBAASC,S,EAAW;AACzBtB,WAAOuB,MAAP,KAAkBvB,OAAOuB,MAAP,GAAgB,EAAlC;AACA,QAAIC,WAAW,OAAOF,SAAP,KAAqB,QAArB,IAAiCA,UAAUG,WAAV,GAAwBC,IAAxB,EAAhD;;AAEA,QAAIF,YAAY,CAACxB,OAAOuB,MAAP,CAAcC,QAAd,CAAjB,EAA0C;AACxCxB,aAAOuB,MAAP,CAAcC,QAAd,IAA0BA,SAASG,WAAT,GAAuB5C,KAAvB,CAA6B,GAA7B,EAAkC6C,GAAlC,CACxB,UAACC,KAAD,EAAQC,KAAR;AAAA,eAAkBA,UAAU,CAAV,GAAcD,KAAd,GAAsBA,QAASA,MAAM,CAAN,EAASJ,WAAT,KAAyBI,MAAM1D,KAAN,CAAY,CAAZ,CAA1E;AAAA,OADwB,EAExB4D,IAFwB,CAEnB,EAFmB,CAA1B;AAGD,KAJD,MAKE,cAAIlF,KAAJ,CAAU,QAAV,EAAoB,gCAAgCyE,SAApD;AAEH,G;;SAEMU,yB,wCAA4B;AACjChC,WAAOuB,MAAP,KAAkBvB,OAAOuB,MAAP,GAAgB,EAAlC;AACA,WAAO,oBAAYvB,OAAOuB,MAAnB,EAA2BU,MAA3B,CAAkC,UAACT,QAAD;AAAA,aAAc,OAAOxB,OAAOuB,MAAP,CAAcC,QAAd,CAAP,KAAmC,QAAjD;AAAA,KAAlC,CAAP;AACD,G;;;;;AAGH;;;;;;;;;;;;AAYA;;;;;;;;;;;;;;kBA5IqBxB,M;AAwJrB,IAAMkC,gBAAgB,EAAEC,UAAU,IAAZ,EAAkBC,cAAc,MAAhC,EAAtB;;AAEA,oBAAYF,aAAZ,EAA2BG,OAA3B,CAAmC,UAASC,MAAT,EAAiB;AAClDtC,SAAO5D,SAAP,CAAiBkG,MAAjB,IAA2B,UAAS/D,GAAT,EAAcrB,IAAd,EAAoB0C,QAApB,EAA8B;AACvD,QAAMoB,cAAc,KAAKC,YAAL,KAAsB,KAAKA,YAAL,GAAoB,EAA1C,CAApB;AACA,QAAMG,KAAK7C,IAAI4C,SAAJ,KAAkB5C,IAAI4C,SAAJ,GAAgB,qBAAS,GAAT,CAAlC,CAAX;AACAH,gBAAYI,EAAZ,IAAkB7C,GAAlB;AACA,QAAI,CAACqB,QAAD,IAAa,QAAO1C,IAAP,uDAAOA,IAAP,OAAgB,QAAjC,EAA2C0C,WAAW,IAAX;AAC3CrB,QAAI2D,cAAcI,MAAd,CAAJ,EAA2BpF,IAA3B,EAAiC0C,QAAjC,EAA2C,IAA3C;AACA,WAAO,IAAP;AACD,GAPD;AAQD,CATD;;AAWA;AACA;;;;;AAKAI,OAAOuC,YAAP,GAAsB,OAAtB;AACA;;;;;;AAMAvC,OAAOwC,aAAP,GAAuB,QAAvB;AACA;;;;;;AAMAxC,OAAOyC,iBAAP,GAA2B,YAA3B;AACA;;;;;AAKAzC,OAAO0C,WAAP,GAAqB,MAArB;AACA;;;;;AAKA1C,OAAO2C,YAAP,GAAsB,OAAtB;AACA;;;;;AAKA3C,OAAO4C,WAAP,GAAqB,MAArB;AACA;;;;;AAKA5C,OAAO6C,YAAP,GAAsB,OAAtB;AACA;;;;;;AAMA7C,OAAO8C,WAAP,GAAqB,MAArB;AACA;;;;;;AAMA9C,OAAO+C,YAAP,GAAsB,aAAtB;AACA;;;;;;;;;;;;;;;;;;;AAmBA/C,OAAOgD,KAAP,GAAe,OAAf;AACA;;;;;;;;;;;AAWAhD,OAAOiD,iBAAP,GAA2B,YAA3B;AACA;;;;;;AAMAjD,OAAOkD,mBAAP,GAA6B,cAA7B;;AAEA;;;;;AAKAlD,OAAOmD,yBAAP,GAAmC,mBAAnC;;AAEA;AACA;;;;;;;;;;;;;;;AAeAnD,OAAOoD,iBAAP,GAA2B,mBAA3B;AACA;;;;;;;;;;;AAWApD,OAAOqD,mBAAP,GAA6B,qBAA7B;AACA;;;;;AAKArD,OAAOsD,cAAP,GAAwB,gBAAxB;AACA;;;;;;;;;AASAtD,OAAOuD,kBAAP,GAA4B,oBAA5B;AACA;;;;;;;;;;AAUAvD,OAAOwD,mBAAP,GAA6B,qBAA7B;AACA;;;;;AAKAxD,OAAOyD,uBAAP,GAAiC,yBAAjC;AACA;;;;;;;;;;;AAWAzD,OAAO0D,uBAAP,GAAiC,yBAAjC;AACA;;;;;;;AAOA1D,OAAO2D,6BAAP,GAAuC,+BAAvC;AACA;;;;;;;;;;;;;;;AAeA3D,OAAO4D,gBAAP,GAA0B,kBAA1B;AACA;;;;;;;;;AASA5D,OAAO6D,yBAAP,GAAmC,2BAAnC;AACA;;;;;;AAMA7D,OAAO8D,2BAAP,GAAqC,8BAArC;AACA;;;;;;AAMA9D,OAAO+D,yBAAP,GAAmC,4BAAnC;;AAEA;;;;;;;;;AASA/D,OAAOgE,sBAAP,GAAgC,wBAAhC;AACA;;;;;;AAMAhE,OAAOiE,YAAP,GAAsB,cAAtB;AACA;AACAjE,OAAOkE,6BAAP,GAAuC,+BAAvC;AACA;AACAlE,OAAOmE,4BAAP,GAAsC,8BAAtC;AACA;;;;;;AAMAnE,OAAOoE,cAAP,GAAwB,gBAAxB;AACA;;;;;AAKApE,OAAOqE,oBAAP,GAA8B,sBAA9B;AACA;;;;;;;;;AASArE,OAAOsE,aAAP,GAAuB,eAAvB;AACA;;;;;AAKAtE,OAAOuE,cAAP,GAAwB,gBAAxB;AACA;;;;;AAKAvE,OAAOwE,aAAP,GAAuB,eAAvB;AACA;;;;;AAKAxE,OAAOyE,eAAP,GAAyB,iBAAzB;AACA;;;;;AAKAzE,OAAO0E,aAAP,GAAuB,eAAvB;AACA;;;;;;;AAOA1E,OAAO2E,cAAP,GAAwB,gBAAxB;AACA;AACA3E,OAAO4E,kBAAP,GAA4B,oBAA5B;AACA;AACA5E,OAAO6E,wBAAP,GAAkC,0BAAlC;AACA;AACA7E,OAAO8E,qBAAP,GAA+B,uBAA/B;AACA;;;;;AAKA9E,OAAO+E,2BAAP,GAAqC,6BAArC;AACA;;;;;;;;;AASA/E,OAAOgF,yBAAP,GAAmC,2BAAnC;;AAEA;AACA;;;;;AAKAhF,OAAOiF,uBAAP,GAAiC,yBAAjC;AACA;;;;;AAKAjF,OAAOkF,6BAAP,GAAuC,+BAAvC;AACA;;;;;;AAMAlF,OAAOmF,mBAAP,GAA6B,qBAA7B;AACA;;;;;AAKAnF,OAAOoF,UAAP,GAAoB,YAApB;AACA;;;;;;AAMApF,OAAOqF,eAAP,GAAyB,iBAAzB;AACA;;;;;;AAMArF,OAAOsF,WAAP,GAAqB,aAArB;AACA;;;;;;;;;;;;AAYAtF,OAAOuF,+BAAP,GAAyC,iCAAzC;AACA;;;;;;AAMAvF,OAAOwF,eAAP,GAAyB,gBAAzB;AACA;;;;;;AAMAxF,OAAOyF,gBAAP,GAA0B,iBAA1B;;AAEA;AACA;;;;;;;;;AASAzF,OAAO0F,uBAAP,GAAiC,yBAAjC;AACA1F,OAAO2F,iCAAP,GAA2C,eAA3C;AACA;;;;;;;;;;;;;;;AAeA3F,OAAO4F,iBAAP,GAA2B,mBAA3B;AACA5F,OAAO6F,sBAAP,GAAgC,wBAAhC;AACA7F,OAAO8F,mBAAP,GAA6B,qBAA7B;AACA;;;;;AAKA9F,OAAO+F,eAAP,GAAyB,iBAAzB;AACA/F,OAAOgG,eAAP,GAAyB,iBAAzB;AACA;;;;;;;;;;;AAWAhG,OAAOiG,wBAAP,GAAkC,0BAAlC;;AAEA;;;;;AAKAjG,OAAOkG,4BAAP,GAAsC,8BAAtC;AACA;;;;;;;;;AASAlG,OAAOmG,0BAAP,GAAoC,4BAApC;;AAEA;;;;;;;;;;;AAWAnG,OAAOoG,oBAAP,GAA8B,sBAA9B;AACA;;;;;;;;;;;;;AAaApG,OAAOqG,kBAAP,GAA4B,oBAA5B;AACArG,OAAOsG,cAAP,GAAwB,gBAAxB;AACAtG,OAAOuG,cAAP,GAAwB,gBAAxB;AACAvG,OAAOwG,eAAP,GAAyB,iBAAzB;AACAxG,OAAOyG,eAAP,GAAyB,iBAAzB;AACAzG,OAAO0G,eAAP,GAAyB,iBAAzB;AACA1G,OAAO2G,kBAAP,GAA4B,oBAA5B;AACA3G,OAAO4G,qBAAP,GAA+B,uBAA/B;AACA5G,OAAO6G,qBAAP,GAA+B,sBAA/B;AACA7G,OAAO8G,qBAAP,GAA+B,sBAA/B;AACA;;;;;;AAMA9G,OAAO+G,cAAP,GAAwB,gBAAxB;AACA;;;;;;AAMA/G,OAAOgH,gBAAP,GAA0B,kBAA1B;AACAhH,OAAOiH,gBAAP,GAA0B,kBAA1B;AACAjH,OAAOkH,oBAAP,GAA8B,sBAA9B;AACA;;;;;AAKAlH,OAAOmH,yBAAP,GAAmC,2BAAnC;AACA;;;;;AAKAnH,OAAOoH,0BAAP,GAAoC,4BAApC;AACA;;;;;AAKApH,OAAOqH,wBAAP,GAAkC,0BAAlC;AACA;;;;;;;AAOArH,OAAOsH,8BAAP,GAAwC,gCAAxC;;AAEA;;;;;AAKAtH,OAAOuH,2BAAP,GAAqC,6BAArC;AACA;;;;;AAKAvH,OAAOwH,2BAAP,GAAqC,6BAArC;;AAEAxH,OAAOyH,8BAAP,GAAwC,gCAAxC;AACAzH,OAAO0H,6BAAP,GAAuC,+BAAvC;AACA1H,OAAO2H,mBAAP,GAA6B,qBAA7B;AACA;;;;;AAKA3H,OAAO4H,wBAAP,GAAkC,0BAAlC;;AAEA;AACA5H,OAAO6H,qBAAP,GAA+B,uBAA/B;AACA;;;;;AAKA7H,OAAO8H,uBAAP,GAAiC,yBAAjC;AACA;;;;;AAKA9H,OAAO+H,iBAAP,GAA2B,mBAA3B;AACA;;;;;AAKA/H,OAAOgI,iBAAP,GAA2B,mBAA3B;AACA;;;;;;;AAOAhI,OAAOiI,8BAAP,GAAwC,gCAAxC;AACA;;;;;;;AAOAjI,OAAOkI,+BAAP,GAAyC,iCAAzC;AACA;;;;;AAKAlI,OAAOmI,oBAAP,GAA8B,sBAA9B;AACA;;;;;AAKAnI,OAAOoI,uBAAP,GAAiC,yBAAjC;AACA;;;;;AAKApI,OAAOqI,6BAAP,GAAuC,+BAAvC;AACA;;;;;AAKArI,OAAOsI,2BAAP,GAAqC,6BAArC;;;;;;;;;;;;;;;;;;ACj1BA;AACO,IAAMC,oBAAM,g+DAAZ;;kBAEQ;AACbA,OAAKA;AADQ,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHf;;AACA;;;;AACA;;;;AAEA;;;;;;AAEA;;;;;;;IAOqBC,Q;;;;;AACnB;;;;;wBAKkB;AAChB,aAAO,KAAP;AACD;;;wBAEgB;AACf,aAAO,KAAP;AACD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAP;AACD;;AAED;;;;;;;;wBAKW;AACT,aAAO,KAAKC,KAAZ;AACD;;AAED;;;;;;;;;;wBAOgB;AACd,aAAO,KAAP;AACD;;AAED;;;;;;;;wBAKgB;AACd,aAAO,KAAKC,UAAZ;AACD;;AAED;;;;;;;;AAKA,oBAAYjN,OAAZ,EAAqB0B,IAArB,EAA2BtB,WAA3B,EAAwC;AAAA;;AAAA,+DACtC,qBAAMJ,OAAN,CADsC;;AAEtC,UAAKkN,QAAL,GAAgB,EAAhB;AACA,UAAKF,KAAL,GAAatL,IAAb;AACA,UAAKtB,WAAL,GAAmBA,WAAnB;AACA,UAAK6M,UAAL,GAAkB,KAAlB;AALsC;AAMvC;;AAED;;;;;;qBAIAE,O,sBAAU;AACR,SAAKF,UAAL,GAAkB,IAAlB;AACD,G;;AAED;;;;;;qBAIAG,I,mBAAO,CAAE,C;;AAET;;;;;;qBAIAC,K,oBAAQ,CAAE,C;;AAEV;;;;;;qBAIAC,I,mBAAO,CAAE,C;;AAET;;;;;;;qBAKAC,I,iBAAKC,I,EAAM,CAAE,C,EAAC;;AAEd;;;;;;;qBAKAC,c,2BAAeC,U,EAAY,CAAE,C,EAAC;;AAE9B;;;;;;;;;qBAOAC,kB,iCAAqB;AAAE,WAAO,CAAP;AAAU,G;;AAEjC;;;;;;;qBAKAC,W,0BAAc;AAAE,WAAO,CAAP;AAAU,G;;AAE1B;;;;;;;qBAKAC,S,wBAAY;AACV,WAAO,KAAP;AACD,G;;AAED;;;;;;;AAyCsC;;AAEtC;;;;;;;;;;;;qBAYAC,e,8BAAkB;AAChB,WAAOf,SAASgB,KAAhB;AACD,G;;AAED;;;;;;;qBAKAC,qB,oCAAwB;AACtB,WAAO,KAAP;AACD,G;;AAED;;;;;;;qBAKAC,M,mBAAO7H,K,EAAO,CAAE,C,EAAC;;AAEjB;;;;;;;qBAKA8H,S,sBAAUlO,O,EAAS;AACjB,SAAKD,QAAL,GAAgB,sBAAEa,MAAF,CAAS,KAAKb,QAAd,EAAwBC,OAAxB,CAAhB;AACD,G;;AAED;;;;;;qBAIAmO,e,8BAAkB;AAAA;;AAChB,SAAKC,WAAL,CAAiB,UAACC,MAAD,EAASjN,KAAT,EAAmB;AAAE;AACpCiN,gBAAU,OAAKjB,IAAL,EAAV;AACD,KAFD;AAGD,G;;AAED;;;;;;;qBAKAgB,W,wBAAYE,E,EAAI;AACdA,OAAG,IAAH,EAAS,IAAT,EADc,CACC;AAChB,G;;;;wBAhGa;AACZ,aAAO,KAAP;AACD;;AAED;;;;;;;;wBAK8B;AAC5B,aAAO,KAAKC,oBAAL,CAA0B9K,MAA1B,GAAmC,CAA1C;AACD;;AAED;;;;;;;;wBAK2B;AACzB,aAAO,EAAP;AACD;;AAED;;;;;;;;wBAK4B;AAC1B,aAAO,CAAC,CAAR;AACD;;AAED;;;;;;sBAK0B+K,O,EAAS,CAAE;;;;;kBA3KlBzB,Q;;;AA0OrB,sBAAcA,SAASpM,SAAvB;;AAEAoM,SAASnM,MAAT,GAAkB,UAASC,UAAT,EAAqB;AACrC,SAAO,mBAAOkM,QAAP,EAAiBlM,UAAjB,CAAP;AACD,CAFD;;AAIA;;;;;;;;;;AAUAkM,SAAS0B,OAAT,GAAmB,UAACC,MAAD,EAASC,QAAT,EAAsB;AAAE;AACzC,SAAO,KAAP;AACD,CAFD;;AAIA;;;;;;;AAOA5B,SAAS6B,GAAT,GAAe,KAAf;AACA;;;;;;;AAOA7B,SAAS8B,GAAT,GAAe,KAAf;AACA;;;;;;;AAOA9B,SAAS+B,IAAT,GAAgB,MAAhB;AACA;;;;;;;AAOA/B,SAASgB,KAAT,GAAiB,OAAjB;AACA;;;;;;;AAOAhB,SAASjM,IAAT,GAAgB,UAAhB;;;;;;;;;;;;;;;AClTA;AACA;AACA;;AAEA;;;;;;AAMA,IAAI,CAAC6B,MAAMhC,SAAN,CAAgBoO,IAArB,EAA2B;AACzB;AACAC,SAAOC,cAAP,CAAsBtM,MAAMhC,SAA5B,EAAuC,MAAvC,EAA+C;AAC7C;AACAyF,WAAO,eAAS8I,SAAT,EAAoB;AACzB;AACA,UAAI,QAAQ,IAAZ,EACE,MAAM,IAAIC,SAAJ,CAAc,+BAAd,CAAN;;AAGF,UAAIC,IAAIJ,OAAO,IAAP,CAAR;;AAEA;AACA,UAAIK,MAAMD,EAAE3L,MAAF,KAAa,CAAvB;;AAEA;AACA,UAAI,OAAOyL,SAAP,KAAqB,UAAzB,EACE,MAAM,IAAIC,SAAJ,CAAc,8BAAd,CAAN;;AAGF;AACA,UAAIG,UAAUxK,UAAU,CAAV,CAAd;;AAEA;AACA,UAAIG,IAAI,CAAR;;AAEA;AACA,aAAOA,IAAIoK,GAAX,EAAgB;AACd;AACA;AACA;AACA;AACA,YAAIE,SAASH,EAAEnK,CAAF,CAAb;AACA,YAAIiK,UAAU9K,IAAV,CAAekL,OAAf,EAAwBC,MAAxB,EAAgCtK,CAAhC,EAAmCmK,CAAnC,CAAJ,EACE,OAAOG,MAAP;;AAEF;AACAtK;AACD;;AAED;AACA,aAAOuK,SAAP;AACD;AAxC4C,GAA/C;AA0CD,C;;;;;;;;;;;;;;;;;;AClDD;;;;AACA;;;;;;AALA;AACA;AACA;;AAKA,IAAMC,SAAS;AACbC,eAAa,qBAASC,KAAT,EAAyC;AAAA,QAAzB3P,OAAyB,uEAAjB,EAAE4P,SAAS,EAAX,EAAiB;;AACpD,WAAO,2BAAE,sCAAF,EAA0CC,IAA1C,CAA+C,wBAASF,MAAMG,QAAN,EAAT,EAA2B9P,OAA3B,CAA/C,CAAP;AACD;AAHY,CAAf;;kBAMeyP,M;;;;;;;;;;;;;;;;;;ACbf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAIvC,WAAW;AACb6C,YAAc,iBADD;AAEbC,eAAc,kBAFD;AAGbC,UAAc;;AAGhB;AACA;AACA;AARe,CAAf,CASA,IAAIC,UAAU,MAAd;;AAEA;AACA;AACA,IAAIC,UAAU;AACZ,QAAW,IADC;AAEZ,QAAU,IAFE;AAGZ,QAAU,GAHE;AAIZ,QAAU,GAJE;AAKZ,QAAU,GALE;AAMZ,YAAU,OANE;AAOZ,YAAU;AAPE,CAAd;;AAUA,IAAIC,UAAU,8BAAd;;AAEA;AACA,IAAIC,eAAe;AACjB,OAAK,OADY;AAEjB,OAAK,MAFY;AAGjB,OAAK,MAHY;AAIjB,OAAK,QAJY;AAKjB,QAAM;AALW,CAAnB;;AAQA,IAAIC,WAAW,IAAIC,MAAJ,CAAW,UAAX,EAAuB,GAAvB,CAAf;;AAEA,IAAIC,aAAa,SAAbA,UAAa,CAASC,MAAT,EAAiB;AAChC,MAAIA,WAAW,IAAf,EAAqB,OAAO,EAAP;AACrB,SAAO,CAAC,KAAKA,MAAN,EAAcC,OAAd,CAAsBJ,QAAtB,EAAgC,UAASK,KAAT,EAAgB;AACrD,WAAON,aAAaM,KAAb,CAAP;AACD,GAFM,CAAP;AAGD,CALD;;AAOA,IAAIC,UAAU,CAAd;;AAEA;AACA;AACA;AACA,IAAIC,OAAO,SAAPA,IAAO,CAASC,IAAT,EAAeC,IAAf,EAAqB;AAC9B,MAAIC,MAAJ;;AAEA;AACA,MAAIC,UAAU,IAAIV,MAAJ,CAAW,CACvB,CAACrD,SAAS+C,MAAT,IAAmBC,OAApB,EAA6BxB,MADN,EAEvB,CAACxB,SAAS8C,WAAT,IAAwBE,OAAzB,EAAkCxB,MAFX,EAGvB,CAACxB,SAAS6C,QAAT,IAAqBG,OAAtB,EAA+BxB,MAHR,EAIvBpI,IAJuB,CAIlB,GAJkB,IAIX,IAJA,EAIM,GAJN,CAAd;;AAMA;AACA,MAAID,QAAQ,CAAZ;AACA,MAAIqI,SAAS,SAAb;AACAoC,OAAKJ,OAAL,CAAaO,OAAb,EAAsB,UAASN,KAAT,EAAgBV,MAAhB,EAAwBD,WAAxB,EAAqCD,QAArC,EAA+CmB,MAA/C,EAAuD;AAC3ExC,cAAUoC,KAAKpO,KAAL,CAAW2D,KAAX,EAAkB6K,MAAlB,EACPR,OADO,CACCN,OADD,EACU,UAASO,KAAT,EAAgB;AAAE,aAAO,OAAOR,QAAQQ,KAAR,CAAd;AAA8B,KAD1D,CAAV;;AAGA,QAAIV,MAAJ,EACEvB,UAAU,iBAAiBuB,MAAjB,GAA0B,qCAApC;;AAEF,QAAID,WAAJ,EACEtB,UAAU,iBAAiBsB,WAAjB,GAA+B,yBAAzC;;AAEF,QAAID,QAAJ,EACErB,UAAU,UAAUqB,QAAV,GAAqB,WAA/B;;AAEF1J,YAAQ6K,SAASP,MAAMlN,MAAvB;AACA,WAAOkN,KAAP;AACD,GAfD;AAgBAjC,YAAU,OAAV;;AAEA;AACA,MAAI,CAACxB,SAASiE,QAAd,EAAwBzC,SAAS,qBAAqBA,MAArB,GAA8B,KAAvC;;AAExBA,WAAS,+CACP,qDADO,GAEPA,MAFO,GAEE,oDAFF,GAEyDkC,SAFzD,GAEqE,GAF9E;;AAIA,MAAI;AACF;AACA;AACAI,aAAS,IAAII,QAAJ,CAAalE,SAASiE,QAAT,IAAqB,KAAlC,EAAyC,YAAzC,EAAuDzC,MAAvD,CAAT;AACD,GAJD,CAIE,OAAO2C,CAAP,EAAU;AACVA,MAAE3C,MAAF,GAAWA,MAAX;AACA,UAAM2C,CAAN;AACD;;AAED,MAAIN,IAAJ,EAAU,OAAOC,OAAOD,IAAP,EAAaP,UAAb,CAAP;AACV,MAAIc,WAAW,SAAXA,QAAW,CAASP,IAAT,EAAe;AAC5B,WAAOC,OAAO5M,IAAP,CAAY,IAAZ,EAAkB2M,IAAlB,EAAwBP,UAAxB,CAAP;AACD,GAFD;;AAIA;AACAc,WAAS5C,MAAT,GAAkB,eAAexB,SAASiE,QAAT,IAAqB,KAApC,IAA6C,MAA7C,GAAsDzC,MAAtD,GAA+D,GAAjF;;AAEA,SAAO4C,QAAP;AACD,CAxDD;AAyDAT,KAAK3D,QAAL,GAAgBA,QAAhB;;kBAEe2D,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Gf;;AACA;;;;AACA;;;;;;AAEA;;;;;;;IAOqBU,iB;;;;wBACD;AAAE,aAAO,KAAKpR,SAAL,CAAeC,WAAtB;AAAmC;;;AAEvD,6BAAYD,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,qBAAMA,UAAUH,OAAhB,CADqB;;AAErB,UAAKG,SAAL,GAAiBA,SAAjB;AACA,UAAKE,OAAL,GAAe,IAAf;AACA,UAAKC,UAAL;AAJqB;AAKtB;;8BAEDC,M,qBAAS;AACP,QAAI,CAAC,KAAKF,OAAV,EAAmB;AACjB,WAAKC,UAAL;AACA,WAAKkR,GAAL,CAASC,IAAT;AACA,WAAKpR,OAAL,GAAe,IAAf;AACD;AACF,G;;8BAEDG,O,sBAAU;AACR,SAAKC,aAAL;AACA,SAAK+Q,GAAL,CAASE,IAAT;AACA,SAAKrR,OAAL,GAAe,KAAf;AACD,G;;8BAEDC,U,yBAAa,CAAE,C;;;wBAvCjB;AACA;AACA;;kBAaqBiR,iB;;;AA4BrB,sBAAcA,kBAAkB5Q,SAAhC;;AAEA4Q,kBAAkB3Q,MAAlB,GAA2B,UAASC,UAAT,EAAqB;AAC9C,SAAO,mBAAO0Q,iBAAP,EAA0B1Q,UAA1B,CAAP;AACD,CAFD;;AAIA0Q,kBAAkBzQ,IAAlB,GAAyB,WAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDA;;AACA;;;;AACA;;;;;;IAEqB6Q,Y;;;;wBACD;AAAE,aAAO,KAAK3Q,IAAL,CAAUZ,WAAjB;AAA8B;;;AAElD,wBAAYY,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,qBAAMA,KAAKhB,OAAX,CADgB;;AAEhB,UAAKgB,IAAL,GAAYA,IAAZ;AACA,UAAKX,OAAL,GAAe,IAAf;AACA,UAAKC,UAAL;AACA,UAAK0Q,MAAL;AALgB;AAMjB;;yBAED1Q,U,yBAAa,CAAE,C;;yBAEfW,oB,mCAAuB;AAAE,WAAO,EAAP;AAAW,G;;yBAEpCV,M,qBAAS;AACP,QAAI,CAAC,KAAKF,OAAV,EAAmB;AACjB,WAAKC,UAAL;AACA,WAAKkR,GAAL,CAASC,IAAT;AACA,WAAKpR,OAAL,GAAe,IAAf;AACD;AACF,G;;yBAEDG,O,sBAAU;AACR,SAAKC,aAAL;AACA,SAAK+Q,GAAL,CAASE,IAAT;AACA,SAAKrR,OAAL,GAAe,KAAf;AACD,G;;yBAED2Q,M,qBAAS;AACP,WAAO,IAAP;AACD,G;;;;;kBA/BkBW,Y;;;AAkCrB,sBAAcA,aAAahR,SAA3B;;AAEAgR,aAAa/Q,MAAb,GAAsB,UAASC,UAAT,EAAqB;AACzC,SAAO,mBAAO8Q,YAAP,EAAqB9Q,UAArB,CAAP;AACD,CAFD;;AAIA8Q,aAAa7Q,IAAb,GAAoB,MAApB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxCA;;;;AACA;;AACA;;;;;;AAEA,IAAM8Q,wBAAwB,gBAA9B;;AAEA;;;;;;;AAVA;AACA;AACA;;IAeqBC,Q;;;;;AACnB;;;;;;AAMA;;;;;;AAMA;;;;;;;AAOA;;;;;;wBAMc;AAAE,aAAO,KAAP;AAAc;AAC9B;;;;;;;;;;;;;;;;;;;;;;;wBAoBa;AAAE,aAAO,EAAP;AAAW;AAC1B;;;;;;;;;;;;;;;;;;;;wBAiBiB;AAAE,aAAO,EAAP;AAAW;;AAE9B;;;;;;;;;;;AAQA,oBAAY7R,OAAZ,EAAqB;AAAA;;AAAA,+DACnB,uBAAMA,OAAN,CADmB;;AAEnB,UAAK8R,GAAL,GAAW,qBAAS,GAAT,CAAX;AACA,UAAKC,cAAL;AACA,UAAKC,cAAL;AAJmB;AAKpB;;AAED;;;;;;;;;;;;qBAUAC,C,cAAEC,Q,EAAU;AACV,WAAO,KAAKV,GAAL,CAASzC,IAAT,CAAcmD,QAAd,CAAP;AACD,G;;AAED;;;;;;;qBAKAlB,M,qBAAS;AACP,WAAO,IAAP;AACD,G;;AAED;;;;;;;qBAKAtQ,O,sBAAU;AACR,SAAK8Q,GAAL,CAAS/L,MAAT;AACA,SAAKhF,aAAL;AACA,SAAK0R,gBAAL;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;;;qBAOAC,U,uBAAWC,O,EAASC,Q,EAAU;AAC5B,QAAI,KAAKd,GAAT,EAAc,KAAKW,gBAAL;AACd,SAAKX,GAAL,GAAW,sBAAEe,KAAF,CAAQC,GAAR,CAAYH,OAAZ,IAAuBA,OAAvB,GAAiC,2BAAEA,OAAF,CAA5C;AACA,SAAKI,EAAL,GAAU,KAAKjB,GAAL,CAAS,CAAT,CAAV;AACA,QAAIc,aAAa,KAAjB,EAAwB,KAAKN,cAAL;AACxB,WAAO,IAAP;AACD,G;;AAED;;;;;;;;qBAMAA,c,2BAAerO,M,EAAQ;AACrB,QAAI,EAAEA,WAAWA,SAAS,KAAKA,MAAzB,CAAF,CAAJ,EAAyC,OAAO,IAAP;AACzC,SAAKwO,gBAAL;AACA,SAAK,IAAMlP,GAAX,IAAkBU,MAAlB,EAA0B;AACxB,UAAIkD,SAASlD,OAAOV,GAAP,CAAb;AACA,UAAK4D,UAAUA,OAAOtF,WAAP,KAAuB6P,QAAtC,EAAiDvK,SAAS,KAAKlD,OAAOV,GAAP,CAAL,CAAT;AACjD,UAAI,CAAC4D,MAAL,EAAa;;AAEb,UAAM8J,QAAQ1N,IAAI0N,KAAJ,CAAUiB,qBAAV,CAAd;AACA,UAAI/L,YAAY8K,MAAM,CAAN,CAAhB;AAAA,UAA0BuB,WAAWvB,MAAM,CAAN,CAArC;AACA9K,mBAAa,oBAAoB,KAAKiM,GAAtC;AACA,UAAII,aAAa,EAAjB,EACE,KAAKV,GAAL,CAAShN,EAAT,CAAYqB,SAAZ,EAAuBgB,OAAO6L,IAAP,CAAY,IAAZ,CAAvB,EADF,KAGE,KAAKlB,GAAL,CAAShN,EAAT,CAAYqB,SAAZ,EAAuBqM,QAAvB,EAAiCrL,OAAO6L,IAAP,CAAY,IAAZ,CAAjC;AAEH;AACD,WAAO,IAAP;AACD,G;;AAED;;;;;;;qBAKAP,gB,+BAAmB;AACjB,SAAKX,GAAL,CAAS3M,GAAT,CAAa,oBAAoB,KAAKiN,GAAtC;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;qBAKAC,c,6BAAiB;AACf,QAAI,CAAC,KAAKU,EAAV,EAAc;AACZ,UAAME,QAAQ,sBAAE/R,MAAF,CAAS,EAAT,EAAa,KAAKgS,UAAlB,CAAd;AACA,UAAI,KAAKjN,EAAT,EAAagN,MAAMhN,EAAN,GAAW,KAAKA,EAAhB;AACb,UAAI,KAAKkN,SAAT,EAAoBF,MAAM,OAAN,IAAiB,KAAKE,SAAtB;AACpB,UAAMrB,MAAM,mBAAYsB,MAAZ,CAAmB,KAAKC,OAAxB,EAAiCC,IAAjC,CAAsCL,KAAtC,CAAZ;AACA,WAAKP,UAAL,CAAgBZ,GAAhB,EAAqB,KAArB;AACD,KAND,MAMO;AAAE,WAAKY,UAAL,CAAgB,KAAKK,EAArB,EAAyB,KAAzB;AAAiC;AAE3C,G;;;;;kBAtLkBZ,Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCPLoB,M,GAAAA,M;QAUArS,M,GAAAA,M;QAaAsS,U,GAAAA,U;QA8IAC,mB,GAAAA,mB;QAoBAlT,Q,GAAAA,Q;QAMAmT,Q,GAAAA,Q;QAIAC,gB,GAAAA,gB;QAeAC,kB,GAAAA,kB;QAIAC,G,GAAAA,G;QAQAC,e,GAAAA,e;QAQAC,sB,GAAAA,sB;QAMAC,gB,GAAAA,gB;;AAjPhB;;AACA;;;;AACA;;;;AACA;;;;;;AARA;AACA;AACA;AACA;;AAOO,SAAST,MAAT,CAAgBnQ,GAAhB,EAAqB4L,MAArB,EAA6B;AAClC,MAAIA,MAAJ,EAAY;AACV,SAAK,IAAMiF,IAAX,IAAmBjF,MAAnB,EAA2B;AACzB,UAAMkF,iBAAiB,wCAAgClF,MAAhC,EAAwCiF,IAAxC,CAAvB;AACAC,uBAAiB,8BAAsB9Q,GAAtB,EAA2B6Q,IAA3B,EAAiCC,cAAjC,CAAjB,GAAoE9Q,IAAI6Q,IAAJ,IAAYjF,OAAOiF,IAAP,CAAhF;AACD;AACF;AACD,SAAO7Q,GAAP;AACD;;AAEM,SAASlC,MAAT,CAAgBiT,MAAhB,EAAwBhT,UAAxB,EAAoC;AAAA,MACnCiT,SADmC;AAAA;;AAEvC,yBAAqB;AAAA;;AAAA,wCAANlQ,IAAM;AAANA,YAAM;AAAA;;AAAA,iEACnB,0CAASA,IAAT,EADmB;;AAEnB,UAAI/C,WAAWkT,UAAf,EACElT,WAAWkT,UAAX,CAAsB7Q,KAAtB,QAAkCU,IAAlC;;AAHiB;AAKpB;;AAPsC;AAAA,IACjBiQ,MADiB;;AASzCZ,SAAOa,UAAUnT,SAAjB,EAA4BE,UAA5B;AACA,SAAOiT,SAAP;AACD;;AAEM,SAASZ,UAAT,CAAoB1F,IAApB,EAA0BwG,WAA1B,EAAuC;AAC5C,MAAI,CAACC,SAASzG,IAAT,CAAL,EACE,OAAO,OAAP;;AAEFA,SAAOA,OAAO,IAAd;AACAA,SAAO0G,SAAS1G,OAAK,IAAd,CAAP;AACA,MAAM2G,UAAU3G,OAAO,EAAvB;AACAA,SAAO0G,SAAS1G,OAAK,EAAd,CAAP;AACA,MAAM4G,UAAU5G,OAAO,EAAvB;AACAA,SAAO0G,SAAS1G,OAAK,EAAd,CAAP;AACA,MAAM6G,QAAQ7G,OAAO,EAArB;AACA,MAAM8G,OAAOJ,SAAS1G,OAAK,EAAd,CAAb;AACA,MAAI+G,MAAM,EAAV;AACA,MAAID,QAAQA,OAAO,CAAnB,EAAsB;AACpBC,WAAOD,OAAO,GAAd;AACA,QAAID,QAAQ,CAAZ,EAAeE,OAAO,KAAP;AAChB;AACD,MAAIF,SAASA,QAAQ,CAAjB,IAAsBL,WAA1B,EAAuCO,OAAO,CAAC,MAAMF,KAAP,EAAc3R,KAAd,CAAoB,CAAC,CAArB,IAA0B,GAAjC;AACvC6R,SAAO,CAAC,MAAMH,OAAP,EAAgB1R,KAAhB,CAAsB,CAAC,CAAvB,IAA4B,GAAnC;AACA6R,SAAO,CAAC,MAAMJ,OAAP,EAAgBzR,KAAhB,CAAsB,CAAC,CAAvB,CAAP;AACA,SAAO6R,IAAItO,IAAJ,EAAP;AACD;;AAEM,IAAMuO,kCAAa;AACxBC,wBAAsB,gCAAW;AAC/B,WAAOC,SAASC,uBAAT,IACLD,SAASE,kBADJ,IAELF,SAASG,aAFJ,IAGLH,SAASI,mBAHX;AAID,GANuB;AAOxBC,qBAAmB,2BAAStC,EAAT,EAAa;AAC9B,QAAIA,GAAGsC,iBAAP,EACEtC,GAAGsC,iBAAH,GADF,KAEK,IAAItC,GAAGuC,uBAAP,EACHvC,GAAGuC,uBAAH,GADG,KAEA,IAAIvC,GAAGwC,oBAAP,EACHxC,GAAGwC,oBAAH,GADG,KAEA,IAAIxC,GAAGyC,mBAAP,EACHzC,GAAGyC,mBAAH,GADG,KAEA,IAAIzC,GAAG0C,aAAH,IAAoB1C,GAAG0C,aAAH,CAAiB,OAAjB,CAApB,IAAiD1C,GAAG0C,aAAH,CAAiB,OAAjB,EAA0BC,qBAA/E,EACH3C,GAAG0C,aAAH,CAAiB,OAAjB,EAA0BC,qBAA1B,GADG,KAEA,IAAI3C,GAAG2C,qBAAP,EACH3C,GAAG2C,qBAAH;AAEH,GArBuB;AAsBxBC,oBAAkB,4BAAsB;AAAA,QAAb5C,EAAa,uEAAViC,QAAU;;AACtC,QAAIjC,GAAG6C,cAAP,EACE7C,GAAG6C,cAAH,GADF,KAEK,IAAI7C,GAAG8C,sBAAP,EACH9C,GAAG8C,sBAAH,GADG,KAEA,IAAI9C,GAAG+C,oBAAP,EACH/C,GAAG+C,oBAAH,GADG,KAEA,IAAI/C,GAAGgD,mBAAP,EACHhD,GAAGgD,mBAAH,GADG,KAEA,IAAIhD,GAAGiD,gBAAP,EACHjD,GAAGiD,gBAAH;AAEH,GAlCuB;AAmCxBC,qBAAmB,6BAAW;AAC5B,WAAO,CAAC,EACNjB,SAASiB,iBAAT,IACAjB,SAASkB,uBADT,IAEAlB,SAASmB,oBAFT,IAGAnB,SAASoB,mBAJH,CAAR;AAMD;AA1CuB,CAAnB;;IA6CMC,M,WAAAA,M;;;;;SAEJC,c,6BAAiB;AACtB,WAAO;AACL/H,cAAQ;AACN7H,eAAO,GADD;AAEN6P,eAAO/B;AAFD;AADH,KAAP;AAMD,G;;SAEMgC,gB,6BAAiBjT,G,EAAK;AAC3B,QAAI;AACF,aAAO,KAAK+S,cAAL,GAAsB/S,GAAtB,EAA2BgT,KAA3B,CAAiC,KAAKD,cAAL,GAAsB/S,GAAtB,EAA2BmD,KAA5D,CAAP;AACD,KAFD,CAEE,OAAOiL,CAAP,EAAU;AACV,aAAO7B,SAAP;AACD;AACF,G;;SAEM2G,e,4BAAgBlT,G,EAAK;AAC1B,uBAAiByR,SAAS0B,MAA1B,SAAoCnT,GAApC;AACD,G;;SAEMoT,O,oBAAQpT,G,EAAK;AAClB,QAAI,kBAAQqT,eAAR,IAA2BC,aAAa,KAAKJ,eAAL,CAAqBlT,GAArB,CAAb,CAA/B,EACE,OAAO,KAAK+S,cAAL,GAAsB/S,GAAtB,EAA2BgT,KAA3B,CAAiCM,aAAa,KAAKJ,eAAL,CAAqBlT,GAArB,CAAb,CAAjC,CAAP;;AAEF,WAAO,KAAKiT,gBAAL,CAAsBjT,GAAtB,CAAP;AACD,G;;SAEMuT,O,oBAAQvT,G,EAAKmD,K,EAAO;AACzB,QAAI,kBAAQkQ,eAAZ,EAA6B;AAC3B,UAAI;AACFC,qBAAa,KAAKJ,eAAL,CAAqBlT,GAArB,CAAb,IAA0CmD,KAA1C;AACA,eAAO,IAAP;AACD,OAHD,CAGE,OAAOiL,CAAP,EAAU;AACV,eAAO,KAAP;AACD;AACF;AACF,G;;;;;IAGUoF,W,WAAAA,W;;;;;cAmBJR,K,kBAAMS,Y,EAAc;AACzB,QAAI/F,cAAJ;AACA,QAAMgG,KAAK,KAAX;AAAA,QAAmB;AACjBC,aAAS,oBADX;AAAA,QAEEC,SAAS,SAATA,MAAS,CAACC,CAAD;AAAA,aAAOC,mBAAmBD,EAAEpG,OAAF,CAAUiG,EAAV,EAAc,GAAd,CAAnB,CAAP;AAAA,KAFX;AAAA,QAGEK,SAAS,EAHX;AAIA,WAAOrG,QAAQiG,OAAOK,IAAP,CAAYP,YAAZ,CAAf,EAA0C;AAAE;AAC1CM,aAAOH,OAAOlG,MAAM,CAAN,CAAP,EAAiBzK,WAAjB,EAAP,IAAyC2Q,OAAOlG,MAAM,CAAN,CAAP,CAAzC;AACD;AACD,WAAOqG,MAAP;AACD,G;;;;wBA5BmB;AAClB,UAAME,QAAQC,OAAOC,QAAP,CAAgBR,MAAhB,CAAuBS,SAAvB,CAAiC,CAAjC,CAAd;AACA,UAAIH,UAAU,KAAKA,KAAnB,EAA0B;AACxB,aAAKI,UAAL,GAAkB,KAAKrB,KAAL,CAAWiB,KAAX,CAAlB;AACA,aAAKA,KAAL,GAAaA,KAAb;AACD;AACD,aAAO,KAAKI,UAAZ;AACD;;;wBAEuB;AACtB,UAAMC,OAAOJ,OAAOC,QAAP,CAAgBG,IAAhB,CAAqBF,SAArB,CAA+B,CAA/B,CAAb;AACA,UAAIE,SAAS,KAAKA,IAAlB,EAAwB;AACtB,aAAKC,WAAL,GAAmB,KAAKvB,KAAL,CAAWsB,IAAX,CAAnB;AACA,aAAKA,IAAL,GAAYA,IAAZ;AACD;AACD,aAAO,KAAKC,WAAZ;AACD;;;;;AAeI,SAASrE,mBAAT,GAA8C;AAAA,MAAjBsE,SAAiB,uEAAL,GAAK;;AACnD,MAAItD,UAAU,CAAd;AACA,MAAMuD,aAAajB,YAAYO,MAAZ,CAAmBS,SAAnB,KAAiChB,YAAYkB,UAAZ,CAAuBF,SAAvB,CAAjC,IAAsE,EAAzF;AACA,MAAMG,QAAQF,WAAW/G,KAAX,CAAiB,eAAjB,KAAqC,EAAnD;AACA,MAAIiH,MAAMnU,MAAN,GAAe,CAAnB,EAAsB;AACpB,QAAMoU,SAAS,EAAE,KAAK,IAAP,EAAa,KAAK,EAAlB,EAAsB,KAAK,CAA3B,EAAf;AACAD,UAAMhR,OAAN,CAAc,UAAS6L,EAAT,EAAa;AACzB,UAAIA,EAAJ,EAAQ;AACN,YAAMqF,SAASrF,GAAGA,GAAGhP,MAAH,GAAY,CAAf,CAAf;AACA,YAAM+J,OAAO0G,SAASzB,GAAG/P,KAAH,CAAS,CAAT,EAAY+P,GAAGhP,MAAH,GAAY,CAAxB,CAAT,EAAqC,EAArC,CAAb;AACA0Q,mBAAW3G,OAAQqK,OAAOC,MAAP,CAAnB;AACD;AACF,KAND;AAOD,GATD,MASO,IAAIJ,UAAJ,EAAgB;AAAEvD,cAAUD,SAASwD,UAAT,EAAqB,EAArB,CAAV;AAAoC;;AAE7D,SAAOvD,OAAP;AACD;;AAED,IAAM4D,aAAa,EAAnB;;AAEO,SAAS9X,QAAT,CAAkB+X,MAAlB,EAA0B;AAC/BD,aAAWC,MAAX,MAAuBD,WAAWC,MAAX,IAAqB,CAA5C;AACA,MAAMrS,KAAK,EAAEoS,WAAWC,MAAX,CAAb;AACA,SAAOA,SAASrS,EAAhB;AACD;;AAEM,SAASyN,QAAT,CAAkBhN,KAAlB,EAAyB;AAC9B,SAAOA,QAAQ6R,WAAW7R,KAAX,CAAR,GAA4B,CAA5B,IAAiC,CAAxC;AACD;;AAEM,SAASiN,gBAAT,GAA4B;AACjC,MAAM6E,UAAUxD,SAASyD,oBAAT,CAA8B,QAA9B,CAAhB;AACA,SAAOD,QAAQzU,MAAR,GAAiByU,QAAQA,QAAQzU,MAAR,GAAiB,CAAzB,EAA4B2U,GAA7C,GAAmD,EAA1D;AACD;;AAEM,IAAMC,wDAAwB,CAAClB,OAAOkB,qBAAP,IACVlB,OAAOmB,wBADG,IAEVnB,OAAOoB,2BAFG,IAGV,UAASC,EAAT,EAAa;AAAErB,SAAOsB,UAAP,CAAkBD,EAAlB,EAAsB,OAAK,EAA3B;AAAgC,CAHtC,EAGwC9F,IAHxC,CAG6CyE,MAH7C,CAA9B;;AAKA,IAAMuB,sDAAuB,CAACvB,OAAOuB,oBAAP,IACVvB,OAAOwB,uBADG,IAEVxB,OAAOyB,0BAFG,IAGVzB,OAAO0B,YAHE,EAGYnG,IAHZ,CAGiByE,MAHjB,CAA7B;;AAKA,SAAS7D,kBAAT,GAA8B;AACnC,SAAO6D,OAAO2B,SAAP,IAAoB3B,OAAO2B,SAAP,CAAiBC,QAA5C;AACD;;AAEM,SAASxF,GAAT,GAAe;AACpB,MAAI4D,OAAO6B,WAAP,IAAsB7B,OAAO6B,WAAP,CAAmBzF,GAA7C,EACE,OAAOyF,YAAYzF,GAAZ,EAAP;;AAEF,SAAO0F,KAAK1F,GAAL,EAAP;AACD;;AAED;AACO,SAASC,eAAT,CAAyB0F,GAAzB,EAA8BC,IAA9B,EAAoC;AACzC,MAAM5V,IAAI2V,IAAIE,OAAJ,CAAYD,IAAZ,CAAV;AACA,MAAI5V,KAAK,CAAT,EACE2V,IAAIG,MAAJ,CAAW9V,CAAX,EAAc,CAAd;AAEH;;AAED;AACO,SAASkQ,sBAAT,CAAgC0F,IAAhC,EAAsCG,KAAtC,EAA6C;AAClD,MAAIH,SAAS3J,SAAT,IAAsB8J,UAAU9J,SAApC,EAA+C,OAAO,KAAP;AAC/C,SAAO8J,MAAMvK,IAAN,CAAW,UAACwK,QAAD;AAAA,WAAcJ,KAAKjT,WAAL,OAAuBqT,SAASrT,WAAT,EAArC;AAAA,GAAX,MAA4EsJ,SAAnF;AACD;;AAED;AACO,SAASkE,gBAAT,CAA0BpF,EAA1B,EAA8BtO,OAA9B,EAAuC;AAC5CA,YAAU,sBAAc;AACtBwZ,YAAQ,KADc;AAEtBC,WAAO,KAFe;AAGtBC,aAAS,GAHa;AAItB5Y,UAAM,OAJgB;AAKtB4N,YAAQ,gBAAM5B,GALQ;AAMtBuF,aAAS;AANa,GAAd,EAOPrS,OAPO,CAAV;;AASA,MAAIqS,UAAUrS,QAAQqS,OAAR,GAAkBrS,QAAQqS,OAA1B,GAAoCqC,SAASiF,aAAT,CAAuB3Z,QAAQc,IAA/B,CAAlD;;AAEAuR,UAAQoH,KAAR,GAAgBzZ,QAAQyZ,KAAxB;AACA,MAAIzZ,QAAQyZ,KAAR,KAAkB,IAAtB,EACEpH,QAAQuH,YAAR,CAAqB,OAArB,EAA8B,OAA9B;;AAEF,MAAI5Z,QAAQwZ,MAAR,KAAmB,IAAvB,EACEnH,QAAQuH,YAAR,CAAqB,aAArB,EAAoC,aAApC;;AAEFvH,UAAQ+F,GAAR,GAAcpY,QAAQ0O,MAAtB;;AAEA,MAAImL,UAAUxH,QAAQjF,IAAR,EAAd;;AAEA,MAAI0M,YAAYrB,WAAW,YAAM;AAC/BsB,cAAU,KAAV,EAAiB,IAAIC,KAAJ,cAAqBha,QAAQ0Z,OAA7B,0BAAjB;AACD,GAFe,EAEb1Z,QAAQ0Z,OAFK,CAAhB;;AAIA,MAAIK,YAAY,SAAZA,SAAY,CAAC1L,MAAD,EAA0B;AAAA,QAAjBjN,KAAiB,uEAAT,IAAS;;AACxCyX,iBAAaiB,SAAb;AACAxL,OAAGD,MAAH,EAAWjN,KAAX;AACD,GAHD;;AAKA,MAAIyY,YAAYrK,SAAhB,EAA2B;AACzBqK,YACGI,IADH,CACQ;AAAA,aAAMF,UAAU,IAAV,CAAN;AAAA,KADR,EAEGG,KAFH,CAES;AAAA,aAAOH,UAAU,KAAV,EAAiBI,GAAjB,CAAP;AAAA,KAFT;AAGD,GAJD,MAIO;AACLJ,cAAU,IAAV;AACD;AACF;;AAED;AACA,IAAMK,aAAa,EAAnB;;IAEaC,W,WAAAA,W;;;;;cACJnM,S,sBAAUlO,O,EAAS;AACxB,SAAKA,OAAL,GAAe,sBAAEY,MAAF,CAAS,KAAKZ,OAAd,EAAuBA,OAAvB,CAAf;AACD,G;;cAEM8S,M,mBAAOrR,I,EAAM;AAClB,QAAI,KAAKzB,OAAL,CAAasa,YAAb,IAA6B7Y,SAAS,OAAtC,IAAiD2Y,WAAW3W,MAAX,GAAoB,CAAzE,EACE,OAAO2W,WAAWG,KAAX,EAAP;;AAEF,WAAO,2BAAE,MAAM9Y,IAAN,GAAa,GAAf,CAAP;AACD,G;;cAEM+Y,O,oBAAQhJ,G,EAAK;AAClB;AACA,QAAI,CAAC,KAAKxR,OAAL,CAAasa,YAAd,IAA8B9I,IAAI,CAAJ,EAAOuB,OAAP,CAAe/M,WAAf,OAAiC,OAAnE,EAA4E;AAC5EwL,QAAIiJ,QAAJ,GAAehV,MAAf;AACA2U,eAAWzV,IAAX,CAAgB6M,GAAhB;AACD,G;;;;;AAGH6I,YAAYra,OAAZ,GAAsB,EAAEsa,cAAc,KAAhB,EAAtB;;IAEaI,kB,WAAAA,kB;AACX,gCAAyB;AAAA,QAAbC,KAAa,uEAAL,GAAK;AAAA;;AACvB,SAAKA,KAAL,GAAaA,KAAb;AACA,SAAKC,QAAL,GAAgB,CAAhB;AACD;;+BAEDC,M,mBAAOC,K,EAAOxM,E,EAAsB;AAAA,QAAlByM,SAAkB,uEAAN,IAAM;;AAClC;AACA,QAAIC,cAAc,IAAI/B,IAAJ,GAAWgC,OAAX,EAAlB;AACA,QAAIC,WAAWF,cAAc,KAAKJ,QAAlC;;AAEA,QAAIM,WAAW,KAAKP,KAAhB,IAAyBO,WAAW,CAAxC,EAA2C;AACzC5M;AACAyM,mBAAaD,MAAMK,cAAN,EAAb;AACD;;AAED,SAAKP,QAAL,GAAgBI,WAAhB;AACD,G;;;;;kBAGY;AACbjF,gBADa;AAEbvB,wBAFa;AAGbiC,0BAHa;AAIb4D,0BAJa;AAKbzZ,gBALa;AAMbsS,wBANa;AAObC,0CAPa;AAQblT,oBARa;AASboT,oCATa;AAUbD,oBAVa;AAWbiF,8CAXa;AAYbK,4CAZa;AAabpF,wCAba;AAcbC,UAda;AAebC,kCAfa;AAgBbE,oCAhBa;AAiBb0H,wBAjBa;AAkBbV;AAlBa,C;;;;;;;;;;;;;;;;;;;;;;;AC5Uf;;;;AACA;;;;AACA;;;;;;AAEA,IAAMW,UAAU,EAAhB;;AAEA,IAAM/E,kBAAkB,SAAlBA,eAAkB,GAAW;AACjC,MAAI;AACFC,iBAAa+E,OAAb,CAAqB,QAArB,EAA+B,QAA/B;AACA/E,iBAAagF,UAAb,CAAwB,QAAxB;AACA,WAAO,IAAP;AACD,GAJD,CAIE,OAAOlK,CAAP,EAAU;AACV,WAAO,KAAP;AACD;AACF,CARD;;AAUA,IAAMmK,WAAW,SAAXA,QAAW,GAAW;AAC1B,MAAI;AACF,QAAMC,KAAK,IAAIC,aAAJ,CAAkB,+BAAlB,CAAX;AACA,WAAO,CAAC,CAACD,EAAT;AACD,GAHD,CAGE,OAAOpK,CAAP,EAAU;AACV,WAAO,CAAC,EAAEyH,UAAU6C,SAAV,IAAuB7C,UAAU6C,SAAV,CAAoB,+BAApB,MAAyDnM,SAAhF,IACRsJ,UAAU6C,SAAV,CAAoB,+BAApB,EAAqDC,aAD/C,CAAR;AAED;AACF,CARD;;AAUO,IAAMC,0CAAiB,SAAjBA,cAAiB,CAASC,EAAT,EAAa;AACzC,MAAIlE,QAAQkE,GAAGnL,KAAH,CAAS,iFAAT,KAA+F,EAA3G;AAAA,MACEoL,cADF;AAEA,MAAI,WAAW3Y,IAAX,CAAgBwU,MAAM,CAAN,CAAhB,CAAJ,EAA+B;AAC7BmE,YAAQ,kBAAkB9E,IAAlB,CAAuB6E,EAAvB,KAA8B,EAAtC;AACA,WAAO;AACLra,YAAM,IADD;AAELua,eAAS9H,SAAS6H,MAAM,CAAN,KAAY,EAArB;AAFJ,KAAP;AAID,GAND,MAMO,IAAInE,MAAM,CAAN,MAAa,QAAjB,EAA2B;AAChCmE,YAAQD,GAAGnL,KAAH,CAAS,cAAT,CAAR;AACA,QAAIoL,SAAS,IAAb,EAAmB,OAAO,EAAEta,MAAM,OAAR,EAAiBua,SAAS9H,SAAS6H,MAAM,CAAN,CAAT,CAA1B,EAAP;;AAEnBA,YAAQD,GAAGnL,KAAH,CAAS,eAAT,CAAR;AACA,QAAIoL,SAAS,IAAb,EAAmB,OAAO,EAAEta,MAAM,MAAR,EAAgBua,SAAS9H,SAAS6H,MAAM,CAAN,CAAT,CAAzB,EAAP;AAEpB,GAPM,MAOA,IAAI,WAAW3Y,IAAX,CAAgB0Y,EAAhB,MAAwBC,QAAQD,GAAGnL,KAAH,CAAS,iBAAT,CAAhC,CAAJ,EAAkE;AACvEiH,UAAMyB,MAAN,CAAa,CAAb,EAAgB,CAAhB,EAAmB,iBAAnB;AACAzB,UAAMyB,MAAN,CAAa,CAAb,EAAgB,CAAhB,EAAmB0C,MAAM,CAAN,CAAnB;AACD;AACDnE,UAAQA,MAAM,CAAN,IAAW,CAACA,MAAM,CAAN,CAAD,EAAWA,MAAM,CAAN,CAAX,CAAX,GAAkC,CAACkB,UAAUmD,OAAX,EAAoBnD,UAAUoD,UAA9B,EAA0C,IAA1C,CAA1C;;AAEA,SAAO;AACLza,UAAMmW,MAAM,CAAN,CADD;AAELoE,aAAS9H,SAAS0D,MAAM,CAAN,CAAT;AAFJ,GAAP;AAID,CA1BM;;AA4BP;AACO,IAAMuE,0CAAiB,SAAjBA,cAAiB,GAAW;AACvC,MAAIC,gBAAgB,EAApB;AACA,MAAIC,YAAYhB,QAAQgB,SAAR,CAAkBnW,WAAlB,EAAhB;;AAEA;AAJuC;AAAA;AAAA;;AAAA;AAKvC,sLAAkC;AAAA,UAAzBoW,OAAyB;;AAChC,UAAIC,gBAAgB,IAAIhM,MAAJ,CAAW+L,QAAQE,UAAR,CAAmBtW,WAAnB,EAAX,CAApB;AACA,UAAIuW,sBAAsBF,cAActF,IAAd,CAAmBoF,SAAnB,CAA1B;;AAEA,UAAII,uBAAuB,IAAvB,IAA+BA,oBAAoB,CAApB,CAAnC,EAA2D;AACzDL,sBAAc3a,IAAd,GAAqB6a,QAAQ7a,IAA7B;AACA2a,sBAAcM,KAAd,GAAsBJ,QAAQI,KAA9B;;AAEA;AACA,YAAIJ,QAAQK,iBAAZ,EAA+B;AAC7B,cAAIC,gBAAgB,IAAIrM,MAAJ,CAAW+L,QAAQK,iBAAR,CAA0BzW,WAA1B,EAAX,CAApB;AACA,cAAI2W,sBAAsBD,cAAc3F,IAAd,CAAmBoF,SAAnB,CAA1B;;AAEA,cAAIQ,uBAAuB,IAAvB,IAA+BA,oBAAoB,CAApB,CAAnC,EACEC,kBAAkBD,oBAAoB,CAApB,CAAlB,EAA0CT,aAA1C;AAEH,SAPD,MAOO;AACLU,4BAAkBL,oBAAoB,CAApB,CAAlB,EAA0CL,aAA1C;AACD;AACD;AACD;AACF;AA1BsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AA2BvC,SAAOA,aAAP;AACD,CA5BM;;AA8BP;AACA,IAAMU,oBAAoB,SAApBA,iBAAoB,CAASd,OAAT,EAAkBI,aAAlB,EAAiC;AACzD,MAAIW,eAAef,QAAQ1Y,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAnB;AACA8Y,gBAAcY,WAAd,GAA4BhB,OAA5B;;AAEA;AACA,MAAIe,aAAa,CAAb,CAAJ,EAAqBX,cAAca,YAAd,GAA6B/I,SAAS6I,aAAa,CAAb,CAAT,CAA7B;;AAErB;AACA,MAAIA,aAAa,CAAb,CAAJ,EAAqBX,cAAcc,YAAd,GAA6BhJ,SAAS6I,aAAa,CAAb,CAAT,CAA7B;AACtB,CATD;;AAWA;AACO,IAAMI,gCAAY,SAAZA,SAAY,GAAW;AAClC,MAAIC,WAAW,EAAf;AACA,MAAIf,YAAYhB,QAAQgB,SAAR,CAAkBnW,WAAlB,EAAhB;;AAEA;AAJkC;AAAA;AAAA;;AAAA;AAKlC,uLAAwB;AAAA,UAAfmX,EAAe;;AACtB,UAAIC,WAAW,IAAI/M,MAAJ,CAAW8M,GAAGb,UAAH,CAActW,WAAd,EAAX,CAAf;AACA,UAAIqX,iBAAiBD,SAASrG,IAAT,CAAcoF,SAAd,CAArB;;AAEA,UAAIkB,kBAAkB,IAAtB,EAA4B;AAC1BH,iBAAS3b,IAAT,GAAgB4b,GAAG5b,IAAnB;AACA2b,iBAASV,KAAT,GAAiBW,GAAGX,KAApB;;AAEA;AACA,YAAIW,GAAGrB,OAAP,EAAgB;AACdwB,uBAAaH,GAAGrB,OAAhB,EAA0BqB,GAAGI,gBAAJ,GAAwBJ,GAAGI,gBAA3B,GAA8C,GAAvE,EAA4EL,QAA5E;;AAEA;AACD,SAJD,MAIO,IAAIG,eAAe,CAAf,CAAJ,EAAuB;AAC5BC,uBAAaD,eAAe,CAAf,CAAb,EAAiCF,GAAGI,gBAAJ,GAAwBJ,GAAGI,gBAA3B,GAA8C,GAA9E,EAAmFL,QAAnF;;AAEA;AACD,SAJM,MAIA,IAAIC,GAAGV,iBAAP,EAA0B;AAC/B,cAAIC,gBAAgB,IAAIrM,MAAJ,CAAW8M,GAAGV,iBAAH,CAAqBzW,WAArB,EAAX,CAApB;AACA,cAAI2W,sBAAsBD,cAAc3F,IAAd,CAAmBoF,SAAnB,CAA1B;;AAEA,cAAIQ,uBAAuB,IAAvB,IAA+BA,oBAAoB,CAApB,CAAnC,EACEW,aAAaX,oBAAoB,CAApB,CAAb,EAAsCQ,GAAGI,gBAAJ,GAAwBJ,GAAGI,gBAA3B,GAA8C,GAAnF,EAAwFL,QAAxF;AAEH;AACD;AACD;AACF;AAhCiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAiClC,SAAOA,QAAP;AACD,CAlCM;;AAoCP;AACA,IAAMI,eAAe,SAAfA,YAAe,CAASxB,OAAT,EAAkB0B,SAAlB,EAA6BN,QAA7B,EAAuC;AAC1D,MAAIO,iBAAiBD,UAAUE,MAAV,CAAiB,CAAjB,EAAoB,CAApB,KAA0B,GAA1B,GAAgC,IAAIrN,MAAJ,CAAWmN,SAAX,EAAsB,GAAtB,CAAhC,GAA6DA,SAAlF;AACA,MAAMX,eAAef,QAAQ1Y,KAAR,CAAcqa,cAAd,EAA8B,CAA9B,CAArB;;AAEA,MAAID,aAAa,GAAjB,EAAsB1B,UAAUA,QAAQtL,OAAR,CAAgB,IAAIH,MAAJ,CAAWmN,SAAX,EAAsB,GAAtB,CAAhB,EAA4C,GAA5C,CAAV;;AAEtBN,WAASJ,WAAT,GAAuBhB,OAAvB;;AAEA;AACA,MAAIe,gBAAgBA,aAAa,CAAb,CAApB,EACEK,SAASH,YAAT,GAAwB/I,SAAS6I,aAAa,CAAb,CAAT,CAAxB;;AAEF;AACA,MAAIA,gBAAgBA,aAAa,CAAb,CAApB,EACEK,SAASF,YAAT,GAAwBhJ,SAAS6I,aAAa,CAAb,CAAT,CAAxB;AACH,CAfD;;AAiBA;AACO,IAAMc,4CAAkB,SAAlBA,eAAkB,GAAW;AACxC,MAAIC,iBAAiB,EAArB;;AAEAA,iBAAeC,KAAf,GAAuB,2BAAE5G,MAAF,EAAU4G,KAAV,EAAvB;AACAD,iBAAeE,MAAf,GAAwB,2BAAE7G,MAAF,EAAU6G,MAAV,EAAxB;;AAEA,SAAOF,cAAP;AACD,CAPM;;AASP;AACA,IAAMG,yBAAyB,SAAzBA,sBAAyB,GAAW;AACxC,UAAQ9G,OAAO+G,WAAf;AACA,SAAK,CAAC,EAAN;AACA,SAAK,EAAL;AACE7C,cAAQ8C,QAAR,CAAiBD,WAAjB,GAA+B,WAA/B;AACA;AACF;AACE7C,cAAQ8C,QAAR,CAAiBD,WAAjB,GAA+B,UAA/B;AACA;AAPF;AASD,CAVD;;AAYO,IAAME,gCAAY,SAAZA,SAAY,CAAStC,EAAT,EAAa;AACpC,MAAIuC,iBAAiB,oDAArB;AACA,MAAIC,UAAUD,eAAepH,IAAf,CAAoB6E,EAApB,CAAd;AACA,MAAIyC,SAASD,YAAYA,QAAQ,CAAR,KAAcA,QAAQ,CAAR,CAA1B,KAAyC,EAAtD;AACA,SAAOC,MAAP;AACD,CALM;;AAOP,IAAMC,cAAc3C,eAAe/C,UAAUuD,SAAzB,CAApB;;AAEAhB,QAAQoD,MAAR,GAAiB,QAAQrb,IAAR,CAAa0V,UAAUuD,SAAvB,CAAjB;AACAhB,QAAQqD,QAAR,GAAmB,gBAAgBtb,IAAhB,CAAqB0V,UAAUuD,SAA/B,KAA6C,CAAChB,QAAQoD,MAAzE;AACApD,QAAQsD,QAAR,GAAmB,UAAUvb,IAAV,CAAe0V,UAAUuD,SAAzB,KAAuC,CAAChB,QAAQqD,QAAhD,IAA4D,CAACrD,QAAQoD,MAAxF;AACApD,QAAQuD,SAAR,GAAoB,WAAWxb,IAAX,CAAgB0V,UAAUuD,SAA1B,CAApB;AACAhB,QAAQwD,UAAR,GAAqB,CAAC,CAAE1H,OAAOuE,aAA/B;AACAL,QAAQyD,IAAR,GAAezD,QAAQwD,UAAR,IAAsB,mBAAmBzb,IAAnB,CAAwB0V,UAAUuD,SAAlC,CAArC;AACAhB,QAAQ0D,MAAR,GAAiB,kBAAkB3b,IAAlB,CAAuB0V,UAAUuD,SAAjC,CAAjB;AACAhB,QAAQ2D,YAAR,GAAuB3D,QAAQqD,QAAR,IAAoB,SAAStb,IAAT,CAAc0V,UAAUuD,SAAxB,CAA3C;AACAhB,QAAQ4D,QAAR,GAAmB,6FAA6F7b,IAA7F,CAAkG0V,UAAUuD,SAA5G,CAAnB;AACAhB,QAAQ6D,KAAR,GAAgB,oBAAoB9b,IAApB,CAAyB0V,UAAUuD,SAAnC,CAAhB;AACAhB,QAAQ8D,SAAR,GAAoB,WAAW/b,IAAX,CAAgB0V,UAAUuD,SAA1B,CAApB;AACAhB,QAAQ+D,cAAR,GAAyB,iBAAiBhc,IAAjB,CAAsB0V,UAAUuD,SAAhC,CAAzB;AACAhB,QAAQgE,SAAR,GAAoB,aAAajc,IAAb,CAAkB0V,UAAUuD,SAA5B,CAApB;AACAhB,QAAQiE,MAAR,GAAiB,QAAQlc,IAAR,CAAa0V,UAAUuD,SAAvB,CAAjB;AACAhB,QAAQkE,KAAR,GAAgB,iBAAiBnc,IAAjB,CAAsB0V,UAAUuD,SAAhC,CAAhB;AACAhB,QAAQ/E,eAAR,GAA0BA,iBAA1B;AACA+E,QAAQG,QAAR,GAAmBA,UAAnB;;AAEA;;;;;AAKAH,QAAQ5Z,IAAR,GAAe+c,YAAY/c,IAA3B;;AAEA;;;;;AAKA4Z,QAAQW,OAAR,GAAkBwC,YAAYxC,OAA9B;;AAEAX,QAAQgB,SAAR,GAAoBvD,UAAUuD,SAA9B;AACAhB,QAAQtK,IAAR,GAAeoL,gBAAf;AACAd,QAAQgC,EAAR,GAAaF,WAAb;AACA9B,QAAQ8C,QAAR,GAAmBN,iBAAnB;AACAxC,QAAQkD,MAAR,GAAiBH,UAAU/C,QAAQgB,SAAlB,CAAjB;AACA,OAAOlF,OAAO+G,WAAd,KAA8B,WAA9B,IAA6CD,wBAA7C;;kBAEe5C,O;;;;;;;;;;;;;;;;;AC/Nf;AACA;;AAEA,IAAMmE,eAAe,CAAC;AACpB/d,QAAM,UADc;AAEpBib,SAAO,QAFa;AAGpBF,cAAY;AAHQ,CAAD,EAIlB;AACD/a,QAAM,eADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,0BAHX;AAIDG,qBAAmB;AAJlB,CAJkB,EASlB;AACDlb,QAAM,QADL;AAEDib,SAAO,QAFN;AAGDF,cAAY;AAHX,CATkB,EAalB;AACD/a,QAAM,gBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY;AAHX,CAbkB,EAiBlB;AACD/a,QAAM,iBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY;AAHX,CAjBkB,EAqBlB;AACD/a,QAAM,SADL;AAEDib,SAAO,SAFN;AAGDF,cAAY;AAHX,CArBkB,EAyBlB;AACD/a,QAAM,YADL;AAEDib,SAAO,OAFN;AAGDF,cAAY;AAHX,CAzBkB,EA6BlB;AACD/a,QAAM,OADL;AAEDib,SAAO,OAFN;AAGDF,cAAY;AAHX,CA7BkB,EAiClB;AACD/a,QAAM,OADL;AAEDib,SAAO,OAFN;AAGDF,cAAY,kBAHX;AAIDG,qBAAmB;AAJlB,CAjCkB,EAsClB;AACDlb,QAAM,UADL;AAEDib,SAAO,UAFN;AAGDF,cAAY;AAHX,CAtCkB,EA0ClB;AACD/a,QAAM,mBADL;AAEDib,SAAO,UAFN;AAGDF,cAAY;AAHX,CA1CkB,EA8ClB;AACD/a,QAAM,mBADL;AAEDib,SAAO,UAFN;AAGDF,cAAY,oBAHX;AAIDG,qBAAmB;AAJlB,CA9CkB,EAmDlB;AACDlb,QAAM,SADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,iBAHX;AAIDG,qBAAmB;AAJlB,CAnDkB,EAwDlB;AACDlb,QAAM,QADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mBAHX;AAIDG,qBAAmB;AAJlB,CAxDkB,CAArB;;kBA+De6C,Y;;;;;;;;;;;;;;;;;;;AClEf;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;;AAEA,IAAMC,UAAU,CAAC;AACfhe,QAAM,cADS;AAEfib,SAAO,SAFQ;AAGfF,cAAY,gBAHG;AAIfR,WAAS;AAJM,CAAD,EAKb;AACDva,QAAM,YADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,gBAHX;AAIDR,WAAS;AAJR,CALa,EAUb;AACDva,QAAM,eADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,gBAHX;AAIDR,WAAS;AAJR,CAVa,EAeb;AACDva,QAAM,WADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,gBAHX;AAIDR,WAAS;AAJR,CAfa,EAoBb;AACDva,QAAM,WADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,gBAHX;AAIDR,WAAS;AAJR,CApBa,EAyBb;AACDva,QAAM,aADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,gBAHX;AAIDR,WAAS;AAJR,CAzBa,EA8Bb;AACDva,QAAM,YADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,iBAHX;AAIDR,WAAS;AAJR,CA9Ba,EAmCb;AACDva,QAAM,eADL;AAEDib,SAAO,eAFN;AAGDF,cAAY;AAHX,CAnCa,EAuCb;AACD/a,QAAM,eADL;AAEDib,SAAO,eAFN;AAGDF,cAAY;AAHX,CAvCa,EA2Cb;AACD/a,QAAM,SADL;AAEDib,SAAO,SAFN;AAGDF,cAAY;AAHX,CA3Ca,EA+Cb;AACD/a,QAAM,WADL;AAEDib,SAAO,WAFN;AAGDF,cAAY;AAHX,CA/Ca,EAmDb;AACD/a,QAAM,SADL;AAEDib,SAAO,SAFN;AAGDF,cAAY,SAHX;AAIDG,qBAAmB;AAJlB,CAnDa,EAwDb;AACDlb,QAAM,MADL;AAEDib,SAAO,KAFN;AAGDF,cAAY,MAHX;AAIDG,qBAAmB,cAJlB;AAKDc,oBAAkB;AALjB,CAxDa,EA8Db;AACDhc,QAAM,MADL;AAEDib,SAAO,KAFN;AAGDF,cAAY,MAHX;AAIDG,qBAAmB,cAJlB;AAKDc,oBAAkB;AALjB,CA9Da,EAoEb;AACDhc,QAAM,QADL;AAEDib,SAAO,KAFN;AAGDF,cAAY,WAHX;AAIDG,qBAAmB,cAJlB;AAKDc,oBAAkB;AALjB,CApEa,EA0Eb;AACDhc,QAAM,sBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,oCAHX;AAIDiB,oBAAkB;AAJjB,CA1Ea,EA+Eb;AACDhc,QAAM,iBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,oCAHX;AAIDiB,oBAAkB;AAJjB,CA/Ea,EAoFb;AACDhc,QAAM,qBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,oCAHX;AAIDiB,oBAAkB;AAJjB,CApFa,EAyFb;AACDhc,QAAM,mBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,oCAHX;AAIDiB,oBAAkB;AAJjB,CAzFa,EA8Fb;AACDhc,QAAM,oBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CA9Fa,EAmGb;AACDhc,QAAM,wBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CAnGa,EAwGb;AACDhc,QAAM,eADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CAxGa,EA6Gb;AACDhc,QAAM,uBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CA7Ga,EAkHb;AACDhc,QAAM,kBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CAlHa,EAuHb;AACDhc,QAAM,gBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CAvHa,EA4Hb;AACDhc,QAAM,kBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CA5Ha,EAiIb;AACDhc,QAAM,iBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CAjIa,EAsIb;AACDhc,QAAM,eADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CAtIa,EA2Ib;AACDhc,QAAM,kBADL;AAEDib,SAAO,QAFN;AAGDF,cAAY,mCAHX;AAIDiB,oBAAkB;AAJjB,CA3Ia,EAgJb;AACDhc,QAAM,QADL;AAEDib,SAAO,QAFN;AAGDF,cAAY;AAHX,CAhJa,EAoJb;AACD/a,QAAM,QADL;AAEDib,SAAO,OAFN;AAGDF,cAAY,QAHX;AAIDG,qBAAmB;AAJlB,CApJa,EAyJb;AACDlb,QAAM,QADL;AAEDib,SAAO,OAFN;AAGDF,cAAY;AAHX,CAzJa,EA6Jb;AACD/a,QAAM,QADL;AAEDib,SAAO,OAFN;AAGDF,cAAY;AAHX,CA7Ja,EAiKb;AACD/a,QAAM,OADL;AAEDib,SAAO,OAFN;AAGDF,cAAY;AAHX,CAjKa,EAqKb;AACD/a,QAAM,YADL;AAEDib,SAAO,YAFN;AAGDF,cAAY;AAHX,CArKa,CAAhB;;kBA2KeiD,O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtKf;;;;AACA;;;;AACA;;;;AACA;;AAEA;;AAEA;;;;;;AAEA;;;;;;;;AAjBA;AACA;AACA;;AAEA;;;;IAqBqBC,S;;;;;AACnB;;;;;;wBAMW;AAAE,aAAO,WAAP;AAAoB;;;wBAChB;AAAE,aAAO,EAAEC,OAAO,WAAT,EAAsB,kBAAkB,EAAxC,EAAP;AAAqD;;;wBAC3D;AACX,aAAO;AACL,iBAAS,SADJ;AAEL,oBAAY,YAFP;AAGL,oBAAY,QAHP;AAIL,uBAAe,eAJV;AAKL,sBAAc,YALT;AAML,sBAAc;AANT,OAAP;AAQD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAKC,QAAL,CAAcC,KAArB;AACD;;AAED;;;;;;;;;;wBAOgB;AACd,aAAO,KAAKD,QAAL,CAAcE,SAArB;AACD;;AAED;;;;;;;;wBAKW;AACT,aAAO,KAAK9S,KAAZ;AACD;;AAED;;;;;;;;wBAK8B;AAC5B,aAAO,KAAK4S,QAAL,CAAcG,uBAArB;AACD;;AAED;;;;;;;;wBAK2B;AACzB,aAAO,KAAKH,QAAL,CAAcrR,oBAArB;AACD;;AAED;;;;;;;;wBAK4B;AAC1B,aAAO,KAAKqR,QAAL,CAAcI,qBAArB;AACD;;AAED;;;;;;sBAK0BxR,O,EAAS;AACjC,WAAKoR,QAAL,CAAcI,qBAAd,GAAsCxR,OAAtC;AACD;;AAED;;;;;;;;;AAMA,qBAAYxO,OAAZ,EAAqB0B,IAArB,EAA2BtB,WAA3B,EAAwC;AAAA;;AAAA,+DACtC,qBAAMJ,OAAN,CADsC;;AAEtC,UAAKgN,KAAL,GAAatL,IAAb;AACA,UAAKsZ,WAAL,GAAmB,CAAnB;AACA,UAAK/M,MAAL,GAAc,GAAd;AACA,UAAK2R,QAAL,GAAgB5f,QAAQ4f,QAAxB;AACA,UAAKxf,WAAL,GAAmBA,WAAnB;AACA,UAAK8M,QAAL,GAAgB,sBAAEtM,MAAF,CAAS,EAAT,EAAa,MAAKgf,QAAL,CAAc1S,QAA3B,CAAhB;AACA,UAAK+S,OAAL,GAAe,KAAf;AACA,UAAKC,oBAAL,GAA4B,KAA5B;AACA,UAAKC,OAAL,GAAe,CAAC,MAAKP,QAAN,CAAf;AACA,UAAKQ,aAAL,GAAqB,8BAAuB,GAAvB,CAArB;AACA,UAAKC,UAAL,GAAkB,IAAlB;AACA,UAAKC,UAAL,GAAkB,GAAlB,CAbsC,CAaf;AACvB,UAAKhgB,UAAL;AAdsC;AAevC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA4BAA,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOjY,iBAApC,EAAuD,KAAK4Y,UAA5D;AACA,SAAK7Z,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOhY,mBAApC,EAAyD,KAAK4Y,WAA9D;AACA,SAAK9Z,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO/X,cAApC,EAAoD,KAAK4Y,KAAzD;AACA,SAAK/Z,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO9X,kBAApC,EAAwD,KAAK4Y,WAA7D;AACA,SAAKha,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO7X,mBAApC,EAAyD,KAAK4Y,UAA9D;AACA,SAAKja,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO5X,uBAApC,EAA6D,KAAK4Y,cAAlE;AACA,SAAKla,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO3X,uBAApC,EAA6D,KAAK4Y,cAAlE;AACA,SAAKna,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO1X,6BAApC,EAAmE,KAAK4Y,oBAAxE;AACA,SAAKpa,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOzX,gBAApC,EAAsD,KAAK4Y,aAA3D;AACA,SAAKra,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOrX,sBAApC,EAA4D,KAAKyY,oBAAjE;AACA,SAAKta,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOpX,YAApC,EAAkD,KAAKyY,uBAAvD;AACA,SAAKva,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOnX,6BAApC,EAAmE,KAAKyY,mBAAxE;AACA,SAAKxa,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOlX,4BAApC,EAAkE,KAAKyY,kBAAvE;AACA,SAAKza,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO5W,eAApC,EAAqD,KAAKoY,QAA1D;AACA,SAAK1a,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOjX,cAApC,EAAoD,KAAK0Y,OAAzD;AACA,SAAK3a,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO/W,aAApC,EAAmD,KAAKyY,OAAxD;AACA,SAAK5a,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO9W,cAApC,EAAoD,KAAKyY,MAAzD;AACA,SAAK7a,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO3W,aAApC,EAAmD,KAAKuY,OAAxD;AACA,SAAK9a,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAO1W,cAApC,EAAoD,KAAK9H,KAAzD;AACA,SAAKsF,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOtW,2BAApC,EAAiE,KAAKmY,iBAAtE;AACA,SAAK/a,QAAL,CAAc,KAAKkZ,QAAnB,EAA6B,iBAAOrW,yBAApC,EAA+D,KAAKmY,eAApE;AACD,G;;sBAEDD,iB,gCAAoB;AAClB,SAAKtc,OAAL,CAAa,iBAAOsF,4BAApB;AACD,G;;sBAEDiX,e,4BAAgBC,K,EAAO;AACrB,SAAKxc,OAAL,CAAa,iBAAOuF,0BAApB,EAAgDiX,KAAhD;AACD,G;;sBAEDX,oB,iCAAqBY,K,EAAO;AAC1B,SAAKzc,OAAL,CAAa,iBAAO8E,uBAApB,EAA6C2X,KAA7C;AACD,G;;sBAEDX,uB,oCAAwBY,Q,EAAU;AAChC,SAAK3U,QAAL,GAAgB,KAAK0S,QAAL,CAAc1S,QAA9B;AACA,SAAK2U,QAAL,GAAgBA,QAAhB;AACA,SAAK1c,OAAL,CAAa,iBAAO+E,iCAApB,EAAuD2X,QAAvD;AACD,G;;sBAEDd,a,0BAAce,U,EAAY;AACxB,SAAK3c,OAAL,CAAa,iBAAOgF,iBAApB,EAAuC2X,UAAvC;AACD,G;;sBAEDC,W,wBAAYC,O,EAAS;AACnB,SAAK7c,OAAL,CAAa,iBAAOiF,sBAApB,EAA4C4X,OAA5C;AACD,G;;sBAEDlU,e,8BAAkB;AAChB,WAAO,KAAK8R,QAAL,CAAc9R,eAAd,EAAP;AACD,G;;AAED;;;;;;;sBAKAmU,Y,2BAAe;AACb,WAAO,CAAC,CAAC,KAAKrC,QAAL,CAAcsC,UAAvB;AACD,G;;AAED;;;;;;;sBAKAC,U,yBAAa;AACX,WAAO,CAAC,CAAC,KAAKN,QAAd;AACD,G;;AAED;;;;;;sBAIAnhB,O,sBAAU;AACR,SAAKyE,OAAL,CAAa,iBAAOkF,mBAApB,EAAyC,IAAzC,EAA+C,KAAK5I,IAApD;AACA,SAAKhB,aAAL;AACA,SAAK0f,OAAL,CAAavZ,OAAb,CAAqB,UAACwb,MAAD;AAAA,aAAYA,OAAO1hB,OAAP,EAAZ;AAAA,KAArB;AACA,SAAK8Q,GAAL,CAAS/L,MAAT;AACD,G;;sBAED4c,Q,qBAAS1S,K,EAAO;AACd,SAAK6B,GAAL,CAAS8Q,GAAT,CAAa3S,KAAb;AACD,G;;sBAED4S,O,oBAAQ5S,K,EAAO6S,Q,EAAU;AACvB,WAAO,KAAKhR,GAAL,CAAS+Q,OAAT,CAAiB5S,KAAjB,EAAwB6S,QAAxB,EAAkC3I,OAAlC,EAAP;AACD,G;;sBAED4G,K,oBAAQ;AACN,SAAKR,OAAL,GAAe,IAAf;AACA,SAAK9a,OAAL,CAAa,iBAAOmF,eAApB,EAAqC,KAAK7I,IAA1C;AACD,G;;sBAEDoM,S,wBAAY;AACV,WAAO,KAAK+R,QAAL,CAAc/R,SAAd,EAAP;AACD,G;;sBAEDF,kB,iCAAqB;AACnB,WAAO,KAAKiS,QAAL,CAAcjS,kBAAd,EAAP;AACD,G;;sBAED8U,c,6BAAiB;AACf,WAAO,KAAKzH,WAAZ;AACD,G;;sBAEDpN,W,0BAAc;AACZ,WAAO,KAAKgS,QAAL,CAAchS,WAAd,EAAP;AACD,G;;sBAEDxM,K,kBAAMA,M,EAAO;AACX,QAAI,CAAC,KAAK6e,OAAV,EACE,KAAKQ,KAAL;;AAEF,SAAKtb,OAAL,CAAa,iBAAOoF,eAApB,EAAqCnJ,MAArC,EAA4C,KAAKK,IAAjD;AACD,G;;sBAEDof,c,2BAAe6B,Q,EAAU;AACvB,SAAKvd,OAAL,CAAa,iBAAOqF,wBAApB,EAA8CkY,QAA9C;AACD,G;;sBAEDlC,W,wBAAYmC,Y,EAAc;AACxB,SAAK3H,WAAL,GAAmB2H,aAAaC,OAAhC;AACA,SAAKzd,OAAL,CAAa,iBAAOwF,oBAApB,EAA0CgY,YAA1C,EAAwD,KAAKlhB,IAA7D;AACD,G;;sBAED8e,U,yBAAoB;AAAA,sCAAN3c,IAAM;AAANA,UAAM;AAAA;;AAClB,SAAKuB,OAAL,cAAa,iBAAOyF,kBAApB,SAA2ChH,IAA3C,GAAiD,KAAKnC,IAAtD;AACD,G;;sBAED6f,O,sBAAU;AACR,SAAKnc,OAAL,CAAa,iBAAO0F,cAApB,EAAoC,KAAKpJ,IAAzC;AACD,G;;sBAED8f,M,qBAAS;AACP,SAAKpc,OAAL,CAAa,iBAAO4F,eAApB,EAAqC,KAAKtJ,IAA1C;AACD,G;;AAED;;;;;;sBAIA2L,I,mBAAO;AACL,SAAKwS,QAAL,CAAcxS,IAAd;AACD,G;;AAED;;;;;;sBAIAE,I,mBAAO;AACL,SAAKsS,QAAL,CAActS,IAAd;AACA,SAAK0N,WAAL,GAAmB,CAAnB;AACD,G;;AAED;;;;;;sBAIA3N,K,oBAAQ;AACN,SAAKuS,QAAL,CAAcvS,KAAd;AACD,G;;sBAEDgU,O,sBAAU;AACR,SAAKlc,OAAL,CAAa,iBAAO6F,eAApB,EAAqC,IAArC,EAA2C,KAAKvJ,IAAhD;AACA,SAAKuZ,WAAL,GAAmB,CAAnB;AACD,G;;sBAEDwG,O,sBAAU;AACR,SAAKrc,OAAL,CAAa,iBAAO2F,cAApB;AACD,G;;sBAED+X,O,sBAAU;AAAA;;AACR,QAAI,CAAC,KAAK7iB,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EAAmE;AACjE;AACA;AACA,WAAK1C,UAAL,GAAkB5H,WAAW,YAAM;AACjC,eAAK4H,UAAL,IAAmB,OAAKlb,OAAL,CAAa,iBAAO8F,eAApB,UAA2C,OAAKxJ,IAAhD,CAAnB;AACD,OAFiB,EAEf,KAAK6e,UAFU,CAAlB;AAGD;AACF,G;;sBAED0C,a,4BAAgB;AACdnK,iBAAa,KAAKwH,UAAlB;AACA,SAAKA,UAAL,GAAkB,IAAlB;AACD,G;;sBAED4C,U,yBAAa;AACX,QAAI,CAAC,KAAKjjB,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EAAmE;AACjE,WAAKC,aAAL;AACA,WAAK7d,OAAL,CAAa,iBAAO+F,kBAApB,EAAwC,IAAxC,EAA8C,KAAKzJ,IAAnD;AACD;AACF,G;;sBAEDyhB,M,mBAAOC,G,EAAK;AAAA;;AACV,QAAI,CAAC,KAAKnjB,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EAAmE;AACjE,WAAK3C,aAAL,CAAmBvF,MAAnB,CAA0BsI,GAA1B,EAA+B,YAAM;AACnC,eAAKH,aAAL;AACA,eAAK7d,OAAL,CAAa,iBAAO+F,kBAApB,UAA8C,OAAKzJ,IAAnD;AACD,OAHD;AAID;AACF,G;;sBAED2hB,a,0BAActI,K,EAAO;AACnB,QAAI,CAAC,KAAK9a,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EACE,KAAK5d,OAAL,CAAa,iBAAOgG,qBAApB,EAA2C2P,KAA3C,EAAkD,KAAKrZ,IAAvD;AAEH,G;;sBAED8L,I,iBAAKC,I,EAAM;AACT,SAAKrI,OAAL,CAAa,iBAAOmG,cAApB,EAAoCkC,IAApC,EAA0C,KAAK/L,IAA/C;AACA,SAAKme,QAAL,CAAcrS,IAAd,CAAmBC,IAAnB;AACD,G;;sBAED4T,Q,uBAAW;AACT,SAAKjc,OAAL,CAAa,iBAAOoG,gBAApB,EAAsC,KAAK9J,IAA3C;AACD,G;;sBAEDgM,c,2BAAeC,U,EAAY;AACzB,QAAM8U,WAAW,KAAK5U,WAAL,EAAjB;AACA,QAAIF,cAAc,CAAd,IAAmBA,cAAc,GAArC,EAA0C;AACxC,UAAMF,OAAOgV,YAAY9U,aAAa,GAAzB,CAAb;AACA,WAAKH,IAAL,CAAUC,IAAV;AACD;AACF,G;;sBAED6V,S,sBAAUjd,K,EAAO;AACf,SAAK6H,MAAL,GAAciG,SAAS9N,KAAT,EAAgB,EAAhB,CAAd;AACA,SAAKjB,OAAL,CAAa,iBAAOqG,gBAApB,EAAsCpF,KAAtC,EAA6C,KAAK3E,IAAlD;AACA,SAAKme,QAAL,CAAc3R,MAAd,CAAqB7H,KAArB;AACD,G;;sBAEDkd,U,yBAAa;AACX,SAAKne,OAAL,CAAa,iBAAOsG,oBAApB,EAA0C,KAAKhK,IAA/C;AACD,G;;sBAEDif,W,0BAAc;AACZ,SAAKvb,OAAL,CAAa,iBAAOuG,yBAApB,EAA+C,KAAKjK,IAApD;AACD,G;;sBAEDkf,U,yBAAa;AACX,SAAKxb,OAAL,CAAa,iBAAOwG,0BAApB,EAAgD,KAAKlK,IAArD;AACD,G;;AAED;;;;;;;sBAKA8hB,S,sBAAUnB,M,EAAQ;AAChB,SAAKjC,OAAL,CAAaxb,IAAb,CAAkByd,MAAlB;AACD,G;;AAED;;;;;;;;sBAMAoB,S,sBAAU/hB,I,EAAM;AACd,WAAO,CAAC,CAAC,KAAKgiB,SAAL,CAAehiB,IAAf,CAAT;AACD,G;;AAED;;;;;;;sBAKAgiB,S,sBAAUhiB,I,EAAM;AACd,WAAO,KAAK0e,OAAL,CAAa3Z,MAAb,CAAoB;AAAA,aAAU4b,OAAO3gB,IAAP,KAAgBA,IAA1B;AAAA,KAApB,EAAoD,CAApD,CAAP;AACD,G;;sBAEDiiB,U,yBAAa;AACX,QAAI,CAAC,KAAK1jB,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EACE,KAAK5d,OAAL,CAAa,iBAAOiG,qBAApB;AAEH,G;;sBAEDuY,U,yBAAa;AACX,QAAI,CAAC,KAAK3jB,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EACE,KAAK5d,OAAL,CAAa,iBAAOkG,qBAApB;AAEH,G;;sBAEDuV,c,6BAAiB;AACf,SAAK1T,QAAL,GAAgB,KAAK0S,QAAL,CAAc1S,QAA9B;AACA,SAAK/H,OAAL,CAAa,iBAAOyG,wBAApB;AACD,G;;sBAEDkV,oB,iCAAqB8C,I,EAAM;AACzB,SAAKze,OAAL,CAAa,iBAAO0G,8BAApB,EAAoD+X,IAApD;AACD,G;;sBAED5V,qB,oCAAwB;AACtB,WAAO,KAAK4R,QAAL,CAAc5R,qBAAd,EAAP;AACD,G;;sBAEDkT,mB,kCAAsB;AACpB,QAAI,CAAC,KAAKhB,oBAAV,EAAgC;AAC9B,WAAKA,oBAAL,GAA4B,IAA5B;AACA,WAAK/a,OAAL,CAAa,iBAAO6G,8BAApB;AACD;AACF,G;;sBAEDmV,kB,iCAAqB;AACnB,QAAI,KAAKjB,oBAAT,EAA+B;AAC7B,WAAKA,oBAAL,GAA4B,KAA5B;AACA,WAAK/a,OAAL,CAAa,iBAAO8G,6BAApB;AACD;AACF,G;;sBAED4X,W,0BAAc;AACZ,QAAI,CAAC,KAAK7jB,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EACE,KAAKvR,GAAL,CAASsS,WAAT,CAAqB,YAArB,EADF,KAGE,KAAKtS,GAAL,CAASuS,QAAT,CAAkB,YAAlB;AAEH,G;;AAED;;;;;;;sBAKA7V,S,sBAAUlO,O,EAAS;AACjB,SAAKD,QAAL,GAAgB,sBAAEa,MAAF,CAAS,KAAKb,QAAd,EAAwBC,OAAxB,CAAhB;AACA,SAAK6jB,WAAL;AACA,SAAKjE,QAAL,CAAc1R,SAAd,CAAwB,KAAKlO,OAA7B;AACA,SAAKmF,OAAL,CAAa,iBAAOgH,wBAApB;AACD,G;;sBAED6E,M,qBAAS;AACP,SAAKQ,GAAL,CAASwS,MAAT,CAAgB,KAAKpE,QAAL,CAAc5O,MAAd,GAAuByB,EAAvC;AACA,SAAKoR,WAAL;AACA,WAAO,IAAP;AACD,G;;;;;kBAzdkBnE,S;;;AA4drB,sBAAcA,UAAU/e,SAAxB;;;;;;;;;;;;;;;;;;;ACrfA;;;;;;;;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,icAAuO;;AAE7P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXf;;;;AACA;;;;AACA;;;;AACA;;;;;;AAXA;AACA;AACA;;AAEA;;;;IASqBsjB,gB;;;;wBACL;AAAE,aAAO,KAAKlkB,QAAZ;AAAsB,K;sBAC1BC,O,EAAS;AAAE,WAAKD,QAAL,GAAgBC,OAAhB;AAAyB;;;AAEhD,4BAAYA,OAAZ,EAAqBkkB,MAArB,EAA6BxiB,IAA7B,EAAmCtB,WAAnC,EAAgD;AAAA;;AAAA,+DAC9C,uBAAMJ,OAAN,CAD8C;;AAE9C,UAAKgN,KAAL,GAAatL,IAAb;AACA,UAAKwiB,MAAL,GAAcA,MAAd;AACA,UAAK9jB,WAAL,GAAmBA,WAAnB;AAJ8C;AAK/C;;6BAED+jB,gB,+BAAmB;AAAA;;AACjB,WAAO,sBAAEC,QAAF,CAAW,UAACvK,OAAD,EAAa;AAC7BA,cAAQwK,OAAR,CAAgB,OAAKrkB,OAAL,CAAaskB,OAAb,CAAqBne,GAArB,CAAyB,UAACuI,MAAD,EAAY;AACnD,eAAO,OAAK6V,eAAL,CAAqB7V,MAArB,CAAP;AACD,OAFe,CAAhB;AAGD,KAJM,CAAP;AAKD,G;;6BAED8V,kB,+BAAmB9V,M,EAAQC,Q,EAAU;AACnC,WAAO,KAAKuV,MAAL,CAAYO,eAAZ,CAA4Bje,MAA5B,CAAmC;AAAA,aAAKke,EAAEjW,OAAF,CAAUC,MAAV,EAAkBC,QAAlB,CAAL;AAAA,KAAnC,EAAqE,CAArE,CAAP;AACD,G;;6BAED4V,e,4BAAgB7V,M,EAAQ;AACtB,QAAIiW,iBAAiB,IAArB;AAAA,QACEhW,WAAW,KAAK3O,OAAL,CAAa2O,QAD1B;AAEA,QAAI,QAAOD,MAAP,uDAAOA,MAAP,OAAkB,QAAtB,EAAgC;AAC9BiW,uBAAiBjW,OAAOA,MAAP,CAAcoB,QAAd,EAAjB;AACA,UAAIpB,OAAOC,QAAX,EACEA,WAAWD,OAAOC,QAAlB;AAEH,KALD,MAKO;AAAEgW,uBAAiBjW,OAAOoB,QAAP,EAAjB;AAAoC;;AAG7C,QAAI6U,eAAehU,KAAf,CAAqB,OAArB,CAAJ,EAAmCgU,iBAAiBxN,OAAOC,QAAP,CAAgBwN,QAAhB,GAA2BD,cAA5C;;AAEnC,QAAI3kB,UAAU,sBAAEY,MAAF,CAAS,EAAT,EAAa,KAAKZ,OAAlB,EAA2B;AACvCoY,WAAKuM,cADkC;AAEvChW,gBAAUA;AAF6B,KAA3B,CAAd;AAIA,QAAMkW,iBAAiB,KAAKL,kBAAL,CAAwBG,cAAxB,EAAwChW,QAAxC,CAAvB;AACA,QAAMiR,WAAW,IAAIiF,cAAJ,CAAmB7kB,OAAnB,EAA4B,KAAKgN,KAAjC,EAAwC,KAAK5M,WAA7C,CAAjB;;AAEAJ,cAAU,sBAAEY,MAAF,CAAS,EAAT,EAAaZ,OAAb,EAAsB,EAAE4f,UAAUA,QAAZ,EAAtB,CAAV;;AAEA,QAAMzf,YAAY,wBAAcH,OAAd,EAAuB,KAAKgN,KAA5B,EAAmC,KAAK5M,WAAxC,CAAlB;AACA,QAAM0kB,QAAQ,sBAAEV,QAAF,EAAd;AACAU,UAAMjL,OAAN,CAAc1Z,SAAd;AACA,SAAK4kB,mBAAL,CAAyB5kB,SAAzB;AACA,SAAKwG,YAAL,CAAkBxG,SAAlB,EAA6B,iBAAOmK,eAApC,EAAqD;AAAA,aAAMwa,MAAMT,OAAN,CAAclkB,SAAd,CAAN;AAAA,KAArD;AACA,WAAOA,SAAP;AACD,G;;6BAED4kB,mB,gCAAoB5kB,S,EAAW;AAC7B,SAAK+jB,MAAL,CAAYc,gBAAZ,CAA6Bpe,OAA7B,CAAqC,UAACqe,MAAD,EAAY;AAC/C9kB,gBAAUojB,SAAV,CAAoB,IAAI0B,MAAJ,CAAW9kB,SAAX,CAApB;AACD,KAFD;AAGD,G;;;;;kBAzDkB8jB,gB;;;;;;;;;;;;;;;;;;;ACbrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;AAEA;;AACA;;;;;;AApBA;AACA;AACA;;AAoBA,IAAItU,cAAJ;;AAEA;;;;;;;;;IAQqBuV,I;;;;wBACN;AACX,aAAO;AACL,kCAA0B,wBADrB;AAEL,qBAAa,aAFR;AAGL,sBAAc;AAHT,OAAP;AAKD;;;wBAEgB;AACf,aAAO;AACL,uBAAe,EADV;AAELC,kBAAU;AAFL,OAAP;AAID;;AAED;;;;;;;;wBAKc;AACZ,aAAO,CAAC,CAAC,KAAK1E,KAAd;AACD;;AAED;;;;;;;;wBAKW;AACT,aAAO,KAAKgD,SAAL,CAAe,SAAf,KAA6B,EAAElhB,GAAG,WAACU,GAAD;AAAA,iBAASA,GAAT;AAAA,SAAL,EAApC;AACD;;AAED;;;;;;;;wBAKmB;AACjB,aAAO,KAAKwgB,SAAL,CAAe,eAAf,KAAmC,KAAK2B,iBAA/C;AACD;;;wBAEuB;AACtB,UAAI,KAAKC,kBAAT,EAA6B,OAAO,KAAKA,kBAAZ;AAC7B,WAAKA,kBAAL,GAA0B,6BAAiB,IAAjB,CAA1B;AACA,aAAO,KAAKA,kBAAZ;AACD;;AAED;;;;;;;;wBAKsB;AACpB,aAAO,KAAKC,gBAAZ;AACD;;AAED;;;;;;sBAKoBnlB,S,EAAW;AAC7B,WAAKmlB,gBAAL,GAAwBnlB,SAAxB;AACA,WAAKgF,OAAL,CAAa,iBAAOsE,6BAApB,EAAmD,KAAK6b,gBAAxD;AACD;;AAED;;;;;;;;wBAKqB;AACnB,aAAO,KAAKC,eAAL,IAAwB,KAAKA,eAAL,CAAqB3F,QAApD;AACD;;;AAED,gBAAY5f,OAAZ,EAAqB;AAAA;;AAAA,+DACnB,qBAAMA,OAAN,CADmB;;AAEnB,UAAKI,WAAL,GAAmB,oBAAgBJ,OAAhB,QAAnB;AACA,UAAKwlB,oBAAL;AACA,UAAKC,UAAL,GAAkB,sBAAWC,WAAX,CAAuB1lB,QAAQ2lB,QAA/B,CAAlB;AACA,UAAKC,WAAL,GAAmB,IAAnB;AACA,UAAKzF,OAAL,GAAe,EAAf;AACA,UAAK0F,UAAL,GAAkB,EAAlB;AACA;AACA,UAAKC,uBAAL,GAA+B;AAAA,aAAM,MAAKC,sBAAL,EAAN;AAAA,KAA/B;AACA,+BAAErR,QAAF,EAAYhC,IAAZ,CAAiB,kBAAjB,EAAqC,MAAKoT,uBAA1C;AACA,+BAAEpR,QAAF,EAAYhC,IAAZ,CAAiB,oBAAjB,EAAuC,MAAKoT,uBAA5C;AACA,+BAAEpR,QAAF,EAAYhC,IAAZ,CAAiB,qBAAjB,EAAwC,MAAKoT,uBAA7C;AACA,sBAAQ7G,QAAR,IAAoB,2BAAE9H,MAAF,EAAUzE,IAAV,CAAe,QAAf,EAAyB,UAACtD,CAAD,EAAO;AAAE,YAAK4W,kBAAL,CAAwB5W,CAAxB;AAA4B,KAA9D,CAApB;AAbmB;AAcpB;;iBAEDoW,oB,mCAAuB;AACrB,QAAIlL,eAAe,KAAKta,OAAL,IAAgB,KAAKA,OAAL,CAAa4f,QAA7B,IAAyC,KAAK5f,OAAL,CAAa4f,QAAb,CAAsBtF,YAAlF;AACA,uBAAYpM,SAAZ,CAAsB,EAAEoM,0BAAF,EAAtB;AACD,G;;iBAED6J,gB,6BAAiBnkB,O,EAAS;AACxB,SAAK8kB,KAAL,GAAa,sBAAEV,QAAF,EAAb;AACA,SAAKU,KAAL,CAAWjL,OAAX,CAAmB,IAAnB;AACA,SAAKoM,gBAAL,GAAwB,gCAAqBjmB,OAArB,EAA8BA,QAAQkkB,MAAtC,EAA8C,KAAKxiB,IAAnD,EAAyD,KAAKtB,WAA9D,CAAxB;AACA,SAAK8lB,iBAAL;AACD,G;;iBAEDA,iB,gCAAoB;AAAA;;AAClB,SAAKD,gBAAL,CAAsB9B,gBAAtB,GACGlK,IADH,CACQ,UAAC4L,UAAD;AAAA,aAAgB,OAAKM,eAAL,CAAqBN,UAArB,CAAhB;AAAA,KADR,EAEG5L,IAFH,CAEQ,UAAC4L,UAAD;AAAA,aAAgB,OAAKO,wBAAL,CAA8BP,UAA9B,CAAhB;AAAA,KAFR;AAGD,G;;iBAEDQ,U,yBAAa;AACX,SAAKC,YAAL,KAAsB,KAAKC,aAAL,EAAtB,GAA6C,KAAKC,aAAL,EAA7C;AACD,G;;iBAEDD,a,4BAAgB;AACd,QAAI,CAAC,kBAAQrH,KAAb,EAAoB;AAClB,WAAK1N,GAAL,CAASuS,QAAT,CAAkB,YAAlB;AACA,WAAKvS,GAAL,CAASiV,UAAT,CAAoB,OAApB;AACA,WAAKhB,UAAL,CAAgBiB,YAAhB,GAA+B,EAAE3I,OAAO,KAAK/d,OAAL,CAAa+d,KAAtB,EAA6BC,QAAQ,KAAKhe,OAAL,CAAage,MAAlD,EAA/B;AACA,WAAKyH,UAAL,CAAgBkB,WAAhB,GAA8B,EAAE5I,OAAO,2BAAE5G,MAAF,EAAU4G,KAAV,EAAT,EAA4BC,QAAQ,2BAAE7G,MAAF,EAAU6G,MAAV,EAApC,EAA9B;AACD;AACF,G;;iBAEDwI,a,4BAAgB;AACd,SAAKhV,GAAL,CAASsS,WAAT,CAAqB,YAArB;AACA,SAAK2B,UAAL,CAAgBkB,WAAhB,GAA8B,KAAKlB,UAAL,CAAgBiB,YAA9C;AACA,SAAKjB,UAAL,CAAgBiB,YAAhB,GAA+B,EAAE3I,OAAO,2BAAE5G,MAAF,EAAU4G,KAAV,EAAT,EAA4BC,QAAQ,2BAAE7G,MAAF,EAAU6G,MAAV,EAApC,EAA/B;AACA,SAAK4I,MAAL,CAAY,KAAKnB,UAAL,CAAgBkB,WAA5B;AACD,G;;iBAEDC,M,mBAAO5mB,O,EAAS;AACd,QAAI,CAAC,qBAASA,QAAQge,MAAjB,CAAD,IAA6B,CAAC,qBAAShe,QAAQ+d,KAAjB,CAAlC,EAA4D;AAC1D,WAAKtL,EAAL,CAAQ9C,KAAR,CAAcqO,MAAd,QAA0Bhe,QAAQge,MAAlC;AACA,WAAKvL,EAAL,CAAQ9C,KAAR,CAAcoO,KAAd,QAAyB/d,QAAQ+d,KAAjC;AACD,KAHD,MAGO;AACL,WAAKtL,EAAL,CAAQ9C,KAAR,CAAcqO,MAAd,GAA0Bhe,QAAQge,MAAlC;AACA,WAAKvL,EAAL,CAAQ9C,KAAR,CAAcoO,KAAd,GAAyB/d,QAAQ+d,KAAjC;AACD;AACD,SAAK0H,UAAL,CAAgBiB,YAAhB,GAA+B,EAAE3I,OAAO,KAAK/d,OAAL,CAAa+d,KAAtB,EAA6BC,QAAQ,KAAKhe,OAAL,CAAage,MAAlD,EAA/B;AACA,SAAKhe,OAAL,CAAa+d,KAAb,GAAqB/d,QAAQ+d,KAA7B;AACA,SAAK/d,OAAL,CAAage,MAAb,GAAsBhe,QAAQge,MAA9B;AACA,SAAKyH,UAAL,CAAgBkB,WAAhB,GAA8B3mB,OAA9B;AACA,SAAK6mB,aAAL,CAAmB,KAAKpB,UAAL,CAAgBkB,WAAnC;AACD,G;;iBAEDG,oB,mCAAuB;AAAA;;AACrB,QAAMC,oBAAoB,SAApBA,iBAAoB,GAAM;AAC9B,aAAKF,aAAL,CAAmB,EAAE9I,OAAO,OAAKtL,EAAL,CAAQuU,WAAjB,EAA8BhJ,QAAQ,OAAKvL,EAAL,CAAQwU,YAA9C,EAAnB;AACD,KAFD;AAGA,SAAKC,sBAAL,GAA8BC,YAAYJ,iBAAZ,EAA+B,GAA/B,CAA9B;AACD,G;;iBAEDF,a,0BAAcO,O,EAAS;AACrB,QAAMC,iBAAiB,KAAKzB,WAAL,IAAoB,KAAK0B,SAAL,KAAmBF,QAAQpJ,MAA/C,IAAyD,KAAKuJ,QAAL,KAAkBH,QAAQrJ,KAA1G;AACA,QAAIsJ,cAAJ,EAAoB;AAClB,WAAKC,SAAL,GAAiBF,QAAQpJ,MAAzB;AACA,WAAKuJ,QAAL,GAAgBH,QAAQrJ,KAAxB;AACA,WAAK0H,UAAL,CAAgB+B,YAAhB,GAA+BJ,OAA/B;AACA,WAAKxB,WAAL,GAAmB,KAAnB;AACA,yBAASzgB,OAAT,CAAoB,KAAKnF,OAAL,CAAa2lB,QAAjC,SAA6C,iBAAO5e,aAApD,EAAqEqgB,OAArE;AACA,WAAKjiB,OAAL,CAAa,iBAAO0E,WAApB,EAAiCud,OAAjC;AACD;AACF,G;;iBAEDK,qB,oCAAwB;AACtB,SAAKP,sBAAL,IAA+BQ,cAAc,KAAKR,sBAAnB,CAA/B;AACD,G;;iBAEDd,wB,qCAAyBP,U,EAAY;AAAA;;AACnC,0BAAE8B,IAAF,CAAOzkB,KAAP,wBAAgB2iB,UAAhB,EAA4B+B,IAA5B,CAAiC,YAAM;AACrC,aAAK9C,KAAL,CAAWT,OAAX;AACA,aAAK5D,KAAL,GAAa,IAAb;AACA,aAAKtb,OAAL,CAAa,iBAAOwE,UAApB;AACD,KAJD;AAKD,G;;iBAED4Z,S,sBAAUnB,M,EAAQ;AAChB,SAAKjC,OAAL,CAAaxb,IAAb,CAAkByd,MAAlB;AACD,G;;iBAEDoB,S,sBAAU/hB,I,EAAM;AACd,WAAO,CAAC,CAAC,KAAKgiB,SAAL,CAAehiB,IAAf,CAAT;AACD,G;;iBAEDgiB,S,sBAAUhiB,I,EAAM;AACd,WAAO,KAAK0e,OAAL,CAAa3Z,MAAb,CAAoB;AAAA,aAAU4b,OAAO3gB,IAAP,KAAgBA,IAA1B;AAAA,KAApB,EAAoD,CAApD,CAAP;AACD,G;;iBAEDomB,I,iBAAKvD,O,EAAS3V,Q,EAAU;AACtB,SAAK3O,OAAL,CAAa2O,QAAb,GAAwBA,QAAxB;AACA2V,cAAUA,WAAWA,QAAQ/iB,WAAR,KAAwBoB,KAAnC,GAA2C2hB,OAA3C,GAAqD,CAACA,OAAD,CAA/D;AACA,SAAKtkB,OAAL,CAAaskB,OAAb,GAAuBA,OAAvB;AACA,SAAKuB,UAAL,CAAgBjf,OAAhB,CAAwB,UAACzG,SAAD;AAAA,aAAeA,UAAUO,OAAV,EAAf;AAAA,KAAxB;AACA,SAAKulB,gBAAL,CAAsBjmB,OAAtB,GAAgC,sBAAEY,MAAF,CAAS,KAAKZ,OAAd,EAAuB,EAAEskB,gBAAF,EAAvB,CAAhC;AACA,SAAK4B,iBAAL;AACD,G;;iBAEDxlB,O,sBAAU;AACR,SAAK+mB,qBAAL;AACA,SAAK5B,UAAL,CAAgBjf,OAAhB,CAAwB,UAACzG,SAAD;AAAA,aAAeA,UAAUO,OAAV,EAAf;AAAA,KAAxB;AACA,SAAKyf,OAAL,CAAavZ,OAAb,CAAqB,UAACwb,MAAD;AAAA,aAAYA,OAAO1hB,OAAP,EAAZ;AAAA,KAArB;AACA,SAAK8Q,GAAL,CAAS/L,MAAT;AACA,+BAAEiP,QAAF,EAAYoT,MAAZ,CAAmB,kBAAnB,EAAuC,KAAKhC,uBAA5C;AACA,+BAAEpR,QAAF,EAAYoT,MAAZ,CAAmB,oBAAnB,EAAyC,KAAKhC,uBAA9C;AACA,+BAAEpR,QAAF,EAAYoT,MAAZ,CAAmB,qBAAnB,EAA0C,KAAKhC,uBAA/C;AACA,SAAKrlB,aAAL;AACD,G;;iBAEDslB,sB,qCAAyB;AACvB,SAAK5gB,OAAL,CAAa,iBAAOyE,eAApB,EAAqC,KAAK0c,YAAL,EAArC;AACA,SAAKD,UAAL;AACD,G;;iBAEDL,kB,+BAAmBlL,K,EAAO;AACxB,QAAMoD,cAAe/G,OAAO4Q,UAAP,GAAoB5Q,OAAO6Q,WAA5B,GAA2C,WAA3C,GAAyD,UAA7E;AACA,QAAI,KAAKC,kBAAL,KAA4B/J,WAAhC,EAA6C;AAC7C,SAAK+J,kBAAL,GAA0B/J,WAA1B;AACA,SAAK2I,aAAL,CAAmB,EAAE9I,OAAO,KAAKtL,EAAL,CAAQuU,WAAjB,EAA8BhJ,QAAQ,KAAKvL,EAAL,CAAQwU,YAA9C,EAAnB;AACA,SAAK9hB,OAAL,CAAa,iBAAO2E,+BAApB,EAAqD;AACnDgR,aAAOA,KAD4C;AAEnDoD,mBAAa,KAAK+J;AAFiC,KAArD;AAID,G;;iBAEDC,e,4BAAgB/nB,S,EAAW;AACzB,SAAKM,aAAL,CAAmBN,SAAnB;AACA,SAAK0lB,UAAL,GAAkB,KAAKA,UAAL,CAAgBrf,MAAhB,CAAuB,UAAC2hB,CAAD;AAAA,aAAOA,MAAMhoB,SAAb;AAAA,KAAvB,CAAlB;AACD,G;;iBAEDioB,c,2BAAejoB,S,EAAW;AACxB,SAAKuG,QAAL,CAAcvG,SAAd,EAAyB,iBAAOkK,mBAAhC,EAAqD,KAAK6d,eAA1D;AACA,SAAKrC,UAAL,CAAgBlhB,IAAhB,CAAqBxE,SAArB;AACD,G;;iBAEDgmB,e,4BAAgBN,U,EAAY;AAC1BA,eAAWjf,OAAX,CAAmB,KAAKwhB,cAAL,CAAoB1V,IAApB,CAAyB,IAAzB,CAAnB;AACA,SAAKvN,OAAL,CAAa,iBAAOqE,uBAApB;AACA,SAAK6e,gBAAL;AACA,SAAK9C,eAAL,GAAuBM,WAAW,CAAX,CAAvB;AACA,SAAK7U,MAAL;AACA,SAAKsX,cAAL;AACA,WAAO,KAAKzC,UAAZ;AACD,G;;iBAEDwC,gB,+BAAmB;AAAA;;AACjB,SAAKxC,UAAL,CAAgBjf,OAAhB,CAAwB,UAACzG,SAAD;AAAA,aAAe,OAAKsS,EAAL,CAAQ8V,WAAR,CAAoBpoB,UAAU6Q,MAAV,GAAmByB,EAAvC,CAAf;AAAA,KAAxB;AACD,G;;iBAED8R,e,4BAAgB7V,M,EAAQ1O,O,EAAS;AAC/B,QAAMG,YAAY,KAAK8lB,gBAAL,CAAsB1B,eAAtB,CAAsC7V,MAAtC,EAA8C1O,OAA9C,CAAlB;AACA,SAAKooB,cAAL,CAAoBjoB,SAApB;AACA,SAAKsS,EAAL,CAAQ8V,WAAR,CAAoBpoB,UAAU6Q,MAAV,GAAmByB,EAAvC;AACA,WAAOtS,SAAP;AACD,G;;AAED;;;;;;;iBAKAqoB,mB,kCAAsB;AACpB,WAAO,KAAKjD,eAAZ;AACD,G;;AAED;;;;;;;iBAKAkD,kB,iCAAqB;AACnB,WAAO,KAAKC,cAAZ;AACD,G;;iBAED5a,e,8BAAkB;AAChB,WAAO,KAAKyX,eAAL,IAAwB,KAAKA,eAAL,CAAqBzX,eAArB,EAA/B;AACD,G;;iBAEDwY,Y,2BAAe;AACb,WAAO,kBAAW7R,oBAAX,QAAuC,kBAAQyK,KAAR,GAAgB,KAAKqG,eAAL,CAAqB9S,EAArC,GAA0C,KAAKA,EAAtF,CAAP;AACD,G;;iBAEDkW,gB,+BAAmB;AACjB,QAAI,KAAKrC,YAAL,EAAJ,EAAyB;AACvB,wBAAWjR,gBAAX;AACA,OAAC,kBAAQ6J,KAAT,IAAkB,KAAK1N,GAAL,CAASsS,WAAT,CAAqB,qBAArB,CAAlB;AACD,KAHD,MAGO;AACL,wBAAW/O,iBAAX,CAA6B,kBAAQmK,KAAR,GAAgB,KAAKqG,eAAL,CAAqB9S,EAArC,GAA0C,KAAKA,EAA5E;AACA,OAAC,kBAAQyM,KAAT,IAAkB,KAAK1N,GAAL,CAASuS,QAAT,CAAkB,YAAlB,CAAlB;AACD;AACF,G;;iBAED6E,W,wBAAY9N,K,EAAO;AACjB,SAAK3V,OAAL,CAAa,iBAAO4E,eAApB,EAAqC+Q,KAArC;AACD,G;;iBAED+N,Y,yBAAa/N,K,EAAO;AAClB,SAAK3V,OAAL,CAAa,iBAAO6E,gBAApB,EAAsC8Q,KAAtC;AACD,G;;AAED;;;;;;;iBAKA5M,S,sBAAUlO,O,EAAS;AAAA;;AACjB,SAAKD,QAAL,GAAgB,sBAAEa,MAAF,CAAS,KAAKb,QAAd,EAAwBC,OAAxB,CAAhB;AACA,SAAKwlB,oBAAL;;AAEA,QAAMlB,UAAUtkB,QAAQ0O,MAAR,IAAkB1O,QAAQskB,OAA1C;AACAA,eAAW,KAAKuD,IAAL,CAAUvD,OAAV,EAAmBtkB,QAAQ2O,QAAR,IAAoB,KAAK3O,OAAL,CAAa2O,QAApD,CAAX;;AAEA,SAAKxJ,OAAL,CAAa,iBAAOuE,mBAApB,EAAyC1J,OAAzC,EAPiB,CAOiC;AAClD,SAAK6lB,UAAL,CAAgBjf,OAAhB,CAAwB,UAACzG,SAAD;AAAA,aAAeA,UAAU+N,SAAV,CAAoB,OAAKlO,OAAzB,CAAf;AAAA,KAAxB;AACD,G;;iBAEDsoB,c,6BAAiB;AACf,QAAIQ,gBAAgB,KAAKtX,GAAL,CAASqC,MAAT,MAAqB,KAAKrC,GAAL,CAASqC,MAAT,GAAkBpQ,MAA3D;AACA,KAACqlB,aAAD,IAAkB,KAAKtX,GAAL,CAASuX,QAAT,CAAkB,KAAK/oB,OAAL,CAAagpB,aAA/B,CAAlB;AACD,G;;iBAEDhY,M,qBAAS;AACP,QAAI,CAACrB,KAAL,EACEA,QAAQ,iBAAOD,WAAP,kBAA8B,EAAEE,SAAS,KAAK5P,OAAL,CAAa4P,OAAxB,EAA9B,CAAR;;AAEF,+BAAE,MAAF,EAAUoU,MAAV,CAAiBrU,KAAjB;;AAEA,SAAK3P,OAAL,CAAa+d,KAAb,GAAqB,KAAK/d,OAAL,CAAa+d,KAAb,IAAsB,KAAKvM,GAAL,CAASuM,KAAT,EAA3C;AACA,SAAK/d,OAAL,CAAage,MAAb,GAAsB,KAAKhe,OAAL,CAAage,MAAb,IAAuB,KAAKxM,GAAL,CAASwM,MAAT,EAA7C;AACA,QAAMiL,OAAO,EAAElL,OAAO,KAAK/d,OAAL,CAAa+d,KAAtB,EAA6BC,QAAQ,KAAKhe,OAAL,CAAage,MAAlD,EAAb;AACA,SAAKyH,UAAL,CAAgBiB,YAAhB,GAA+B,KAAKjB,UAAL,CAAgBkB,WAAhB,GAA8B,KAAKlB,UAAL,CAAgB+B,YAAhB,GAA+ByB,IAA5F;AACA,SAAK5C,UAAL;;AAEA,SAAKK,YAAL,GAAoB,EAAE3I,OAAO,KAAKvM,GAAL,CAASuM,KAAT,EAAT,EAA2BC,QAAQ,KAAKxM,GAAL,CAASwM,MAAT,EAAnC,EAApB;;AAEA,SAAK8I,oBAAL;;AAEA,WAAO,IAAP;AACD,G;;;;;kBAlVkB5B,I;;;AAqVrB,sBAAcA,KAAKvkB,SAAnB;;;;;;;;;;;;;;;;;;;ACrXA;;;;;;;;;;;;;;;;;;ACAA,qE;;;;;;;;;;;ACAA,aAAa,mBAAO,CAAC,0GAAuD;AAC5E,2BAA2B,mBAAO,CAAC,sGAAqD;AACxF;;;AAGA;AACA,cAAc,QAAS,eAAe,4BAA4B,uBAAuB,qBAAqB,sEAAsE,mBAAO,CAAC,6DAAc,6BAA6B,GAAG;;AAE1O;;;;;;;;;;;;;ACPA,cAAc,mBAAO,CAAC,4bAAuO;;AAE7P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACff;;;;AACA;;;;;;AAEA;;;;;;;AAPA;AACA;AACA;;IAYqBuoB,W;;;;wBAEN;AAAE,aAAO,KAAKC,MAAL,CAAYjF,MAAnB;AAA2B;;AAE1C;;;;;;;;AAKA,uBAAYiF,MAAZ,EAAoB;AAAA;;AAAA,+DAClB,sBADkB;;AAElB,UAAKA,MAAL,GAAcA,MAAd;AACA,UAAKppB,QAAL,GAAgBopB,OAAOnpB,OAAvB;AAHkB;AAInB;;AAED;;;;;;;wBAKA8S,M,qBAAS;AACP,SAAK9S,OAAL,CAAakkB,MAAb,GAAsB,KAAKA,MAA3B;AACA,SAAKljB,IAAL,GAAY,mBAAS,KAAKhB,OAAd,CAAZ;AACA,SAAKopB,cAAL;AACA,SAAKpoB,IAAL,CAAUmjB,gBAAV,CAA2B,KAAKnkB,OAAhC;AACA,WAAO,KAAKgB,IAAZ;AACD,G;;AAED;;;;;;;wBAKAooB,c,6BAAiB;AAAA;;AACf,SAAKlF,MAAL,CAAYmF,WAAZ,CAAwBziB,OAAxB,CAAgC,UAACqe,MAAD,EAAY;AAC1C,UAAM7C,SAAS,IAAI6C,MAAJ,CAAW,OAAKjkB,IAAhB,CAAf;AACA,aAAKA,IAAL,CAAUuiB,SAAV,CAAoBnB,MAApB;AACA,aAAKkH,sBAAL,CAA4BlH,MAA5B;AACD,KAJD;AAKA,WAAO,KAAKphB,IAAZ;AACD,G;;wBAEDsoB,sB,mCAAuBlH,M,EAAQ;AAC7B,QAAMmH,oBAAoBnH,OAAOnhB,oBAAP,EAA1B;AACA,SAAK,IAAMgC,GAAX,IAAkBsmB,iBAAlB,EAAqC;AACnC,WAAKJ,MAAL,CAAYlmB,GAAZ,IAAmBsmB,kBAAkBtmB,GAAlB,EAAuByP,IAAvB,CAA4B0P,MAA5B,CAAnB;AACA,WAAKphB,IAAL,CAAUiC,GAAV,IAAiBsmB,kBAAkBtmB,GAAlB,EAAuByP,IAAvB,CAA4B0P,MAA5B,CAAjB;AACD;AAEF,G;;;;;kBAjDkB8G,W;;;;;;;;;;;;;;;;;;;ACdrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;;;AAEA;;;;;;;IAOMM,W;;;;wBACO;AAAE,aAAO,OAAP;AAAgB;;AAE7B;;;;;;;wBAIoB;AAClB,aAAO;AACLvnB,eAAO,OADF;AAELwnB,cAAM,MAFD;AAGLC,cAAM;AAHD,OAAP;AAKD;;;AAED,yBAA8B;AAAA,QAAlB1pB,OAAkB,uEAAV,EAAU;AAAA,QAANgB,IAAM;AAAA;;AAAA,+DAC5B,uBAAMhB,OAAN,CAD4B;;AAE5B,UAAKgB,IAAL,GAAYA,IAAZ;AAF4B;AAG7B;;AAED;;;;;;;wBAKAG,W,wBAAYgZ,G,EAAK;AACf,QAAI,CAAC,KAAKnZ,IAAV,EAAgB;AACd,oBAAIyB,IAAJ,CAAS,KAAKhB,IAAd,EAAoB,0BAApB,EAAgD0Y,GAAhD;AACA;AACD;AACD,SAAKnZ,IAAL,CAAUmE,OAAV,CAAkB,iBAAOoC,KAAzB,EAAgC4S,GAAhC;AACD,G;;;;;kBAGYqP,W;;;;;;;;;;;;;;;;;;;AC7Cf;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA;;;;;;;;;AA5BA;AAPA;AACA;AACA;;IAwCqBG,M;;;AACnB;;;;;;AAMA,oBAA6F;AAAA,QAAjFC,eAAiF,uEAA/D,EAA+D;AAAA,QAA3DjE,QAA2D,uEAAhD,CAAgD;AAAA,QAA7CkE,wBAA6C,uEAAlBC,KAAkB;AAAA;;AAAA,+DAC3F,sBAD2F;;AAE3F,UAAKnE,QAAL,GAAgBA,QAAhB;AACA,UAAKlB,eAAL,GAAuB,EAAvB;;AAEA,QAAI,CAACoF,wBAAL,EAA+B;AAC7B,YAAKpF,eAAL,8CACK,MAAKA,eADV;AAID;;AAED,UAAKA,eAAL,8CACK,MAAKA,eADV;;AAMA,QAAI,CAACoF,wBAAL,EAA+B;AAC7B,YAAKpF,eAAL,8CACK,MAAKA,eADV;AAKD;;AAED,UAAKA,eAAL,8CACK,MAAKA,eADV;;AAMA,UAAKO,gBAAL,GAAwB,8IAAxB;AACA,UAAKqE,WAAL,GAAmB,uMAAnB;;AAEA,QAAI,CAAC1mB,MAAMonB,OAAN,CAAcH,eAAd,CAAL,EACE,MAAKI,2BAAL,CAAiCJ,eAAjC;;AAEF,UAAKK,kBAAL,CAAwBL,eAAxB;AAtC2F;AAuC5F;;AAED;;;;;;;;;mBAOAM,kB,+BAAmB/J,O,EAAS;AAC1B,QAAIxd,MAAMonB,OAAN,CAAc5J,OAAd,CAAJ,EAA4B;AAC1BA,gBAAUA,QAAQgK,MAAR,CAAe,UAASC,IAAT,EAAehI,MAAf,EAAuB;AAC9CgI,aAAKhI,OAAOthB,IAAZ,MAAsBspB,KAAKhI,OAAOthB,IAAZ,IAAoB,EAA1C;AACAspB,aAAKhI,OAAOthB,IAAZ,EAAkB6D,IAAlB,CAAuByd,MAAvB;AACA,eAAOgI,IAAP;AACD,OAJS,EAIP,EAJO,CAAV;AAKD;AACD,WAAOjK,OAAP;AACD,G;;mBAEDkK,U,uBAAWC,I,EAAM;AACf,QAAMC,UAAU,SAAVA,OAAU,CAACpK,OAAD,EAAUiC,MAAV,EAAqB;AACnCjC,cAAQiC,OAAOzhB,SAAP,CAAiBc,IAAzB,KAAkC,OAAO0e,QAAQiC,OAAOzhB,SAAP,CAAiBc,IAAzB,CAAzC;AACA0e,cAAQiC,OAAOzhB,SAAP,CAAiBc,IAAzB,IAAiC2gB,MAAjC;AACA,aAAOjC,OAAP;AACD,KAJD;AAKA,QAAMqK,aAAaF,KAAKG,WAAL,CAAiBF,OAAjB,EAA0B,sBAAc,IAAd,CAA1B,CAAnB;;AAEA,QAAMpK,UAAU,EAAhB;AACA,SAAK,IAAIld,GAAT,IAAgBunB,UAAhB;AACErK,cAAQuK,OAAR,CAAgBF,WAAWvnB,GAAX,CAAhB;AADF,KAGA,OAAOkd,OAAP;AACD,G;;AAED;;;;;;;;mBAMA8J,kB,+BAAmB9J,O,EAAS;AAC1BA,cAAU,KAAK+J,kBAAL,CAAwB/J,OAAxB,CAAV;AACA,QAAIA,QAAQP,QAAZ,EACE,KAAK6E,eAAL,GAAuB,KAAK4F,UAAL,CAAgBlK,QAAQP,QAAR,CAAiBzc,MAAjB,CAAwB,KAAKshB,eAA7B,CAAhB,CAAvB;;AAEF,QAAItE,QAAQhgB,SAAZ,EACE,KAAK6kB,gBAAL,GAAwB,KAAKqF,UAAL,CAAgBlK,QAAQhgB,SAAR,CAAkBgD,MAAlB,CAAyB,KAAK6hB,gBAA9B,CAAhB,CAAxB;;AAEF,QAAI7E,QAAQnf,IAAZ,EACE,KAAKqoB,WAAL,GAAmB,KAAKgB,UAAL,CAAgBlK,QAAQnf,IAAR,CAAamC,MAAb,CAAoB,KAAKkmB,WAAzB,CAAhB,CAAnB;;AAGF,0BAAW3D,WAAX,CAAuB,KAAKC,QAA5B,EAAsClB,eAAtC,GAAwD,KAAKA,eAA7D;AACD,G;;AAED;;;;;;;;mBAMAuF,2B,wCAA4B7J,O,EAAS;AACnC,QAAMwK,cAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,MAA1B,CAApB;AACAA,gBAAY/jB,OAAZ,CAAoB,UAAC9F,IAAD,EAAU;AAC5B,OAACqf,QAAQrf,IAAR,KAAiB,EAAlB,EAAsB8F,OAAtB,CAA8B,UAAC6L,EAAD,EAAQ;AACpC,YAAMmY,eAAe,cAAcnY,GAAG3R,IAAjB,GAAwB,aAAxB,GAAwCA,IAAxC,GAA+C,QAApE;AACA,YAAI2R,GAAG3R,IAAH,KAAYA,IAAhB,EAAuB,MAAM,IAAI+pB,cAAJ,CAAmBD,YAAnB,CAAN;AACxB,OAHD;AAID,KALD;AAMD,G;;;;;AAtIH;;;AARA;;;kBA0BqBjB,M;;;;;;;;;;;;;;;;;;;;;;;AClCrB;;;;;;AAEA,IAAMhmB,SAAS,sBAAf,C,CAVA;AACA;AACA;;AAEA;;;;IAQqBmnB,Q;;;;kBAAAA,Q;;;AAGrBA,SAAStmB,EAAT,GAAc,UAAS/C,IAAT,EAAe0C,QAAf,EAAyBM,OAAzB,EAAkC;AAC9Cd,SAAOa,EAAP,CAAU/C,IAAV,EAAgB0C,QAAhB,EAA0BM,OAA1B;AACA;AACD,CAHD;;AAKAqmB,SAASlmB,IAAT,GAAgB,UAASnD,IAAT,EAAe0C,QAAf,EAAyBM,OAAzB,EAAkC;AAChDd,SAAOiB,IAAP,CAAYnD,IAAZ,EAAkB0C,QAAlB,EAA4BM,OAA5B;AACA;AACD,CAHD;;AAKAqmB,SAASjmB,GAAT,GAAe,UAASpD,IAAT,EAAe0C,QAAf,EAAyBM,OAAzB,EAAkC;AAC/Cd,SAAOkB,GAAP,CAAWpD,IAAX,EAAiB0C,QAAjB,EAA2BM,OAA3B;AACA;AACD,CAHD;;AAKAqmB,SAAS3lB,OAAT,GAAmB,UAAS1D,IAAT,EAAwB;AAAA,oCAANspB,IAAM;AAANA,QAAM;AAAA;;AACzCpnB,SAAOwB,OAAP,CAAejC,KAAf,CAAqBS,MAArB,GAA8BlC,IAA9B,SAAuCspB,IAAvC;AACA;AACD,CAHD;;AAKAD,SAASrqB,aAAT,GAAyB,UAASqC,GAAT,EAAcrB,IAAd,EAAoB0C,QAApB,EAA8B;AACrDR,SAAOlD,aAAP,CAAqBqC,GAArB,EAA0BrB,IAA1B,EAAgC0C,QAAhC;AACA;AACD,CAHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMyL,UAAU,+BAAmBc,OAAnB,CAA2B,UAA3B,EAAuC,EAAvC,CAAhB;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAjBA;AACA;AACA;;IAuCqBsa,M;;;;sBAER9G,M,EAAQ;AAAE,WAAK+G,OAAL,GAAe/G,MAAf;AAAuB,K;wBAC/B;AACX,UAAI,CAAC,KAAK+G,OAAV,EACE,KAAKA,OAAL,GAAe,qBAAW,KAAKjrB,OAAL,CAAamgB,OAAb,IAAwB,EAAnC,EAAuC,KAAKngB,OAAL,CAAa2lB,QAApD,CAAf;;AAEF,aAAO,KAAKsF,OAAZ;AACD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAKjqB,IAAL,CAAUukB,eAAV,CAA0B1F,KAAjC;AACD;;AAED;;;;;;;;;;wBAOgB;AACd,aAAO,KAAK7e,IAAL,CAAUukB,eAAV,CAA0BzF,SAAjC;AACD;;AAED;;;;;;;;wBAKc;AACZ,aAAO,CAAC,CAAC,KAAKoL,MAAd;AACD;;AAED;;;;;;;;wBAKoB;AAClB,aAAO;AACLC,iBAAS,iBAAOrkB,YADX;AAELskB,kBAAU,iBAAOrkB,aAFZ;AAGLskB,gBAAQ,iBAAOpkB,WAHV;AAILqkB,iBAAS,iBAAOpkB,YAJX;AAKLqkB,gBAAQ,iBAAOpkB,WALV;AAMLka,iBAAS,iBAAOja,YANX;AAOLokB,gBAAQ,iBAAOnkB,WAPV;AAQLokB,iBAAS,iBAAOnkB,YARX;AASLokB,sBAAc,iBAAOlkB,iBAThB;AAULmkB,wBAAgB,iBAAOlkB,mBAVlB;AAWLmkB,6BAAqB,iBAAOlkB;AAXvB,OAAP;AAaD;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFA,kBAAY1H,OAAZ,EAAqB;AAAA;;AAAA,+DACnB,uBAAMA,OAAN,CADmB;;AAEnB,QAAM6rB,yBAAyB,EAAEvR,cAAe,IAAjB,EAA/B;AACA,QAAMwR,iBAAiB;AACrBnG,gBAAU,qBAAS,EAAT,CADW;AAErBoG,qBAAe,IAFM;AAGrBhO,aAAO,GAHc;AAIrBC,cAAQ,GAJa;AAKrBpO,eAASA,OALY;AAMrBmT,4BAAsB,kBAAQ9D,QANT;AAOrBW,gBAAUiM;AAPW,KAAvB;AASA,UAAK9rB,QAAL,GAAgB,sBAAEa,MAAF,CAASkrB,cAAT,EAAyB9rB,OAAzB,CAAhB;AACA,UAAKA,OAAL,CAAaskB,OAAb,GAAuB,MAAK0H,iBAAL,CAAuBhsB,OAAvB,CAAvB;AACA,QAAI,CAAC,MAAKA,OAAL,CAAa8iB,UAAlB,EAA8B;AAC5B;AACA,YAAK9iB,OAAL,CAAa+iB,oBAAb,GAAoC,IAApC;AACD;AACD,QAAI,CAAC,MAAK/iB,OAAL,CAAa+iB,oBAAlB,EAAwC;AACtC;AACA,YAAK/iB,OAAL,CAAaisB,wBAAb,GAAwC,IAAxC;AACD;AACD,UAAKC,6BAAL,CAAmC,MAAKlsB,OAAL,CAAa2D,MAAhD;AACA,UAAKwoB,YAAL,GAAoB,iCAApB;AACA,UAAK1G,UAAL,GAAkB,sBAAWC,WAAX,CAAuB,MAAK1lB,OAAL,CAAa2lB,QAApC,CAAlB;AACA,UAAKF,UAAL,CAAgBkB,WAAhB,GAA8B,EAAE5I,OAAO/d,QAAQ+d,KAAjB,EAAwBC,QAAQhe,QAAQge,MAAxC,EAA9B;AACA,UAAKyH,UAAL,CAAgBzlB,OAAhB,GAA0B,MAAKA,OAA/B;AACA,QAAI,MAAKA,OAAL,CAAaosB,QAAjB,EACE,MAAKC,WAAL,CAAiB,MAAKrsB,OAAL,CAAaosB,QAA9B,EADF,KAGK,IAAI,MAAKpsB,OAAL,CAAa6T,MAAjB,EACH,MAAKyY,QAAL,CAAc,MAAKtsB,OAAL,CAAa6T,MAA3B;;AA/BiB;AAiCpB;;AAED;;;;;;;;mBAMAwY,W,wBAAYD,Q,EAAU;AACpB,QAAM3Z,KAAKiC,SAASS,aAAT,CAAuBiX,QAAvB,CAAX;AACA,QAAI3Z,EAAJ,EACE,KAAK6Z,QAAL,CAAc7Z,EAAd;;AAEF,WAAO,IAAP;AACD,G;;AAED;;;;;;;;mBAMA6Z,Q,qBAASja,O,EAAS;AAChB,SAAKrS,OAAL,CAAagpB,aAAb,GAA6B3W,OAA7B;AACA,SAAKrR,IAAL,GAAY,KAAKmrB,YAAL,CAAkBrZ,MAAlB,EAAZ;AACA,SAAKyZ,kBAAL;AACA,WAAO,IAAP;AACD,G;;mBAEDA,kB,iCAAqB;AACnB,QAAI,CAAC,KAAKvrB,IAAL,CAAUif,OAAf,EACE,KAAKtZ,YAAL,CAAkB,KAAK3F,IAAvB,EAA6B,iBAAO2I,UAApC,EAAgD,KAAK6iB,QAArD,EADF,KAGE,KAAKA,QAAL;;AAEF,SAAK9lB,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOyI,6BAAhC,EAA+D,KAAKgjB,iBAApE;AACA,SAAK/lB,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO4I,eAAhC,EAAiD,KAAK8iB,mBAAtD;AACA,SAAKhmB,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO6I,WAAhC,EAA6C,KAAK8iB,SAAlD;AACA,WAAO,IAAP;AACD,G;;mBAEDC,2B,0CAA8B;AAC5B,QAAMzsB,YAAY,KAAKa,IAAL,CAAUukB,eAA5B;AACA,QAAIplB,SAAJ,EAAe;AACb,WAAKuG,QAAL,CAAcvG,SAAd,EAAyB,iBAAO0K,cAAhC,EAAgD,KAAKgiB,OAArD;AACA,WAAKnmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAO4K,eAAhC,EAAiD,KAAK+hB,QAAtD;AACA,WAAKpmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAO2K,cAAhC,EAAgD,KAAKiiB,OAArD;AACA,WAAKrmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAO6K,eAAhC,EAAiD,KAAKgiB,QAAtD;AACA,WAAKtmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAOmL,cAAhC,EAAgD,KAAK2hB,OAArD;AACA,WAAKvmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAOoK,eAAhC,EAAiD,KAAK2iB,QAAtD;AACA,WAAKxmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAOwK,oBAAhC,EAAsD,KAAKwiB,aAA3D;AACA,WAAKzmB,QAAL,CAAcvG,SAAd,EAAyB,iBAAOqL,gBAAhC,EAAkD,KAAK4hB,eAAvD;AACA,WAAK1mB,QAAL,CAAcvG,SAAd,EAAyB,iBAAOsK,4BAAhC,EAA8D,KAAK4iB,oBAAnE;AACD;AACD,WAAO,IAAP;AACD,G;;mBAEDnB,6B,4CAA2D;AAAA;;AAAA,QAA7BoB,SAA6B,uEAAjB,EAAiB;AAAA,QAAb3pB,MAAa,uEAAJ,EAAI;;AACzD,QAAM4pB,eAAe,oBAAYD,SAAZ,EAAuB7pB,MAAvB,GAAgC,CAArD;AACA8pB,oBAAgB,oBAAY5pB,MAAZ,EAAoBiD,OAApB,CAA4B,UAAC4mB,SAAD,EAAe;AACzD,UAAMC,YAAY,OAAKC,aAAL,CAAmBF,SAAnB,CAAlB;AACAC,mBAAa,OAAK5oB,GAAL,CAAS4oB,SAAT,EAAoB9pB,OAAO6pB,SAAP,CAApB,CAAb;AACD,KAHe,CAAhB;;AAKA,wBAAYF,SAAZ,EAAuB1mB,OAAvB,CAA+B,UAAC4mB,SAAD,EAAe;AAC5C,UAAMC,YAAY,OAAKC,aAAL,CAAmBF,SAAnB,CAAlB;AACA,UAAIC,SAAJ,EAAe;AACb,YAAIE,gBAAgBL,UAAUE,SAAV,CAApB;AACAG,wBAAgB,OAAOA,aAAP,KAAyB,UAAzB,IAAuCA,aAAvD;AACAA,yBAAiB,OAAKnpB,EAAL,CAAQipB,SAAR,EAAmBE,aAAnB,CAAjB;AACD;AACF,KAPD;AAQA,WAAO,IAAP;AACD,G;;mBAEDlB,iB,gCAAoB;AAClB,SAAKhsB,aAAL;AACA,SAAK8rB,kBAAL;AACD,G;;mBAEDC,Q,uBAAW;AACT,SAAKtB,MAAL,GAAc,IAAd;AACA,SAAK0B,2BAAL;AACA,SAAKznB,OAAL,CAAa,iBAAO2B,YAApB;AACD,G;;mBAED4lB,mB,gCAAoBpJ,U,EAAY;AAC9B,SAAKne,OAAL,CAAa,iBAAO6B,iBAApB,EAAuCsc,UAAvC;AACD,G;;mBAED8J,e,4BAAgBnf,M,EAAQ;AACtB,SAAK9I,OAAL,CAAa,iBAAOsC,mBAApB,EAAyCwG,MAAzC;AACD,G;;mBAEDof,oB,mCAAuB;AACrB,SAAKloB,OAAL,CAAa,iBAAOuC,yBAApB;AACD,G;;mBAEDilB,S,sBAAU1D,I,EAAM;AACd,SAAK9jB,OAAL,CAAa,iBAAO4B,aAApB,EAAmCkiB,IAAnC;AACD,G;;mBAED4D,O,sBAAU;AACR,SAAK1nB,OAAL,CAAa,iBAAO8B,WAApB;AACD,G;;mBAED6lB,Q,uBAAW;AACT,SAAK3nB,OAAL,CAAa,iBAAO+B,YAApB;AACD,G;;mBAED6lB,O,sBAAU;AACR,SAAK5nB,OAAL,CAAa,iBAAOgC,WAApB,EAAiC,KAAKsb,cAAL,EAAjC;AACD,G;;mBAEDuK,Q,uBAAW;AACT,SAAK7nB,OAAL,CAAa,iBAAOiC,YAApB;AACD,G;;mBAED6lB,O,oBAAQzf,I,EAAM;AACZ,SAAKrI,OAAL,CAAa,iBAAOkC,WAApB,EAAiCmG,IAAjC;AACD,G;;mBAED2f,a,0BAAcxK,Y,EAAc;AAC1B,SAAKxd,OAAL,CAAa,iBAAOqC,iBAApB,EAAuCmb,YAAvC;AACD,G;;mBAEDuK,Q,qBAAS9rB,K,EAAO;AACd,SAAK+D,OAAL,CAAa,iBAAOmC,YAApB,EAAkClG,KAAlC;AACD,G;;mBAED4qB,iB,8BAAkBhsB,O,EAAS;AACzB,QAAMskB,UAAUtkB,QAAQskB,OAAR,KAAoBtkB,QAAQ0O,MAAR,KAAmBc,SAAnB,GAA8B,CAACxP,QAAQ0O,MAAT,CAA9B,GAAiD,EAArE,CAAhB;AACA,WAAO4V,QAAQ7gB,MAAR,KAAmB,CAAnB,GAAuB,CAAC,EAAEiL,QAAO,EAAT,EAAaC,UAAS,EAAtB,EAAD,CAAvB,GAAsD2V,OAA7D;AACD,G;;AAED;;;;;;;;;;;;mBAUAsC,M,mBAAOqC,I,EAAM;AACX,SAAKjoB,IAAL,CAAU4lB,MAAV,CAAiBqC,IAAjB;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;;;;;mBASApB,I,iBAAKvD,O,EAAS3V,Q,EAAUif,Q,EAAU;AAChC,QAAIA,aAAape,SAAjB,EACE,KAAKtB,SAAL,CAAe,EAAE0f,UAAU,CAAC,CAACA,QAAd,EAAf;;AAEF,SAAK5sB,IAAL,CAAU6mB,IAAV,CAAevD,OAAf,EAAwB3V,QAAxB;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAjO,O,sBAAU;AACR,SAAKD,aAAL;AACA,SAAKO,IAAL,CAAUN,OAAV;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAyM,O,sBAAU;AACR,SAAKnM,IAAL,CAAUynB,kBAAV,GAA+Btb,OAA/B;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAC,I,mBAAO;AACL,SAAKpM,IAAL,CAAUukB,eAAV,CAA0BnY,IAA1B;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAC,K,oBAAQ;AACN,SAAKrM,IAAL,CAAUukB,eAAV,CAA0BlY,KAA1B;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAC,I,mBAAO;AACL,SAAKtM,IAAL,CAAUukB,eAAV,CAA0BjY,IAA1B;AACA,WAAO,IAAP;AACD,G;;AAGD;;;;;;;;mBAMAC,I,iBAAKC,I,EAAM;AACT,SAAKxM,IAAL,CAAUukB,eAAV,CAA0BhY,IAA1B,CAA+BC,IAA/B;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;;mBAMAC,c,2BAAeC,U,EAAY;AACzB,SAAK1M,IAAL,CAAUukB,eAAV,CAA0B9X,cAA1B,CAAyCC,UAAzC;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAmgB,I,mBAAO;AACL,SAAKC,YAAL,GAAoB,KAAKC,SAAL,EAApB;AACA,SAAK1K,SAAL,CAAe,CAAf;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKA2K,M,qBAAS;AACP,SAAK3K,SAAL,CAAe,OAAO,KAAKyK,YAAZ,KAA6B,QAA7B,GAAwC,KAAKA,YAA7C,GAA4D,GAA3E;AACA,SAAKA,YAAL,GAAoB,IAApB;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;mBAKAjgB,S,wBAAY;AACV,WAAO,KAAK7M,IAAL,CAAUukB,eAAV,CAA0B1X,SAA1B,EAAP;AACD,G;;AAED;;;;;;;mBAKAoU,Y,2BAAe;AACb,WAAO,KAAKjhB,IAAL,CAAUukB,eAAV,CAA0BtD,YAA1B,EAAP;AACD,G;;AAED;;;;;;;mBAKAE,U,yBAAa;AACX,WAAO,KAAKnhB,IAAL,CAAUukB,eAAV,CAA0BpD,UAA1B,EAAP;AACD,G;;AAED;;;;;;;;mBAMAjU,S,wBAAwB;AAAA,QAAdlO,OAAc,uEAAJ,EAAI;;AACtB,SAAKksB,6BAAL,CAAmClsB,QAAQ2D,MAA3C,EAAmD,KAAK3D,OAAL,CAAa2D,MAAhE;AACA,SAAK3C,IAAL,CAAUkN,SAAV,CAAoBlO,OAApB;AACA,WAAO,IAAP;AACD,G;;AAED;;;;;;;;;;;;;mBAWAyjB,S,sBAAUhiB,I,EAAM;AACd,QAAM0e,UAAU,KAAKnf,IAAL,CAAUmf,OAAV,CAAkBhd,MAAlB,CAAyB,KAAKnC,IAAL,CAAUukB,eAAV,CAA0BpF,OAAnD,CAAhB;AACA,WAAOA,QAAQ3Z,MAAR,CAAe;AAAA,aAAU4b,OAAO3gB,IAAP,KAAgBA,IAA1B;AAAA,KAAf,EAA+C,CAA/C,CAAP;AACD,G;;AAED;;;;;;;mBAKAghB,c,6BAAiB;AACf,WAAO,KAAKzhB,IAAL,CAAUukB,eAAV,CAA0B9C,cAA1B,EAAP;AACD,G;;AAED;;;;;;;;;mBAOA9U,kB,iCAAqB;AACnB,WAAO,KAAK3M,IAAL,CAAUukB,eAAV,CAA0B5X,kBAA1B,EAAP;AACD,G;;AAED;;;;;;;mBAKAC,W,0BAAc;AACZ,WAAO,KAAK5M,IAAL,CAAUukB,eAAV,CAA0B3X,WAA1B,EAAP;AACD,G;;;;;kBAtjBkBod,M;;;AAyjBrB,sBAAcA,OAAOrqB,SAArB;;;;;;;;;;;;;;;;;;;;;;;;;AClmBA;AACA;AACA;;IAEMstB,U,GACJ,sBAAc;AAAA;;AACZ,OAAKjuB,OAAL,GAAe,EAAf;AACA,OAAKykB,eAAL,GAAuB,EAAvB;AACA,OAAKkC,WAAL,GAAmB,EAAE5I,OAAO,CAAT,EAAYC,QAAQ,CAApB,EAAnB;AACD,C;;AAGHiQ,WAAWC,QAAX,GAAsB,EAAtB;;AAEAD,WAAWvI,WAAX,GAAyB,UAACC,QAAD,EAAc;AACrC,SAAOsI,WAAWC,QAAX,CAAoBvI,QAApB,MAAkCsI,WAAWC,QAAX,CAAoBvI,QAApB,IAAgC,IAAIsI,UAAJ,EAAlE,CAAP;AACD,CAFD;;kBAIeA,U;;;;;;;;;;;;AClBf,iK;;;;;;;;;;;ACAA,+O;;;;;;;;;;;ACAA,uM;;;;;;;;;;;ACAA,qR;;;;;;;;;;;ACAA,ga;;;;;;;;;;;ACAA,0O;;;;;;;;;;;ACAA,yP;;;;;;;;;;;ACAA,qY;;;;;;;;;;;ACAA,8NAA8N,8mB;;;;;;;;;;;ACA9N,uX;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;;;AAEA,IAAMjS,UAAUmS,QAAhB,C,CA3CA;AACA;AACA;;kBA2Ce;AACbnD,0BADa;AAEbF,8BAFa;AAGbvmB,0BAHa;AAIb8W,4BAJa;AAKb4S,mCALa;AAMbG,uCANa;AAObluB,6CAPa;AAQbqR,kDARa;AASbxQ,mCATa;AAUb4Q,wCAVa;AAWb5E,8BAXa;AAYb2S,gCAZa;AAabwF,sBAba;AAcbsE,8BAda;AAebG,0BAfa;AAgBb7pB,mCAhBa;AAiBb+R,+BAjBa;AAkBbwc,wBAlBa;AAmBbC,kDAnBa;AAoBbC,wBApBa;AAqBbC,4BArBa;AAsBbC,oBAtBa;AAuBbC,mCAvBa;AAwBbC,mCAxBa;AAyBbC,6BAzBa;AA0BbC,uBA1Ba;AA2BbC,8CA3Ba;AA4BbC,qCA5Ba;AA6BbC,4BA7Ba;AA8BbC,oBA9Ba;AA+BbC,0BA/Ba;AAgCbC,0DAhCa;AAiCbC,sCAjCa;AAkCb3f,0BAlCa;AAmCb4f,0BAnCa;AAoCbrT,kBApCa;AAqCb1K,8BArCa;AAsCbW;AAtCa,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCf;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AAEA,IAAMqd,aAAa,4CAAnB,C,CAXA;AACA;AACA;;IAWqBhB,iB;;;;;;;;8BAsBnBlc,U,uBAAWC,O,EAAS;AAClB,SAAKb,GAAL,GAAWa,OAAX;AACA,SAAKI,EAAL,GAAUJ,QAAQ,CAAR,CAAV;AACD,G;;8BAEDrB,M,qBAAS;AACP,SAAKQ,GAAL,CAASwB,IAAT,CAAc,MAAd,EAAsB,KAAKuc,OAA3B;AACA,SAAK/d,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc;AAC1BQ,WAAK,KAAKA,GADgB;AAE1Byd,eAAS,KAAKA,OAFY;AAG1B3f,eAAS,KAAKA,OAHY;AAI1B4f,kBAAY,KAAKvvB,QAJS;AAK1BwvB,aAAO,KAAKA,KALc;AAM1BC,wDAAgD,KAAK5d,GAN3B,EAAd,CAAd;;AASA,QAAI,kBAAQgN,IAAZ,EAAkB;AAChB,WAAK7M,CAAL,CAAO,OAAP,EAAgBxM,MAAhB;;AAEA,UAAI,kBAAQoZ,UAAZ,EACE,KAAKrN,GAAL,CAASwB,IAAT,CAAc,SAAd,EAAyBsc,UAAzB;AAEH;;AAED,SAAK7c,EAAL,CAAQ9M,EAAR,GAAa,KAAKmM,GAAlB;;AAEA,WAAO,IAAP;AACD,G;;;;wBAhDa;AAAE,aAAO,QAAP;AAAiB;;;wBACnB;AAAE,aAAO,EAAP;AAAW;;;wBACf;AAAE,aAAO,aAAP;AAAsB;;;wBACrB;AAAE,aAAO,wCAAP;AAA4B;;;wBAC5B;AACf,UAAIhR,OAAO,+BAAX;;AAEA,UAAI,kBAAQ+d,UAAZ,EACE/d,OAAO,EAAP;;AAGF,aAAO;AACL6e,eAAO,uBADF;AAEL7e,cAAMA,IAFD;AAGLid,eAAO,MAHF;AAILC,gBAAQ,MAJH;AAKLjN,cAAM,KAAKwe,OALN;AAML,+BAAuB,KAAK9tB;AANvB,OAAP;AAQD;;;;;kBApBkB6sB,iB;;;;;;;;;;;;;;;;;;kBCbNqB,mBAAOA,CAAC,yFAAR,C;;;;;;;;;;;;ACAf,6gC;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,0cAAuO;;AAE7P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACff;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAMC,eAAe,EAArB,C,CAfA;AACA;AACA;;IAeqBrB,K;;;;wBACR;AAAE,aAAO,OAAP;AAAgB;;;wBACf;AAAE,aAAO,0CAAmB,EAAE3e,SAAS,KAAKigB,QAAhB,EAAnB,CAAP;AAAuD;;AAEvE;;;;;;;;wBAKY;AACV,aAAO,KAAKC,aAAL,KAAuB,OAA9B;AACD;;AAED;;;;;;;;;wBAMgB;AACd,aAAO,CAAC,CAAC,KAAKC,eAAP,IAA0B,KAAKD,aAAL,KAAuB,OAAxD;AACD;;;AAED,mBAAqB;AAAA;;AAAA,sCAANlsB,IAAM;AAANA,UAAM;AAAA;;AAAA,+DACnB,gEAASA,IAAT,EADmB;;AAEnB,UAAKosB,IAAL,GAAY,MAAKhwB,OAAL,CAAaoY,GAAzB;AACA,UAAKyX,QAAL,GAAgB,MAAK7vB,OAAL,CAAa4P,OAA7B;AACA,UAAKqgB,SAAL,GAAiB,MAAKjwB,OAAL,CAAa4tB,QAA9B;AACA,UAAK1gB,QAAL,GAAgB,EAAEgjB,SAAS,CAAC,SAAD,CAAX,EAAhB;AACA,UAAKhjB,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB;AACA,UAAKjjB,QAAL,CAAckjB,KAAd,GAAsB,CAAC,YAAD,EAAe,QAAf,CAAtB;AACA,UAAKljB,QAAL,CAAcmjB,WAAd,GAA4B,IAA5B;AACA,UAAKC,aAAL,GAAqB,KAArB;AACA,UAAKC,aAAL;AAVmB;AAWpB;;kBAGDC,U,yBAAa;AAAA;;AACX,QAAI,KAAK/d,EAAL,CAAQge,UAAZ,EAAwB;AACtB,WAAKhe,EAAL,CAAQsL,KAAR,GAAgB,MAAhB;AACA,WAAKtL,EAAL,CAAQuL,MAAR,GAAiB,MAAjB;AACA,UAAI,KAAK8R,aAAL,KAAuB,SAA3B,EAAsC;AAAE,aAAKY,UAAL;AAAmB,OAA3D,MAAiE;AAC/D,aAAKZ,aAAL,GAAqB,MAArB;AACA,aAAKG,SAAL,IAAkB,KAAK7iB,IAAL,EAAlB;AACD;AACD,iCAAE,gFAAF,EAAoFujB,WAApF,CAAgG,KAAKnf,GAArG;AACA,UAAI,KAAK5D,WAAL,KAAqB,CAAzB,EACE,KAAKgjB,eAAL,GADF,KAGE,mBAAShsB,IAAT,CAAc,KAAK3E,QAAL,GAAgB,aAA9B,EAA6C,KAAK2wB,eAAlD,EAAmE,IAAnE;AAEH,KAbD,MAaO;AACL,WAAKC,SAAL,GAAiB,KAAKA,SAAL,IAAkB,CAAnC;AACA,UAAI,EAAE,KAAKA,SAAP,IAAoBjB,YAAxB,EACEnX,WAAW;AAAA,eAAM,OAAK+X,UAAL,EAAN;AAAA,OAAX,EAAoC,EAApC,EADF,KAGE,KAAKrrB,OAAL,CAAa,iBAAO+D,cAApB,EAAoC,EAAE1G,SAAS,gCAAX,EAApC,EAAmF,KAAKf,IAAxF;AAEH;AACF,G;;kBAEDmvB,e,8BAAkB;AAChB,SAAKN,aAAL,GAAqB,IAArB;AACA,SAAKnrB,OAAL,CAAa,iBAAO0C,cAApB,EAAoC,KAAKpG,IAAzC;AACA,SAAK0D,OAAL,CAAa,iBAAO6C,uBAApB,EAA6C,KAAKvG,IAAlD;AACD,G;;kBAEDqM,e,8BAAkB;AAChB,WAAO,mBAASc,GAAhB;AACD,G;;kBAEDZ,qB,oCAAwB;AACtB,WAAO,KAAP;AACD,G;;kBAED8iB,W,0BAAc;AACZ,SAAK3rB,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,KAAKnQ,EAAL,CAAQse,WAAR,EAAX,EAAkCC,OAAO,KAAKve,EAAL,CAAQ7E,WAAR,EAAzC,EAAzC,EAA2G,KAAKnM,IAAhH;AACD,G;;kBAED8uB,a,4BAAgB;AACd,uBAAS/rB,EAAT,CAAY,KAAKvE,QAAL,GAAgB,WAA5B,EAAyC,KAAKgxB,SAA9C,EAAyD,IAAzD;AACA,uBAASzsB,EAAT,CAAY,KAAKvE,QAAL,GAAgB,aAA5B,EAA2C,KAAK6wB,WAAhD,EAA6D,IAA7D;AACA,uBAAStsB,EAAT,CAAY,KAAKvE,QAAL,GAAgB,eAA5B,EAA6C,KAAKixB,WAAlD,EAA+D,IAA/D;AACA,uBAAS1sB,EAAT,CAAY,KAAKvE,QAAL,GAAgB,aAA5B,EAA2C,KAAKuwB,UAAhD,EAA4D,IAA5D;AACD,G;;kBAED/vB,a,4BAAgB;AACd,iCAAMA,aAAN;AACA,uBAASoE,GAAT,CAAa,KAAK5E,QAAL,GAAgB,WAA7B;AACA,uBAAS4E,GAAT,CAAa,KAAK5E,QAAL,GAAgB,aAA7B;AACA,uBAAS4E,GAAT,CAAa,KAAK5E,QAAL,GAAgB,eAA7B;AACA,uBAAS4E,GAAT,CAAa,KAAK5E,QAAL,GAAgB,aAA7B;AACD,G;;kBAEDixB,W,0BAAc;AACZ,QAAI,KAAKC,OAAL,IAAgB,KAAKrB,aAAL,KAAuB,QAA3C,EAAqD;AAAE;AAAQ,KAA/D,MAAqE,IAAI,KAAKA,aAAL,KAAuB,mBAAvB,IAA8C,KAAKrd,EAAL,CAAQ2e,QAAR,OAAuB,mBAAzE,EAA8F;AACjK,WAAKrB,eAAL,GAAuB,IAAvB;AACA,WAAK5qB,OAAL,CAAa,iBAAO2C,kBAApB,EAAwC,KAAKrG,IAA7C;AACA,WAAKquB,aAAL,GAAqB,mBAArB;AACD,KAJoE,MAI9D,IAAI,KAAKrd,EAAL,CAAQ2e,QAAR,OAAuB,SAA3B,EAAsC;AAC3C,WAAKrB,eAAL,GAAuB,KAAvB;AACA,WAAK5qB,OAAL,CAAa,iBAAO4C,mBAApB,EAAyC,KAAKtG,IAA9C;AACA,WAAKquB,aAAL,GAAqB,SAArB;AACD,KAJM,MAIA,IAAI,KAAKrd,EAAL,CAAQ2e,QAAR,OAAuB,MAA3B,EAAmC;AAAE,WAAKtB,aAAL,GAAqB,MAArB;AAA6B,KAAlE,MAAwE,IAAI,KAAKrd,EAAL,CAAQ2e,QAAR,OAAuB,OAA3B,EAAoC;AACjH,WAAKjsB,OAAL,CAAa,iBAAOwD,cAApB,EAAoC,KAAKlH,IAAzC;AACA,WAAK0D,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,CAAX,EAAcoO,OAAO,KAAKve,EAAL,CAAQ7E,WAAR,EAArB,EAAzC,EAAuF,KAAKnM,IAA5F;AACA,WAAKquB,aAAL,GAAqB,OAArB;AACA,WAAKqB,OAAL,GAAe,IAAf;AACD;AACF,G;;kBAEDF,S,wBAAY;AACV,QAAI,KAAKnB,aAAL,KAAuB,MAAvB,IAAiC,KAAKA,aAAL,KAAuB,OAA5D,EAAqE;AACnE,WAAK3qB,OAAL,CAAa,iBAAOwC,iBAApB,EAAsC;AACpC0pB,eAAO,CAD6B;AAEpCzO,iBAAS,KAAKnQ,EAAL,CAAQ6e,cAAR,EAF2B;AAGpCN,eAAO,KAAKve,EAAL,CAAQ8e,aAAR;AAH6B,OAAtC;AAKD;AACF,G;;kBAEDb,U,yBAAa;AAAA;;AACX,QAAI,KAAKje,EAAL,CAAQge,UAAZ,EAAwB;AACtB,WAAKU,OAAL,GAAe,KAAf;AACA,WAAK1e,EAAL,CAAQge,UAAR,CAAmB,KAAKT,IAAxB;AACA,WAAKrpB,YAAL,CAAkB,IAAlB,EAAwB,iBAAOoB,mBAA/B,EAAoD;AAAA,eAAM,OAAKypB,iBAAL,EAAN;AAAA,OAApD;AACA,WAAK1B,aAAL,GAAqB,SAArB;AACD,KALD,MAKO;AAAE,WAAKnpB,YAAL,CAAkB,IAAlB,EAAwB,iBAAOkB,cAA/B,EAA+C,KAAK6oB,UAApD;AAAiE;AAE3E,G;;kBAEDc,iB,gCAAoB;AAClB,QAAIC,WAAW,gCAAoBta,OAAOC,QAAP,CAAgBsa,IAApC,CAAf;AACA,QAAID,aAAa,CAAjB,EACE,KAAKE,WAAL,CAAiBF,QAAjB;AAEH,G;;kBAEDrkB,I,mBAAO;AACL,SAAKjI,OAAL,CAAa,iBAAOyD,oBAApB;AACA,QAAI,KAAKknB,aAAL,KAAuB,QAAvB,IAAmC,KAAKA,aAAL,KAAuB,mBAA9D,EAAmF;AACjF,WAAKA,aAAL,GAAqB,SAArB;AACA,WAAKrd,EAAL,CAAQmf,YAAR;AACA,WAAKzsB,OAAL,CAAa,iBAAO0D,aAApB,EAAmC,KAAKpH,IAAxC;AACD,KAJD,MAIO,IAAI,KAAKquB,aAAL,KAAuB,SAA3B,EAAsC;AAC3C,WAAKY,UAAL;AACA,WAAKvrB,OAAL,CAAa,iBAAO0D,aAApB,EAAmC,KAAKpH,IAAxC;AACD;AACF,G;;kBAEDwM,M,mBAAO7H,K,EAAO;AAAA;;AACZ,QAAI,KAAK6Z,OAAT,EACE,KAAKxN,EAAL,CAAQof,YAAR,CAAqBzrB,KAArB,EADF,KAGE,KAAKO,YAAL,CAAkB,IAAlB,EAAwB,iBAAOoB,mBAA/B,EAAoD;AAAA,aAAM,OAAKkG,MAAL,CAAY7H,KAAZ,CAAN;AAAA,KAApD;AAEH,G;;kBAEDiH,K,oBAAQ;AACN,SAAKyiB,aAAL,GAAqB,QAArB;AACA,SAAKrd,EAAL,CAAQqf,WAAR;AACA,SAAK3sB,OAAL,CAAa,iBAAO2D,cAApB,EAAoC,KAAKrH,IAAzC;AACD,G;;kBAED6L,I,mBAAO;AACL,SAAKmF,EAAL,CAAQsf,UAAR;AACA,SAAK5sB,OAAL,CAAa,iBAAO8D,aAApB;AACA,SAAK9D,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,CAAX,EAAcoO,OAAO,CAArB,EAAzC,EAAmE,KAAKvvB,IAAxE;AACD,G;;kBAEDoM,S,wBAAY;AACV,WAAO,CAAC,EAAE,KAAKoS,OAAL,IAAgB,KAAK6P,aAAL,CAAmB1W,OAAnB,CAA2B,SAA3B,IAAwC,CAAC,CAA3D,CAAR;AACD,G;;kBAMDxL,W,0BAAc;AACZ,WAAO,KAAK6E,EAAL,CAAQ7E,WAAR,EAAP;AACD,G;;kBAEDH,c,2BAAeC,U,EAAY;AAAA;;AACzB,QAAI,KAAK+E,EAAL,CAAQ7E,WAAR,KAAwB,CAA5B,EAA+B;AAC7B,UAAI+jB,cAAc,KAAKlf,EAAL,CAAQ7E,WAAR,MAAyBF,aAAa,GAAtC,CAAlB;AACA,WAAKH,IAAL,CAAUokB,WAAV;AACD,KAHD,MAGO;AAAE,WAAKhrB,YAAL,CAAkB,IAAlB,EAAwB,iBAAOoB,mBAA/B,EAAoD;AAAA,eAAM,OAAK0F,cAAL,CAAoBC,UAApB,CAAN;AAAA,OAApD;AAA4F;AAEtG,G;;kBAEDH,I,iBAAKC,I,EAAM;AAAA;;AACT,QAAI,KAAKyS,OAAL,IAAgB,KAAKxN,EAAL,CAAQuf,UAA5B,EAAwC;AACtC,WAAKvf,EAAL,CAAQuf,UAAR,CAAmBxkB,IAAnB;AACA,WAAKrI,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAASpV,IAAX,EAAiBwjB,OAAO,KAAKve,EAAL,CAAQ7E,WAAR,EAAxB,EAAzC,EAA0F,KAAKnM,IAA/F;AACA,UAAI,KAAKquB,aAAL,KAAuB,QAA3B,EACE,KAAKrd,EAAL,CAAQqf,WAAR;AAEH,KAND,MAMO;AAAE,WAAKnrB,YAAL,CAAkB,IAAlB,EAAwB,iBAAOoB,mBAA/B,EAAoD;AAAA,eAAM,OAAKwF,IAAL,CAAUC,IAAV,CAAN;AAAA,OAApD;AAA4E;AAEtF,G;;kBAED9M,O,sBAAU;AACRgnB,kBAAc,KAAKuK,WAAnB;AACA,iCAAMxxB,aAAN;AACA,SAAK+Q,GAAL,CAAS/L,MAAT;AACD,G;;;;wBA/Ba;AACZ,aAAO,KAAK6qB,aAAZ;AACD;;;;;kBAhLkB/B,K;;;AAgNrBA,MAAM9f,OAAN,GAAgB,UAASyjB,QAAT,EAAmB;AACjC,MAAI,CAAC,kBAAQ1W,QAAT,IAAqB,CAAC0W,QAAtB,IAAkCA,SAAS3wB,WAAT,KAAyB4wB,MAA/D,EAAuE;AAAE,WAAO,KAAP;AAAc,GAAvF,MAA6F;AAC3F,QAAMC,gBAAgBF,SAAS5uB,KAAT,CAAe,GAAf,EAAoB,CAApB,EAAuBqN,KAAvB,CAA6B,WAA7B,KAA6C,EAAnE;AACA,WAAOyhB,cAAc3uB,MAAd,GAAuB,CAAvB,IAA4B,CAAC,kBAAQwb,QAArC,IAAiDmT,cAAc,CAAd,EAAiBlsB,WAAjB,GAA+ByK,KAA/B,CAAqC,0BAArC,CAAxD;AAED;AACF,CAND;;;;;;;;;;;;;;;;;;;ACjOA;;;;;;;;;;;;;;;;;;ACAA,qE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAbA;AACA;AACA;;AAcA,IAAMif,eAAe,EAArB;AACA,IAAMyC,OAAO,CAAC,CAAd;;IAEqB7D,O;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;wBACjB;AAAE,aAAO,6CAAiB,EAAE5e,SAAS,KAAKigB,QAAhB,EAAjB,CAAP;AAAqD;;;wBAExD;AAAE,aAAO,KAAKyC,OAAL,IAAgB,EAAvB;AAA2B;;;wBACvB;AACjB,UAAI,KAAKC,aAAL,KAAuB,IAAvB,IAA+B,KAAKA,aAAL,KAAuB/iB,SAA1D,EACE,OAAO6iB,IAAP,CADF,KAGE,OAAO,KAAKE,aAAZ,CAJe,CAIW;AAE7B,K;sBACgB5sB,E,EAAI;AACnB,WAAK4sB,aAAL,GAAqB5sB,EAArB;AACA,WAAKR,OAAL,CAAa,iBAAOkD,2BAApB;AACA,WAAKoK,EAAL,CAAQ+f,qBAAR,CAA8B7sB,EAA9B;AACD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAK8sB,SAAZ;AACD;;AAED;;;;;;;;;wBAMgB;AACd,aAAO,CAAC,CAAC,KAAK1C,eAAP,IAA0B,CAAC,KAAK0C,SAAvC;AACD;;;AAED,qBAAqB;AAAA;;AAAA,sCAAN7uB,IAAM;AAANA,UAAM;AAAA;;AAAA,+DACnB,gEAASA,IAAT,EADmB;;AAEnB,UAAKosB,IAAL,GAAY,MAAKhwB,OAAL,CAAaoY,GAAzB;AACA,UAAKyX,QAAL,GAAgB,MAAK7vB,OAAL,CAAa4P,OAA7B;AACA,UAAK8iB,kBAAL,CAAwB,MAAK1yB,OAA7B;AACA;AACA,UAAK2yB,cAAL,GAAsB,KAAtB;AACA,UAAK1C,SAAL,GAAiB,MAAKjwB,OAAL,CAAa4tB,QAA9B;AACA,UAAKgF,KAAL,GAAa,MAAK5yB,OAAL,CAAa6yB,IAA1B;AACA,UAAKC,gBAAL,GAAwB;AACtB3C,YAAM,CAAC,UAAD,CADgB;AAEtBD,eAAS,CAAC,SAAD,CAFa;AAGtBE,aAAO,CAAC,YAAD,EAAe,QAAf,EAAyB,cAAzB,CAHe;AAItBC,mBAAa;AAJS,KAAxB;AAMA,UAAKnjB,QAAL,GAAgB,sBAAEtM,MAAF,CAAS,EAAT,EAAa,MAAKkyB,gBAAlB,CAAhB;AACA,UAAKC,aAAL,GAAqB,mBAASjkB,IAA9B;AACA,UAAK2jB,SAAL,GAAiB,KAAjB;AACA,UAAKlC,aAAL;AAlBmB;AAmBpB;;oBAEDmC,kB,+BAAmB1yB,O,EAAS;AAC1B,SAAKgzB,cAAL,GAAuBhzB,QAAQizB,aAAR,KAA0BzjB,SAA3B,GAAwC,IAAxC,GAA+CxP,QAAQizB,aAA7E;AACA,SAAKC,gBAAL,GAAyBlzB,QAAQmzB,eAAR,KAA4B3jB,SAA7B,GAA0C,KAA1C,GAAkDxP,QAAQmzB,eAAlF;AACA,SAAKC,oBAAL,GAA6BpzB,QAAQqzB,mBAAR,KAAgC7jB,SAAjC,GAA8C,WAA9C,GAA4DxP,QAAQqzB,mBAAhG;AACA,SAAKC,gBAAL,GAAyBtzB,QAAQuzB,eAAR,KAA4B/jB,SAA7B,GAA0C,CAAC,CAA3C,GAA+CxP,QAAQuzB,eAA/E;AACA,SAAKC,uBAAL,GAAgCxzB,QAAQyzB,sBAAR,KAAmCjkB,SAApC,GAAiD,CAAC,CAAlD,GAAsDxP,QAAQyzB,sBAA7F;AACA,SAAKC,gBAAL,GAAyB1zB,QAAQ2zB,eAAR,KAA4BnkB,SAA7B,GAA0C,GAA1C,GAAgDxP,QAAQ2zB,eAAhF;AACA,SAAKC,oBAAL,GAA6B5zB,QAAQ6zB,mBAAR,KAAgCrkB,SAAjC,GAA8C,EAA9C,GAAmDxP,QAAQ6zB,mBAAvF;AACA,SAAKC,gBAAL,GAAyB9zB,QAAQ+zB,eAAR,KAA4BvkB,SAA7B,GAA0C,CAA1C,GAA8CxP,QAAQ+zB,eAA9E;AACA,SAAKC,gBAAL,GAAyBh0B,QAAQi0B,eAAR,KAA4BzkB,SAA7B,GAA0C,GAA1C,GAAgDxP,QAAQi0B,eAAhF;AACA,SAAKC,2BAAL,GAAoCl0B,QAAQm0B,0BAAR,KAAuC3kB,SAAxC,GAAqD,IAArD,GAA4DxP,QAAQm0B,0BAAvG;AACA,SAAKC,8BAAL,GAAuCp0B,QAAQq0B,6BAAR,KAA0C7kB,SAA3C,GAAwD,GAAxD,GAA8DxP,QAAQq0B,6BAA5G;AACA,SAAKC,kBAAL,GAA2Bt0B,QAAQu0B,iBAAR,KAA8B/kB,SAA/B,GAA4C,KAA5C,GAAoDxP,QAAQu0B,iBAAtF;AACA,SAAKC,0BAAL,GAAmCx0B,QAAQy0B,yBAAR,KAAsCjlB,SAAvC,GAAoD,KAAK+kB,iBAAzD,GAA6Ev0B,QAAQy0B,yBAAvH;AACA,SAAKC,uBAAL,GAAgC10B,QAAQ20B,sBAAR,KAAmCnlB,SAApC,GAAiD,IAAjD,GAAwDxP,QAAQ20B,sBAA/F;AACA,SAAKC,SAAL,GAAkB50B,QAAQ60B,QAAR,KAAqBrlB,SAAtB,GAAmC,UAAnC,GAAgDxP,QAAQ60B,QAAzE;AACA,SAAKC,gBAAL,GAAyB90B,QAAQ+0B,eAAR,KAA4BvlB,SAA7B,GAA0C,CAA1C,GAA8CxP,QAAQ+0B,eAA9E;AACA,SAAKC,uBAAL,GAAgCh1B,QAAQi1B,sBAAR,KAAmCzlB,SAApC,GAAiD,KAAjD,GAAyDxP,QAAQi1B,sBAAhG;AACA,SAAKC,qBAAL,GAA8Bl1B,QAAQm1B,oBAAR,KAAiC3lB,SAAlC,GAA+C,CAA/C,GAAmDxP,QAAQm1B,oBAAxF;AACA,SAAKC,4BAAL,GAAqCp1B,QAAQq1B,2BAAR,KAAwC7lB,SAAzC,GAAsD,IAAtD,GAA6DxP,QAAQq1B,2BAAzG;AACA,SAAKC,8BAAL,GAAuCt1B,QAAQu1B,6BAAR,KAA0C/lB,SAA3C,GAAwD,IAAxD,GAA+DxP,QAAQu1B,6BAA7G;AACA,SAAKC,oBAAL,GAA6Bx1B,QAAQy1B,mBAAR,KAAgCjmB,SAAjC,GAA8C,CAA9C,GAAkDxP,QAAQy1B,mBAAtF;AACA,SAAKC,kBAAL,GAA2B11B,QAAQ21B,iBAAR,KAA8BnmB,SAA/B,GAA4C,KAA5C,GAAoDxP,QAAQ21B,iBAAtF;AACA,SAAKC,wBAAL,GAAiC51B,QAAQ61B,uBAAR,KAAoCrmB,SAArC,GAAkD,CAAlD,GAAsDxP,QAAQ61B,uBAA9F;AACA,SAAKC,qBAAL,GAA8B91B,QAAQ+1B,oBAAR,KAAiCvmB,SAAlC,GAA+C,CAA/C,GAAmDxP,QAAQ+1B,oBAAxF;AACA,SAAKC,4BAAL,GAAqCh2B,QAAQi2B,2BAAR,KAAwCzmB,SAAzC,GAAsD,KAAtD,GAA8DxP,QAAQi2B,2BAA1G;AACA,SAAKC,8BAAL,GAAuCl2B,QAAQm2B,6BAAR,KAA0C3mB,SAA3C,GAAwD,CAAxD,GAA4DxP,QAAQm2B,6BAA1G;AACA,SAAKC,iBAAL,GAA0Bp2B,QAAQq2B,gBAAR,KAA6B7mB,SAA9B,GAA2C,CAAC,CAA5C,GAAgDxP,QAAQq2B,gBAAjF;AACA,SAAKC,eAAL,GAAwBt2B,QAAQu2B,cAAR,KAA2B/mB,SAA5B,GAAyC,CAAC,CAA1C,GAA8CxP,QAAQu2B,cAA7E;AACA,SAAKC,qBAAL,GAA8Bx2B,QAAQy2B,oBAAR,KAAiCjnB,SAAlC,GAA+C,CAAC,CAAhD,GAAoDxP,QAAQy2B,oBAAzF;AACA,SAAKC,cAAL,GAAuB12B,QAAQ22B,aAAR,KAA0BnnB,SAA3B,GAAwC,CAAC,CAAzC,GAA6CxP,QAAQ22B,aAA3E;AACA,SAAKC,wBAAL,GAAiC52B,QAAQ62B,uBAAR,KAAoCrnB,SAArC,GAAkD,KAAlD,GAA0DxP,QAAQ62B,uBAAlG;AACA,SAAKC,cAAL,GAAuB92B,QAAQ+2B,aAAR,KAA0BvnB,SAA3B,GAAwC,IAAxC,GAA+CxP,QAAQ+2B,aAA7E;AACA,SAAKC,SAAL,GAAkBh3B,QAAQi3B,QAAR,KAAqBznB,SAAtB,GAAmC,KAAnC,GAA2CxP,QAAQi3B,QAApE;AACA,SAAKC,UAAL,GAAmBl3B,QAAQm3B,SAAR,KAAsB3nB,SAAvB,GAAoC,KAApC,GAA4CxP,QAAQm3B,SAAtE;AACA,SAAKC,QAAL,GAAiBp3B,QAAQq3B,OAAR,KAAoB7nB,SAArB,GAAkC,IAAlC,GAAyCxP,QAAQq3B,OAAjE;AACA,SAAKC,SAAL,GAAkBt3B,QAAQu3B,QAAR,KAAqB/nB,SAAtB,GAAmC,IAAnC,GAA0CxP,QAAQu3B,QAAnE;AACA,SAAKC,kBAAL,GAA2Bx3B,QAAQy3B,iBAAR,KAA8BjoB,SAA/B,GAA4C,EAA5C,GAAiDxP,QAAQy3B,iBAAnF;AACD,G;;oBAEDlH,a,4BAAgB;AAAA;;AACd,uBAAS/rB,EAAT,CAAY,KAAKsN,GAAL,GAAW,aAAvB,EAAsC;AAAA,aAAM,OAAK0e,UAAL,EAAN;AAAA,KAAtC;AACA,uBAAShsB,EAAT,CAAY,KAAKsN,GAAL,GAAW,aAAvB,EAAsC,UAAC4lB,WAAD;AAAA,aAAiB,OAAK5G,WAAL,CAAiB4G,WAAjB,CAAjB;AAAA,KAAtC;AACA,uBAASlzB,EAAT,CAAY,KAAKsN,GAAL,GAAW,gBAAvB,EAAyC,UAAC8P,KAAD;AAAA,aAAW,OAAK+V,iBAAL,CAAuB/V,KAAvB,CAAX;AAAA,KAAzC;AACA,uBAASpd,EAAT,CAAY,KAAKsN,GAAL,GAAW,eAAvB,EAAwC,UAAC/P,KAAD;AAAA,aAAW,OAAK61B,aAAL,CAAmB71B,KAAnB,CAAX;AAAA,KAAxC;AACA,uBAASyC,EAAT,CAAY,KAAKsN,GAAL,GAAW,QAAvB,EAAiC,UAAClQ,IAAD,EAAOi2B,GAAP,EAAYr1B,OAAZ;AAAA,aAAwB,OAAKs1B,mBAAL,CAAyBl2B,IAAzB,EAA+Bi2B,GAA/B,EAAoCr1B,OAApC,CAAxB;AAAA,KAAjC;AACA,uBAASgC,EAAT,CAAY,KAAKsN,GAAL,GAAW,iBAAvB,EAAyC,UAACimB,WAAD;AAAA,aAAiB,OAAKC,iBAAL,CAAuBD,WAAvB,CAAjB;AAAA,KAAzC;AACA,uBAASvzB,EAAT,CAAY,KAAKsN,GAAL,GAAW,eAAvB,EAAwC,UAAC/P,KAAD;AAAA,aAAW,OAAKk2B,eAAL,CAAqBl2B,KAArB,CAAX;AAAA,KAAxC;AACD,G;;oBAEDtB,a,4BAAgB;AACd,iCAAMA,aAAN;AACA,uBAASoE,GAAT,CAAa,KAAKiN,GAAL,GAAW,aAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,aAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,gBAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,eAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,gBAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,iBAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,iBAAxB;AACA,uBAASjN,GAAT,CAAa,KAAKiN,GAAL,GAAW,eAAxB;AACD,G;;oBAED0e,U,yBAAa;AAAA;;AACX,QAAI,KAAK/d,EAAL,CAAQylB,UAAZ,EAAwB;AACtB,WAAKzlB,EAAL,CAAQsL,KAAR,GAAgB,MAAhB;AACA,WAAKtL,EAAL,CAAQuL,MAAR,GAAiB,MAAjB;AACA,WAAKsS,aAAL,GAAqB,IAArB;AACA,WAAK6H,UAAL,GAAkB,KAAlB;AACA,WAAKrI,aAAL,GAAqB,MAArB;AACA,WAAKsI,iBAAL;AACA,WAAKC,mBAAL;AACA,UAAI,KAAKpI,SAAL,IAAkB,KAAKqI,2BAA3B,EACE,KAAKlrB,IAAL;;AAEF,WAAKjI,OAAL,CAAa,iBAAO0C,cAApB,EAAoC,KAAKpG,IAAzC;AACD,KAZD,MAYO;AACL,WAAK82B,kBAAL,GAA0B,KAAKA,kBAAL,IAA2B,CAArD;AACA,UAAI,EAAE,KAAKA,kBAAP,IAA6B3I,YAAjC,EAA+C;AAC7CnX,mBAAW;AAAA,iBAAM,OAAK+X,UAAL,EAAN;AAAA,SAAX,EAAoC,EAApC;AACD,OAFD,MAEO;AACL,YAAMgI,iBAAiB,KAAKr3B,WAAL,CAAiB;AACtCS,gBAAM,yCADgC;AAEtCE,uBAAgB,KAAKL,IAArB,2CAFsC;AAGtCM,iBAAO,gBAAYC,MAAZ,CAAmBC,KAHY;AAItCC,eAAK;AAJiC,SAAjB,CAAvB;AAMA,aAAKiD,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACD;AACF;AACF,G;;oBAEDJ,iB,gCAAoB;AAClB,SAAK3lB,EAAL,CAAQgmB,sBAAR,CAA+B,KAAKzF,cAApC;AACA,SAAKvgB,EAAL,CAAQimB,wBAAR,CAAiC,KAAKxF,gBAAtC;AACA,SAAKzgB,EAAL,CAAQkmB,4BAAR,CAAqC,KAAKvF,oBAA1C;AACA,SAAK3gB,EAAL,CAAQmmB,wBAAR,CAAiC,KAAKtF,gBAAtC;AACA,SAAK7gB,EAAL,CAAQomB,+BAAR,CAAwC,KAAKrF,uBAA7C;AACA,SAAK/gB,EAAL,CAAQqmB,wBAAR,CAAiC,KAAKpF,gBAAtC;AACA,SAAKjhB,EAAL,CAAQsmB,4BAAR,CAAqC,KAAKnF,oBAA1C;AACA,SAAKnhB,EAAL,CAAQumB,wBAAR,CAAiC,KAAKlF,gBAAtC;AACA,SAAKrhB,EAAL,CAAQwmB,wBAAR,CAAiC,KAAKjF,gBAAtC;AACA,SAAKvhB,EAAL,CAAQymB,mCAAR,CAA4C,KAAKhF,2BAAjD;AACA,SAAKzhB,EAAL,CAAQ0mB,sCAAR,CAA+C,KAAK/E,8BAApD;AACA,SAAK3hB,EAAL,CAAQ2mB,0BAAR,CAAmC,KAAK9E,kBAAxC;AACA,SAAK7hB,EAAL,CAAQ4mB,kCAAR,CAA2C,KAAK7E,0BAAhD;AACA,SAAK/hB,EAAL,CAAQ6mB,+BAAR,CAAwC,KAAK5E,uBAA7C;AACA,SAAKjiB,EAAL,CAAQ8mB,iBAAR,CAA0B,KAAK3E,SAA/B;AACA,SAAKniB,EAAL,CAAQ+mB,wBAAR,CAAiC,KAAK1E,gBAAtC;AACA,SAAKriB,EAAL,CAAQgnB,+BAAR,CAAwC,KAAKzE,uBAA7C;AACA,SAAKviB,EAAL,CAAQinB,6BAAR,CAAsC,KAAKxE,qBAA3C;AACA,SAAKziB,EAAL,CAAQknB,oCAAR,CAA6C,KAAKvE,4BAAlD;AACA,SAAK3iB,EAAL,CAAQmnB,sCAAR,CAA+C,KAAKtE,8BAApD;AACA,SAAK7iB,EAAL,CAAQonB,4BAAR,CAAqC,KAAKrE,oBAA1C;AACA,SAAK/iB,EAAL,CAAQqnB,0BAAR,CAAmC,KAAKpE,kBAAxC;AACA,SAAKjjB,EAAL,CAAQsnB,gCAAR,CAAyC,KAAKnE,wBAA9C;AACA,SAAKnjB,EAAL,CAAQunB,6BAAR,CAAsC,KAAKlE,qBAA3C;AACA,SAAKrjB,EAAL,CAAQwnB,oCAAR,CAA6C,KAAKjE,4BAAlD;AACA,SAAKvjB,EAAL,CAAQynB,sCAAR,CAA+C,KAAKhE,8BAApD;AACA,SAAKzjB,EAAL,CAAQ0nB,yBAAR,CAAkC,KAAK/D,iBAAvC;AACA,SAAK3jB,EAAL,CAAQ2nB,uBAAR,CAAgC,KAAK9D,eAArC;AACA,SAAK7jB,EAAL,CAAQ4nB,6BAAR,CAAsC,KAAK7D,qBAA3C;AACA,SAAK/jB,EAAL,CAAQ6nB,sBAAR,CAA+B,KAAK5D,cAApC;AACA,SAAKjkB,EAAL,CAAQ8nB,gCAAR,CAAyC,KAAK3D,wBAA9C;AACA,SAAKnkB,EAAL,CAAQ+nB,gBAAR,CAAyB,KAAK1D,cAA9B;AACA,SAAKrkB,EAAL,CAAQgoB,iBAAR,CAA0B,KAAKzD,SAA/B;AACA,SAAKvkB,EAAL,CAAQioB,kBAAR,CAA2B,KAAKxD,UAAhC;AACA,SAAKzkB,EAAL,CAAQkoB,gBAAR,CAAyB,KAAKvD,QAA9B;AACA,SAAK3kB,EAAL,CAAQmoB,iBAAR,CAA0B,KAAKtD,SAA/B;AACD,G;;oBAEDuD,gB,6BAAiB5H,a,EAAe;AAC9B,SAAKD,cAAL,GAAsBC,aAAtB;AACA,SAAKxgB,EAAL,CAAQgmB,sBAAR,CAA+B,KAAKzF,cAApC;AACD,G;;oBAED8H,kB,+BAAmB3H,e,EAAiB;AAClC,SAAKD,gBAAL,GAAwBC,eAAxB;AACA,SAAK1gB,EAAL,CAAQimB,wBAAR,CAAiC,KAAKxF,gBAAtC;AACD,G;;oBAED6H,sB,mCAAuB1H,mB,EAAqB;AAC1C,SAAKD,oBAAL,GAA4BC,mBAA5B;AACA,SAAK5gB,EAAL,CAAQkmB,4BAAR,CAAqC,KAAKvF,oBAA1C;AACD,G;;oBAED4H,qB,kCAAsBzH,e,EAAiB;AACrC,SAAKD,gBAAL,GAAwBC,eAAxB;AACA,SAAK9gB,EAAL,CAAQmmB,wBAAR,CAAiC,KAAKtF,gBAAtC;AACD,G;;oBAED2H,yB,sCAA0BxH,sB,EAAwB;AAChD,SAAKD,uBAAL,GAA+BC,sBAA/B;AACA,SAAKhhB,EAAL,CAAQomB,+BAAR,CAAwC,KAAKrF,uBAA7C;AACD,G;;oBAED0H,kB,+BAAmBvH,e,EAAiB;AAClC,SAAKD,gBAAL,GAAwBC,eAAxB;AACA,SAAKlhB,EAAL,CAAQqmB,wBAAR,CAAiC,KAAKpF,gBAAtC;AACD,G;;oBAEDyH,sB,mCAAuBtH,mB,EAAqB;AAC1C,SAAKD,oBAAL,GAA4BC,mBAA5B;AACA,SAAKphB,EAAL,CAAQsmB,4BAAR,CAAqC,KAAKnF,oBAA1C;AACD,G;;oBAEDwH,kB,+BAAmBrH,e,EAAiB;AAClC,SAAKD,gBAAL,GAAwBC,eAAxB;AACA,SAAKthB,EAAL,CAAQumB,wBAAR,CAAiC,KAAKlF,gBAAtC;AACD,G;;oBAEDuH,kB,+BAAmBpH,e,EAAiB;AAClC,SAAKD,gBAAL,GAAwBC,eAAxB;AACA,SAAKxhB,EAAL,CAAQwmB,wBAAR,CAAiC,KAAKjF,gBAAtC;AACD,G;;oBAEDsH,6B,0CAA8BnH,0B,EAA4B;AACxD,SAAKD,2BAAL,GAAmCC,0BAAnC;AACA,SAAK1hB,EAAL,CAAQymB,mCAAR,CAA4C,KAAKhF,2BAAjD;AACD,G;;oBAEDqH,gC,6CAAiClH,6B,EAA+B;AAC9D,SAAKD,8BAAL,GAAsCC,6BAAtC;AACA,SAAK5hB,EAAL,CAAQ0mB,sCAAR,CAA+C,KAAK/E,8BAApD;AACD,G;;oBAEDoH,oB,iCAAqBjH,iB,EAAmB;AACtC,SAAKD,kBAAL,GAA0BC,iBAA1B;AACA,SAAK9hB,EAAL,CAAQ2mB,0BAAR,CAAmC,KAAK9E,kBAAxC;AACD,G;;oBAEDmH,4B,yCAA6BhH,yB,EAA2B;AACtD,SAAKD,0BAAL,GAAkCC,yBAAlC;AACA,SAAKhiB,EAAL,CAAQ4mB,kCAAR,CAA2C,KAAK7E,0BAAhD;AACD,G;;oBAEDkH,yB,sCAA0B/G,sB,EAAwB;AAChD,SAAKD,uBAAL,GAA+BC,sBAA/B;AACA,SAAKliB,EAAL,CAAQ6mB,+BAAR,CAAwC,KAAK5E,uBAA7C;AACD,G;;oBAEDiH,W,wBAAY9G,Q,EAAU;AACpB,SAAKD,SAAL,GAAiBC,QAAjB;AACA,SAAKpiB,EAAL,CAAQ8mB,iBAAR,CAA0B,KAAK3E,SAA/B;AACD,G;;oBAEDgH,kB,+BAAmB7G,e,EAAiB;AAClC,SAAKD,gBAAL,GAAwBC,eAAxB;AACA,SAAKtiB,EAAL,CAAQ+mB,wBAAR,CAAiC,KAAK1E,gBAAtC;AACD,G;;oBAED+G,yB,sCAA0B5G,sB,EAAwB;AAChD,SAAKD,uBAAL,GAA+BC,sBAA/B;AACA,SAAKxiB,EAAL,CAAQgnB,+BAAR,CAAwC,KAAKzE,uBAA7C;AACD,G;;oBAED8G,uB,oCAAwB3G,oB,EAAsB;AAC5C,SAAKD,qBAAL,GAA6BC,oBAA7B;AACA,SAAK1iB,EAAL,CAAQinB,6BAAR,CAAsC,KAAKxE,qBAA3C;AACD,G;;oBAED6G,8B,2CAA+B1G,2B,EAA6B;AAC1D,SAAKD,4BAAL,GAAoCC,2BAApC;AACA,SAAK5iB,EAAL,CAAQknB,oCAAR,CAA6C,KAAKvE,4BAAlD;AACD,G;;oBAED4G,gC,6CAAiCzG,6B,EAA+B;AAC9D,SAAKD,8BAAL,GAAsCC,6BAAtC;AACA,SAAK9iB,EAAL,CAAQmnB,sCAAR,CAA+C,KAAKtE,8BAApD;AACD,G;;oBAED2G,sB,mCAAuBxG,mB,EAAqB;AAC1C,SAAKD,oBAAL,GAA4BC,mBAA5B;AACA,SAAKhjB,EAAL,CAAQonB,4BAAR,CAAqC,KAAKrE,oBAA1C;AACD,G;;oBAED0G,oB,iCAAqBvG,iB,EAAmB;AACtC,SAAKD,kBAAL,GAA0BC,iBAA1B;AACA,SAAKljB,EAAL,CAAQqnB,0BAAR,CAAmC,KAAKpE,kBAAxC;AACD,G;;oBAEDyG,0B,uCAA2BtG,uB,EAAyB;AAClD,SAAKD,wBAAL,GAAgCC,uBAAhC;AACA,SAAKpjB,EAAL,CAAQsnB,gCAAR,CAAyC,KAAKnE,wBAA9C;AACD,G;;oBAEDwG,uB,oCAAwBrG,oB,EAAsB;AAC5C,SAAKD,qBAAL,GAA6BC,oBAA7B;AACA,SAAKtjB,EAAL,CAAQunB,6BAAR,CAAsC,KAAKlE,qBAA3C;AACD,G;;oBAEDuG,8B,2CAA+BpG,2B,EAA6B;AAC1D,SAAKD,4BAAL,GAAoCC,2BAApC;AACA,SAAKxjB,EAAL,CAAQwnB,oCAAR,CAA6C,KAAKjE,4BAAlD;AACD,G;;oBAEDsG,gC,6CAAiCnG,6B,EAA+B;AAC9D,SAAKD,8BAAL,GAAsCC,6BAAtC;AACA,SAAK1jB,EAAL,CAAQynB,sCAAR,CAA+C,KAAKhE,8BAApD;AACD,G;;oBAEDqG,mB,gCAAoBlG,gB,EAAkB;AACpC,SAAKD,iBAAL,GAAyBC,gBAAzB;AACA,SAAK5jB,EAAL,CAAQ0nB,yBAAR,CAAkC,KAAK/D,iBAAvC;AACD,G;;oBAEDoG,iB,8BAAkBjG,c,EAAgB;AAChC,SAAKD,eAAL,GAAuBC,cAAvB;AACA,SAAK9jB,EAAL,CAAQ2nB,uBAAR,CAAgC,KAAK9D,eAArC;AACD,G;;oBAEDmG,uB,oCAAwBhG,oB,EAAsB;AAC5C,SAAKD,qBAAL,GAA6BC,oBAA7B;AACA,SAAKhkB,EAAL,CAAQ4nB,6BAAR,CAAsC,KAAK7D,qBAA3C;AACD,G;;oBAEDkG,gB,6BAAiB/F,a,EAAe;AAC9B,SAAKD,cAAL,GAAsBC,aAAtB;AACA,SAAKlkB,EAAL,CAAQ6nB,sBAAR,CAA+B,KAAK5D,cAApC;AACD,G;;oBAEDiG,0B,uCAA2B9F,uB,EAAyB;AAClD,SAAKD,wBAAL,GAAgCC,uBAAhC;AACA,SAAKpkB,EAAL,CAAQ8nB,gCAAR,CAAyC,KAAK3D,wBAA9C;AACD,G;;oBAEDgG,a,0BAAc7F,a,EAAe;AAC3B,SAAKD,cAAL,GAAsBC,aAAtB;AACA,SAAKtkB,EAAL,CAAQ+nB,gBAAR,CAAyB,KAAK1D,cAA9B;AACD,G;;oBAED+F,W,wBAAY5F,Q,EAAU;AACpB,SAAKD,SAAL,GAAiBC,QAAjB;AACA,SAAKxkB,EAAL,CAAQgoB,iBAAR,CAA0B,KAAKzD,SAA/B;AACD,G;;oBAED8F,Y,yBAAa3F,S,EAAW;AACtB,SAAKD,UAAL,GAAkBC,SAAlB;AACA,SAAK1kB,EAAL,CAAQioB,kBAAR,CAA2B,KAAKxD,UAAhC;AACD,G;;oBAED6F,U,uBAAW1F,O,EAAS;AAClB,SAAKD,QAAL,GAAgBC,OAAhB;AACA,SAAK5kB,EAAL,CAAQkoB,gBAAR,CAAyB,KAAKvD,QAA9B;AACD,G;;oBAED4F,W,wBAAYzF,Q,EAAU;AACpB,SAAKD,SAAL,GAAiBC,QAAjB;AACA,SAAK9kB,EAAL,CAAQmoB,iBAAR,CAA0B,KAAKtD,SAA/B;AACD,G;;oBAEDM,a,0BAAc71B,K,EAAO;AACnB,QAAMk7B,eAAe,KAAKxqB,EAAL,CAAQyqB,SAAR,GAAoBn7B,KAApB,CAArB;AACA,QAAIk7B,YAAJ,EAAkB;AAChB,WAAKtK,cAAL,GAAuBsK,aAAajf,MAAb,IAAuB,GAAvB,IAA+Bif,aAAaE,OAAb,GAAuB,IAAxB,IAAiC,IAAtF;AACA,WAAKh4B,OAAL,CAAa,iBAAO+C,6BAApB,EAAmD,KAAKyqB,cAAxD;;AAEA,UAAI,CAAC,KAAKL,OAAN,IAAiB,KAAKA,OAAL,CAAa7uB,MAAb,KAAwB,CAA7C,EAAgD,KAAK25B,WAAL;;AAEhD,WAAKj4B,OAAL,CAAa,iBAAOgD,gBAApB,EAAsC;AACpC6V,gBAAQif,aAAajf,MADe;AAEpCD,eAAOkf,aAAalf,KAFgB;AAGpCsf,mBAAWJ,aAAaE,OAHY;AAIpCA,iBAASF,aAAaE,OAJc;AAKpCp7B,eAAOA;AAL6B,OAAtC;AAOA,WAAKoD,OAAL,CAAa,iBAAOmD,yBAApB;AACD;AACF,G;;oBAEDwoB,W,wBAAY4G,W,EAAa;AACvB,QAAI,KAAK5H,aAAL,KAAuB,MAA3B,EACE;;AAGF,QAAMtN,WAAW,KAAK8a,kBAAL,CAAwB5F,YAAYlV,QAApC,CAAjB;AACA,QAAI+a,WAAWC,KAAKC,GAAL,CAASD,KAAKE,GAAL,CAAShG,YAAY6F,QAArB,EAA+B,CAA/B,CAAT,EAA4C/a,QAA5C,CAAf;AACA,QAAMmb,oBAAoB,KAAKC,WAA/B;AACA,QAAMC,eAAgB,KAAK9K,aAAL,KAAuB,mBAASjkB,IAAtD;AACA,SAAK8uB,WAAL,GAAoBC,gBAAgBrb,WAAW,KAAKgV,kBAApD;;AAEA,QAAIhV,aAAa,GAAb,IAAoBqb,iBAAiBruB,SAAzC,EACE;;AAGF,QAAI,KAAKouB,WAAL,KAAqBD,iBAAzB,EAA4C;AAC1C,WAAKG,eAAL;AACA,WAAK34B,OAAL,CAAa,iBAAO6C,uBAApB,EAA6C,KAAKvG,IAAlD;AACD;;AAED,QAAIo8B,gBAAgB,CAAC,KAAKD,WAA1B,EACEL,WAAW/a,QAAX;;AAEF,SAAKrd,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS2a,QAAX,EAAqBvM,OAAOxO,QAA5B,EAAzC,EAAiF,KAAK/gB,IAAtF;AACD,G;;oBAED2L,I,mBAAO;AACL,SAAKjI,OAAL,CAAa,iBAAOyD,oBAApB;AACA,QAAI,KAAKknB,aAAL,KAAuB,QAA3B,EACE,KAAKrd,EAAL,CAAQmf,YAAR,GADF,KAEK,IAAI,CAAC,KAAKuG,UAAN,IAAoB,KAAKrI,aAAL,KAAuB,SAA/C,EACH,KAAKY,UAAL,GADG,KAGH,KAAKje,EAAL,CAAQge,UAAR;AAEH,G;;oBAED3iB,e,8BAAkB;AAChB,WAAO,KAAKilB,aAAL,GAAoB,KAAKA,aAAzB,GAAwC,IAA/C;AACD,G;;oBAEDtQ,c,6BAAiB;AACf,WAAO,KAAKhQ,EAAL,CAAQse,WAAR,EAAP;AACD,G;;oBAEDgN,oB,mCAAuB;AACrB,WAAO,KAAKxL,aAAZ;AACD,G;;oBAEDyL,e,8BAAkB;AAChB,WAAO,KAAKC,MAAL,CAAY,KAAKhB,YAAjB,CAAP;AACD,G;;oBAEDiB,iB,gCAAoB;AAClB,WAAO,KAAKD,MAAL,CAAY,KAAKhB,YAAjB,EAA+BE,OAAtC;AACD,G;;oBAEDgB,e,4BAAgBp8B,K,EAAO;AACrB,SAAKk7B,YAAL,GAAoBl7B,KAApB;AACD,G;;oBAEDiM,qB,oCAAwB;AACtB,WAAO,KAAK2kB,cAAZ;AACD,G;;oBAEDuK,S,wBAAY;AACV,WAAO,KAAKe,MAAZ;AACD,G;;oBAEDtG,iB,8BAAkB/V,K,EAAO;AACvB,QAAI,CAAC,mBAAD,EAAsB,kBAAtB,EAA0CxI,OAA1C,CAAkDwI,KAAlD,KAA4D,CAAhE,EAAoE;AAClE,WAAKmO,eAAL,GAAuB,IAAvB;AACA,WAAK5qB,OAAL,CAAa,iBAAO2C,kBAApB,EAAwC,KAAKrG,IAA7C;AACA,WAAK28B,mBAAL,CAAyBxc,KAAzB;AACD,KAJD,MAIO,IAAI,CAAC,SAAD,EAAY,QAAZ,EAAsBxI,OAAtB,CAA8BwI,KAA9B,KAAwC,CAA5C,EAA+C;AACpD,UAAI,CAAC,mBAAD,EAAsB,kBAAtB,EAA0C,MAA1C,EAAkDxI,OAAlD,CAA0D,KAAK0W,aAA/D,KAAiF,CAArF,EAAwF;AACtF,aAAKC,eAAL,GAAuB,KAAvB;AACA,aAAK5qB,OAAL,CAAa,iBAAO4C,mBAApB,EAAyC,KAAKtG,IAA9C;AACD;AACD,WAAK28B,mBAAL,CAAyBxc,KAAzB;AACD,KANM,MAMA,IAAIA,UAAU,MAAd,EAAsB;AAC3B,WAAKuW,UAAL,GAAkB,KAAlB;AACA,UAAI,KAAKvF,KAAL,IAAc,CAAC,mBAAD,EAAsB,SAAtB,EAAiCxZ,OAAjC,CAAyC,KAAK0W,aAA9C,KAAgE,CAAlF,EAAqF;AACnF,aAAK1iB,IAAL;AACA,aAAKG,IAAL,CAAU,CAAV;AACD,OAHD,MAGO;AACL,aAAK6wB,mBAAL,CAAyBxc,KAAzB;AACA,aAAK6Q,SAAL,GAAiB,IAAjB;AACA,aAAKttB,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,CAAX,EAAcoO,OAAO,KAAKpjB,WAAL,EAArB,EAAzC,EAAoF,KAAKnM,IAAzF;AACA,aAAK0D,OAAL,CAAa,iBAAOwD,cAApB,EAAoC,KAAKlH,IAAzC;AACD;AACF;AACF,G;;oBAED28B,mB,gCAAoBxc,K,EAAO;AACzB,SAAKkO,aAAL,GAAqBlO,KAArB;AACA,QAAIA,UAAU,MAAd,EACE,KAAK6Q,SAAL,GAAiB,KAAjB;;AAEF,SAAK4F,mBAAL;AACA,QAAIzW,UAAU,SAAd,EACE,KAAKzc,OAAL,CAAa,iBAAO0D,aAApB,EAAmC,KAAKpH,IAAxC,EADF,KAEK,IAAImgB,UAAU,QAAd,EACH,KAAKzc,OAAL,CAAa,iBAAO2D,cAApB,EAAoC,KAAKrH,IAAzC;AAEH,G;;oBAED42B,mB,kCAAsB;AACpB,SAAKtF,aAAL,GAAqB,KAAKtgB,EAAL,CAAQ4rB,OAAR,EAArB;AACA,QAAI,KAAKtL,aAAT,EAAwB;AACtB,WAAKA,aAAL,GAAqB,KAAKA,aAAL,CAAmB7sB,WAAnB,EAArB;AACA,UAAI,KAAK6sB,aAAL,KAAuB,mBAASnkB,GAApC,EACE,KAAK0vB,uBAAL,GADF,KAGE,KAAKC,sBAAL;AAEH;AACD,SAAKp5B,OAAL,CAAa,iBAAOoD,sBAApB,EAA4C,EAAEzH,MAAM,KAAKiyB,aAAb,EAA5C;AACD,G;;oBAEDuL,uB,sCAA0B;AACxB,QAAI,CAAC,KAAKE,kBAAV,EACE,KAAKA,kBAAL,GAA0B,IAA1B;AAEH,G;;oBAEDD,sB,qCAAyB;AACvB,SAAKC,kBAAL,GAA0B,KAA1B;AACD,G;;oBAEDxG,iB,8BAAkBD,W,EAAa;AAC7B,SAAK5yB,OAAL,CAAa,iBAAOiE,wBAApB,EAA8C2uB,WAA9C;AACA,QAAI,KAAKyG,kBAAL,IAA2B,KAAK/b,cAAL,EAA/B,EAAsD;AACpD,UAAMgc,WAAW,KAAKhc,cAAL,KAAwB,KAAKhQ,EAAL,CAAQisB,eAAR,EAAzC;AACA,WAAKv5B,OAAL,CAAa,iBAAOwC,iBAApB,EAAuC;AACrC0pB,eAAO,KAAK5O,cAAL,EAD8B;AAErCG,iBAAS6b,QAF4B;AAGrCzN,eAAO,KAAKve,EAAL,CAAQ7E,WAAR;AAH8B,OAAvC;AAKD;AACF,G;;oBAEDqqB,e,8BAAkB;AAChB,SAAKI,mBAAL;AACD,G;;oBAED3H,U,yBAAa;AAAA;;AACX,SAAK4H,2BAAL,GAAmC,IAAnC;AACA,QAAI,KAAK7lB,EAAL,CAAQylB,UAAZ,EAAwB;AACtB,yBAAStzB,IAAT,CAAc,KAAKkN,GAAL,GAAW,iBAAzB,EAA4C,UAAC0Q,QAAD,EAAWuV,WAAX;AAAA,eAA2B,OAAK4G,eAAL,CAAqBnc,QAArB,EAA+BuV,WAA/B,CAA3B;AAAA,OAA5C;AACA,WAAKK,iBAAL,GAFsB,CAEG;AACzB,WAAK3lB,EAAL,CAAQylB,UAAR,CAAmB,KAAKlI,IAAxB;AACA,WAAKmI,UAAL,GAAkB,IAAlB;AACD;AACF,G;;oBAEDlqB,M,mBAAO7H,K,EAAO;AAAA;;AACZ,QAAI,KAAK6Z,OAAT,EACE,KAAKxN,EAAL,CAAQof,YAAR,CAAqBzrB,KAArB,EADF,KAGE,KAAKO,YAAL,CAAkB,IAAlB,EAAwB,iBAAOoB,mBAA/B,EAAoD;AAAA,aAAM,OAAKkG,MAAL,CAAY7H,KAAZ,CAAN;AAAA,KAApD;AAEH,G;;oBAEDiH,K,oBAAQ;AACN,QAAI,KAAK0lB,aAAL,KAAuB,mBAASjkB,IAAhC,IAAwC,KAAK8uB,WAAjD,EAA8D;AAC5D,WAAKnrB,EAAL,CAAQqf,WAAR;AACA,UAAI,KAAKiB,aAAL,KAAuB,mBAASjkB,IAAhC,IAAwC,KAAK8uB,WAAjD,EACE,KAAKgB,UAAL,CAAgB,IAAhB;AAEH;AACF,G;;oBAEDtxB,I,mBAAO;AACL,SAAK6qB,UAAL,GAAkB,KAAlB;AACA,SAAK1lB,EAAL,CAAQsf,UAAR;AACA,SAAK5sB,OAAL,CAAa,iBAAO8D,aAApB;AACA,SAAK9D,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,CAAX,EAAcoO,OAAO,CAArB,EAAzC,EAAmE,KAAKvvB,IAAxE;AACD,G;;oBAEDoM,S,wBAAY;AACV,QAAI,KAAKiiB,aAAT,EACE,OAAO,CAAC,CAAE,KAAKA,aAAL,CAAmBnf,KAAnB,CAAyB,UAAzB,CAAV;;AAEF,WAAO,KAAP;AACD,G;;oBAMD/C,W,0BAAc;AACZ,WAAO,KAAK0vB,kBAAL,CAAwB,KAAK7qB,EAAL,CAAQ7E,WAAR,EAAxB,CAAP;AACD,G;;oBAED0vB,kB,+BAAmB9a,Q,EAAU;AAC3B,QAAI,KAAKuQ,aAAL,KAAuB,mBAASjkB,IAApC,EAA0C;AACxC;AACA0T,iBAAWgb,KAAKE,GAAL,CAAS,CAAT,EAAYlb,WAAW,EAAvB,CAAX;AACD;AACD,WAAOA,QAAP;AACD,G;;oBAED/U,c,2BAAeC,U,EAAY;AACzB,QAAM8U,WAAW,KAAK/P,EAAL,CAAQ7E,WAAR,EAAjB;AACA,QAAIJ,OAAO,CAAX;AACA,QAAIE,aAAa,CAAjB,EACEF,OAAOgV,WAAW9U,UAAX,GAAwB,GAA/B;;AAEF,SAAKH,IAAL,CAAUC,IAAV;AACD,G;;oBAEDD,I,iBAAKC,I,EAAM;AACT,QAAMgV,WAAW,KAAK5U,WAAL,EAAjB;AACA,QAAI,KAAKmlB,aAAL,KAAuB,mBAASjkB,IAApC,EAA0C;AACxC;AACA,UAAM+S,WAAWW,WAAWhV,IAAX,GAAkB,CAAnC;AACA,WAAKoxB,UAAL,CAAgB/c,QAAhB;AACD;AACD,SAAKpP,EAAL,CAAQuf,UAAR,CAAmBxkB,IAAnB;AACA,SAAKrI,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAASpV,IAAX,EAAiBwjB,OAAOxO,QAAxB,EAAzC,EAA6E,KAAK/gB,IAAlF;AACD,G;;oBAEDm9B,U,uBAAW/c,Q,EAAU;AACnB,QAAMgd,mBAAmB,CAAC,CAAC,KAAKC,SAAhC;AACA,SAAKA,SAAL,GAAiBjd,QAAjB;AACA,QAAI,KAAKid,SAAL,KAAmBD,gBAAvB,EAAyC;AACvC,WAAKf,eAAL;AACA,WAAK34B,OAAL,CAAa,iBAAOqD,YAApB,EAAkC,KAAKs2B,SAAvC;AACA,WAAK35B,OAAL,CAAa,iBAAOgE,kBAApB,EAAwC,EAAE,OAAO,KAAK21B,SAAd,EAAxC;AACD;AACF,G;;oBAEDhH,mB,gCAAoBl2B,I,EAAMi2B,G,EAAKr1B,O,EAAS;AACtC,QAAMpB,QAAQ;AACZQ,gBADY;AAEZE,mBAAaU,OAFD;AAGZT,aAAO,gBAAYC,MAAZ,CAAmBC,KAHd;AAIZC,WAAK,EAAEN,UAAF,EAAQi2B,QAAR,EAAar1B,gBAAb;AAJO,KAAd;AAMA,QAAMg2B,iBAAiB,KAAKr3B,WAAL,CAAiBC,KAAjB,CAAvB;AACA,SAAK+D,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACA,SAAKrzB,OAAL,CAAa,iBAAO8D,aAApB;AACD,G;;oBAED01B,e,4BAAgBnc,Q,EAAUuV,W,EAAa;AACrC,QAAI,KAAKO,2BAAT,EAAsC;AACpC,WAAKA,2BAAL,GAAmC,KAAnC;AACA;AACA;AACA;AACA;AACA,WAAK7lB,EAAL,CAAQge,UAAR;AACD;;AAED,SAAK2M,WAAL;AACA,SAAKj4B,OAAL,CAAa,iBAAO8C,uBAApB,EAA6C,EAAEua,UAAUA,QAAZ,EAAsBzR,MAAMgnB,WAA5B,EAA7C;AACD,G;;oBAEDqF,W,0BAAc;AACZ,QAAMa,SAAS,KAAKxrB,EAAL,CAAQyqB,SAAR,EAAf;AACA,QAAM6B,eAAed,OAAOx6B,MAA5B;AACA,SAAK6uB,OAAL,GAAe,EAAf;;AAEA,SAAK,IAAIjsB,QAAQ,CAAjB,EAAqBA,QAAQ04B,YAA7B,EAA4C14B,OAA5C;AACE,WAAKisB,OAAL,CAAa3tB,IAAb,CAAkB,EAAEgB,IAAIU,KAAN,EAAa24B,OAAUf,OAAO53B,KAAP,EAAc2X,MAAxB,MAAb,EAAgDjc,OAAOk8B,OAAO53B,KAAP,CAAvD,EAAlB;AADF,KAGA,KAAKlB,OAAL,CAAa,iBAAOiD,yBAApB,EAA+C,KAAKkqB,OAApD;AACD,G;;oBAED5xB,O,sBAAU;AACR,SAAKD,aAAL;AACA,SAAK+Q,GAAL,CAAS/L,MAAT;AACD,G;;oBAEDq4B,e,8BAAkB;AAChB,SAAK5wB,QAAL,GAAgB,sBAAEtM,MAAF,CAAS,EAAT,EAAa,KAAKkyB,gBAAlB,CAAhB;AACA,QAAI,KAAKC,aAAL,KAAuB,mBAASnkB,GAAhC,IAAuC,KAAKkwB,SAAhD,EAA2D;AACzD,WAAK5xB,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB;AACA,WAAKjjB,QAAL,CAAcmjB,WAAd,GAA4B,IAA5B;AACD,KAHD,MAGO,IAAI,KAAKuN,WAAT,EAAsB;AAC3B,WAAK1wB,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,CAArB;AACA,WAAKjjB,QAAL,CAAcmjB,WAAd,GAA4B,IAA5B;AACD,KAHM,MAGA;AAAE,WAAKnjB,QAAL,CAAcmjB,WAAd,GAA4B,KAA5B;AAAmC;AAE7C,G;;oBAMD4O,gB,+BAAmB;AAAA;;AACjB,QAAI,CAAC9nB,OAAO+nB,MAAZ,EACE/nB,OAAO+nB,MAAP,GAAgB,EAAhB;;AAEF,QAAI,CAAC/nB,OAAO+nB,MAAP,CAAcC,gBAAnB,EACEhoB,OAAO+nB,MAAP,CAAcC,gBAAd,GAAiC,EAAjC;;AAEF,SAAKC,aAAL,GAAqB,6BAAc,KAAKttB,GAAnB,CAArB;AACAqF,WAAO+nB,MAAP,CAAcC,gBAAd,CAA+B,KAAKrtB,GAApC,IAA2C,UAACjM,SAAD,EAAYjC,IAAZ,EAAqB;AAC9D,aAAKw7B,aAAL,CAAmBv5B,SAAnB,EAA8B3C,KAA9B,CAAoC,OAAKk8B,aAAzC,EAAwDx7B,IAAxD;AACD,KAFD;AAGD,G;;oBAEDoN,M,qBAAS;AACP,iCAAMA,MAAN;AACA,SAAKiuB,gBAAL;AACA,WAAO,IAAP;AACD,G;;;;wBAzHa;AACZ,aAAO,KAAK3O,aAAZ;AACD;;;wBAkGgB;AACf,aAAO,CAAC,CAAC,KAAKsN,WAAd;AACD;;;;;kBApqBkBpP,O;;;AA0rBrBA,QAAQ/f,OAAR,GAAkB,UAASyjB,QAAT,EAAmBvjB,QAAnB,EAA6B;AAC7C,MAAMyjB,gBAAgBF,SAAS5uB,KAAT,CAAe,GAAf,EAAoB,CAApB,EAAuBqN,KAAvB,CAA6B,WAA7B,KAA6C,EAAnE;AACA,SAAO,kBAAQ6K,QAAR,KACC4W,cAAc3uB,MAAd,GAAuB,CAAvB,IAA4B2uB,cAAc,CAAd,EAAiBlsB,WAAjB,OAAmC,MAAhE,IACCyI,aAAa,uBADd,IACyCA,aAAa,+BAFtD,CAAP;AAGD,CALD;;;;;;;;;;;;;;;;;;;;;;;AC7sBA;;;;;;IAEqB0wB,S;AACnB,qBAAYC,UAAZ,EAAwB;AAAA;;AACtB,SAAKA,UAAL,GAAkBA,UAAlB;AACD;;sBACD7e,K,oBAAQ;AACN,uBAAStb,OAAT,CAAoB,KAAKm6B,UAAzB;AACD,G;;sBACDC,S,sBAAUxhB,K,EAAOC,M,EAAQ;AACvB,uBAAS7Y,OAAT,CAAoB,KAAKm6B,UAAzB,wBAAwDvhB,KAAxD,EAA+DC,MAA/D;AACD,G;;sBACDwhB,Q,uBAAW;AACT,uBAASr6B,OAAT,CAAoB,KAAKm6B,UAAzB;AACD,G;;sBACDl+B,K,kBAAMQ,I,EAAMi2B,G,EAAKr1B,O,EAAS;AACxB,uBAAS2C,OAAT,CAAoB,KAAKm6B,UAAzB,aAA6C19B,IAA7C,EAAmDi2B,GAAnD,EAAwDr1B,OAAxD;AACD,G;;sBACDi9B,Q,qBAASjd,Q,EAAUuV,W,EAAa;AAC9B,uBAAS5yB,OAAT,CAAoB,KAAKm6B,UAAzB,sBAAsD9c,QAAtD,EAAgEuV,WAAhE;AACD,G;;sBACD2H,gB,6BAAiB3H,W,EAAa;AAC5B,uBAAS5yB,OAAT,CAAoB,KAAKm6B,UAAzB,wBAAwDvH,WAAxD;AACD,G;;sBACD4H,W,wBAAY5H,W,EAAa;AACvB,uBAAS5yB,OAAT,CAAoB,KAAKm6B,UAAzB,mBAAmDvH,WAAnD;AACD,G;;sBACD6H,Y,yBAAa79B,K,EAAO;AAClB,uBAASoD,OAAT,CAAoB,KAAKm6B,UAAzB,oBAAoDv9B,KAApD;AACD,G;;sBACD89B,c,2BAAe9H,W,EAAa;AAC1B,uBAAS5yB,OAAT,CAAoB,KAAKm6B,UAAzB,sBAAsDvH,WAAtD;AACD,G;;sBACD+H,e,4BAAgBC,W,EAAa;AAC3B,uBAAS56B,OAAT,CAAoB,KAAKm6B,UAAzB,uBAAuDS,WAAvD;AACD,G;;sBACDxC,Q,qBAASyC,W,EAAa;AACpB,uBAAS76B,OAAT,CAAoB,KAAKm6B,UAAzB,kBAAkDU,WAAlD;AACD,G;;sBACDpe,K,kBAAMqe,Q,EAAU;AACd,uBAAS96B,OAAT,CAAoB,KAAKm6B,UAAzB,qBAAqDW,QAArD;AACD,G;;sBACDC,S,sBAAUD,Q,EAAU;AAClB,uBAAS96B,OAAT,CAAoB,KAAKm6B,UAAzB,iBAAiDW,QAAjD;AACD,G;;sBACDE,M,oBAAOC,Q,EAAU;AACf,uBAASj7B,OAAT,CAAoB,KAAKm6B,UAAzB,oBAAoDc,QAApD;AACD,G;;sBACDC,qB,kCAAsBC,S,EAAW;AAC/B,uBAASn7B,OAAT,CAAoB,KAAKm6B,UAAzB,6BAA6DgB,SAA7D;AACD,G;;sBACDC,gB,6BAAiB/xB,O,EAAS;AACxB,uBAASrJ,OAAT,CAAoB,KAAKm6B,UAAzB,yBAAyD9wB,OAAzD;AACD,G;;;;;kBAnDkB6wB,S;;;;;;;;;;;;;;;;;;;ACFrB;;;;;;;;;;;;;;;;;;ACAA,qE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AACA;;;;;;AAEA,IAAMhN,OAAO,CAAC,CAAd,C,CAZA;AACA;AACA;;IAYqB5D,G;;;;wBACR;AAAE,aAAO,KAAP;AAAc;;;wBAEd;AAAE,aAAO,KAAK6D,OAAL,IAAgB,EAAvB;AAA2B;;;wBAEvB;AACjB,UAAI,KAAKC,aAAL,KAAuB,IAAvB,IAA+B,KAAKA,aAAL,KAAuB/iB,SAA1D,EACE,OAAO6iB,IAAP,CADF,KAGE,OAAO,KAAKE,aAAZ,CAJe,CAIW;AAE7B,K;sBAMgB5sB,E,EAAI;AACnB,WAAK4sB,aAAL,GAAqB5sB,EAArB;AACA,WAAKR,OAAL,CAAa,iBAAOkD,2BAApB;AACA,UAAI,KAAKrI,OAAL,CAAa4f,QAAb,CAAsB4gB,eAA1B,EACE,KAAKC,IAAL,CAAUC,SAAV,GAAsB,KAAKnO,aAA3B,CADF,KAGE,KAAKkO,IAAL,CAAUxD,YAAV,GAAyB,KAAK1K,aAA9B;AACH;;;wBAXa;AACZ,aAAO,KAAKjC,aAAZ;AACD;;;wBAWgB;AACf,UAAI,KAAKyC,aAAL,KAAuB,mBAASjkB,IAAhC,IAAwC,KAAK6xB,aAAL,KAAuB,OAAnE,EACE,OAAO,KAAKC,sBAAZ;;AAEF,aAAO,KAAKC,wBAAZ;AACD;;;wBAEU;AACT,aAAO,iBAAP;AACD;;AAED;AACA;;;;wBAC6B;AAC3B,UAAI,CAAC,KAAKC,0BAAV,EACE,OAAO,KAAKD,wBAAZ;;AAEF,UAAIE,OAAO,KAAKD,0BAAhB;AACA,UAAIE,aAAa,KAAKC,IAAL,GAAYF,KAAKG,KAAlC;AACA,UAAIC,8BAA8B,CAACJ,KAAKK,MAAL,GAAcJ,UAAf,IAA6B,IAA/D;AACA;AACA,aAAOxD,KAAKC,GAAL,CAAS0D,2BAAT,EAAsC,KAAKN,wBAAL,GAAgC,KAAKQ,2BAA3E,CAAP;AACD;;AAED;AACA;;;;wBAC2B;AACzB,UAAIC,gBAAgB,KAAKT,wBAAL,GAAgC,KAAKU,uBAAzD;AACA,UAAI,CAAC,KAAKC,wBAAV,EACE,OAAOF,aAAP;;AAEF,UAAIP,OAAO,KAAKS,wBAAhB;AACA,UAAIR,aAAa,KAAKC,IAAL,GAAYF,KAAKG,KAAlC;AACA,UAAIO,sBAAsB,CAACV,KAAKK,MAAL,GAAcJ,UAAf,IAA6B,IAAvD;AACA,aAAOxD,KAAKE,GAAL,CAAS4D,gBAAgB,KAAKD,2BAA9B,EAA2D7D,KAAKC,GAAL,CAASgE,mBAAT,EAA8BH,aAA9B,CAA3D,CAAP;AACD;;;wBAEe;AACd,aAAO,KAAKI,oBAAL,GAA4B,KAAKC,UAAxC;AACD;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;wBACkC;AAChC,UAAI,KAAKC,sBAAL,KAAgC,IAApC,EACE,OAAO,CAAP;;AAEF,aAAO,KAAKC,8BAAL,GAAsC,KAAKD,sBAAlD;AACD;;;wBAEkB;AACjB;AACD;;;AAED,iBAAqB;AAAA;;AAAA,sCAANh+B,IAAM;AAANA,UAAM;AAAA;;AAEnB;AAFmB,+DACnB,kEAASA,IAAT,EADmB;;AAGnB,UAAK5D,OAAL,CAAa4f,QAAb,8BAA6B,MAAK5f,OAAlC,EAA8C,MAAKA,OAAL,CAAa4f,QAA3D;AACA,UAAKkiB,WAAL,GAAmB,OAAQ,MAAK9hC,OAAL,CAAay3B,iBAArB,KAA4C,WAA5C,GAA0D,EAA1D,GAA+D,MAAKz3B,OAAL,CAAay3B,iBAA/F;AACA;AACA;AACA;AACA;AACA,UAAKoK,8BAAL,GAAsC,CAAC,MAAK7hC,OAAL,CAAa4f,QAAd,IAA0B,OAAQ,MAAK5f,OAAL,CAAa4f,QAAb,CAAsBmiB,6BAA9B,KAAiE,WAA3F,GAAyG,CAAzG,GAA8G,MAAK/hC,OAAL,CAAa4f,QAAb,CAAsBmiB,6BAA1K;;AAEA,UAAKhP,aAAL,GAAqB,mBAASnkB,GAA9B;AACA,UAAKozB,eAAL,GAAuB,EAAEpf,SAAS,CAAX,EAAcoO,OAAO,CAArB,EAAvB;AACA,UAAKiR,aAAL,GAAqB,IAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAKpB,wBAAL,GAAgC,CAAhC;AACA;AACA;AACA,UAAKC,0BAAL,GAAkC,IAAlC;AACA;AACA;AACA,UAAKU,wBAAL,GAAgC,IAAhC;AACA;AACA;AACA,UAAKD,uBAAL,GAA+B,CAA/B;AACA;AACA,UAAKW,gBAAL,GAAwB,CAAxB;AACA;AACA;AACA;AACA,UAAKC,mCAAL,GAA2C,KAA3C;AACA;AACA,UAAKP,sBAAL,GAA8B,IAA9B;AACA;AACA,UAAKjB,aAAL,GAAqB,IAArB;AACA,UAAKyB,yBAAL,GAAiC,MAAKpiC,OAAL,CAAaqiC,kBAAb,IAAmC,EAApE;AAzCmB;AA0CpB;;gBAEDC,M,qBAAS;AAAA;;AACP,SAAKC,UAAL,GAAkB,KAAlB;AACA,SAAKC,gBAAL,GAAwB,KAAxB;AACA,SAAK/B,IAAL,GAAY,kBAAU,mBAAO,EAAP,EAAW,KAAKzgC,OAAL,CAAa4f,QAAb,CAAsB6iB,WAAjC,CAAV,CAAZ;AACA,SAAKhC,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAam+B,cAA1B,EAA0C;AAAA,aAAM,OAAKjC,IAAL,CAAUkC,UAAV,CAAqB,OAAK3iC,OAAL,CAAaoY,GAAlC,CAAN;AAAA,KAA1C;AACA,SAAKqoB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAaq+B,YAA1B,EAAwC,UAACzf,GAAD,EAAMpS,IAAN;AAAA,aAAe,OAAKsnB,mBAAL,CAAyBlV,GAAzB,EAA8BpS,IAA9B,CAAf;AAAA,KAAxC;AACA,SAAK0vB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAas+B,aAA1B,EAAyC,UAAC1f,GAAD,EAAMpS,IAAN;AAAA,aAAe,OAAK+xB,eAAL,CAAqB3f,GAArB,EAA0BpS,IAA1B,CAAf;AAAA,KAAzC;AACA,SAAK0vB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAaw+B,eAA1B,EAA2C,UAAC5f,GAAD,EAAKpS,IAAL;AAAA,aAAc,OAAKiyB,cAAL,CAAoB7f,GAApB,EAAyBpS,IAAzB,CAAd;AAAA,KAA3C;AACA,SAAK0vB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAa0+B,WAA1B,EAAuC,UAAC9f,GAAD,EAAMpS,IAAN;AAAA,aAAe,OAAKinB,iBAAL,CAAuB7U,GAAvB,EAA4BpS,IAA5B,CAAf;AAAA,KAAvC;AACA,SAAK0vB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAagD,KAA1B,EAAiC,UAAC4b,GAAD,EAAMpS,IAAN;AAAA,aAAe,OAAKmyB,aAAL,CAAmB/f,GAAnB,EAAwBpS,IAAxB,CAAf;AAAA,KAAjC;AACA,SAAK0vB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAa4+B,qBAA1B,EAAiD,UAAChgB,GAAD,EAAMpS,IAAN;AAAA,aAAe,OAAKqyB,iBAAL,CAAuBjgB,GAAvB,EAA4BpS,IAA5B,CAAf;AAAA,KAAjD;AACA,SAAK0vB,IAAL,CAAUj8B,EAAV,CAAa,cAAMD,MAAN,CAAa8+B,uBAA1B,EAAmD;AAAA,aAAM,OAAKb,gBAAL,GAAwB,IAA9B;AAAA,KAAnD;AACA,SAAK/B,IAAL,CAAU6C,WAAV,CAAsB,KAAK7wB,EAA3B;AACD,G;;gBAEDzB,M,qBAAS;AACP,SAAKka,MAAL;AACA,WAAO,8BAAMla,MAAN,WAAP;AACD,G;;gBAEDka,M,qBAAS;AACP,SAAKoF,aAAL,GAAqB,IAArB;AACA,SAAKnrB,OAAL,CAAa,iBAAO0C,cAApB,EAAoC,KAAKpG,IAAzC;AACD,G;;gBAED8hC,Q,qBAASpgB,G,EAAKpS,I,EAAM3P,K,EAAO;AACzB,QAAI,CAAC,KAAKoiC,uBAAV,EAAmC;AACjC,WAAKA,uBAAL,GAA+B,IAA/B;AACA,WAAK/C,IAAL,CAAUgD,iBAAV;AACD,KAHD,MAGO,IAAI,CAAC,KAAKC,yBAAV,EAAqC;AAC1C,WAAKA,yBAAL,GAAiC,IAAjC;AACA,WAAKjD,IAAL,CAAUkD,cAAV;AACA,WAAKlD,IAAL,CAAUgD,iBAAV;AACD,KAJM,MAIA;AACL,oBAAIriC,KAAJ,CAAU,0BAAV,EAAsC,EAAE+hB,QAAF,EAAOpS,UAAP,EAAtC;AACA3P,YAAMW,KAAN,GAAc,gBAAYC,MAAZ,CAAmBC,KAAjC;AACA,UAAMu2B,iBAAiB,KAAKr3B,WAAL,CAAiBC,KAAjB,CAAvB;AACA,WAAK+D,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACA,WAAKlrB,IAAL;AACD;AACF,G;;AAED;;;gBACAs2B,S,sBAAUC,M,EAAQ,CAAE;AAClB;AACD,G;;gBAEDC,qB,oCAAwB;AAAA;;AACtB,QAAI,KAAKC,gBAAT,EAA2B;;AAE3B,SAAKA,gBAAL,GAAwB5c,YAAY,YAAM;AACxC,aAAK6c,iBAAL;AACA,aAAK7W,aAAL;AACD,KAHuB,EAGrB,GAHqB,CAAxB;AAID,G;;gBAED8W,oB,mCAAuB;AACrB,QAAI,CAAC,KAAKF,gBAAV,EAA4B;;AAE5Brc,kBAAc,KAAKqc,gBAAnB;AACA,SAAKA,gBAAL,GAAwB,IAAxB;AACD,G;;gBAEDG,kB,iCAAqB;AACnB,WAAO,KAAKhC,gBAAZ;AACD,G;AACD;AACA;AACA;;;gBACAt0B,W,0BAAc;AACZ,WAAO,KAAKu2B,SAAZ;AACD,G;;gBAED1hB,c,6BAAiB;AACf;AACA;AACA;AACA,WAAO+a,KAAKE,GAAL,CAAS,CAAT,EAAY,KAAKjrB,EAAL,CAAQuI,WAAR,GAAsB,KAAK2mB,UAAvC,CAAP;AACD,G;;AAED;AACA;AACA;;;gBACAh0B,kB,iCAAqB;AACnB,WAAO,KAAKg0B,UAAZ;AACD,G;;gBAEDl0B,c,2BAAeC,U,EAAY;AACzB,QAAI02B,SAAS,KAAKD,SAAlB;AACA,QAAIz2B,aAAa,CAAjB,EACE02B,SAAS,KAAKD,SAAL,IAAkBz2B,aAAa,GAA/B,CAAT;;AAEF,SAAKH,IAAL,CAAU62B,MAAV;AACD,G;;gBAED72B,I,iBAAKC,I,EAAM;AACT,QAAIA,OAAO,CAAX,EAAc;AACZ,oBAAI/K,IAAJ,CAAS,+GAAT;AACA+K,aAAO,KAAKI,WAAL,EAAP;AACD;AACD;AACA,SAAKsU,UAAL,IAAmB,KAAK0c,UAAL,CAAgBpxB,OAAO,KAAKI,WAAL,KAAmB,CAA1C,CAAnB;AACAJ,YAAQ,KAAKm0B,UAAb;AACA,kCAAMp0B,IAAN,YAAWC,IAAX;AACD,G;;gBAED62B,e,8BAAkB;AAChB,SAAK92B,IAAL,CAAU,KAAKK,WAAL,EAAV;AACD,G;;gBAEDgxB,U,uBAAW0F,M,EAAQ;AACjB,SAAKn/B,OAAL,CAAa,iBAAOqD,YAApB,EAAkC87B,MAAlC;AACA,SAAKn/B,OAAL,CAAa,iBAAOgE,kBAApB,EAAwC,EAAE,OAAOm7B,MAAT,EAAxC;AACD,G;;gBAEDxG,e,8BAAkB;AAChB,QAAI,KAAK/K,aAAL,KAAuB,mBAASnkB,GAApC,EACE,KAAK1B,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB,CADF,KAEK,IAAI,KAAKjO,UAAT,EACH,KAAKhV,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,CAArB,CADG,KAGH,KAAKjjB,QAAL,CAAcijB,IAAd,GAAqB,CAAC,UAAD,CAArB;;AAEF,SAAKjjB,QAAL,CAAcmjB,WAAd,GAA4B,KAAKkU,aAAL,EAA5B;AACA,SAAKp/B,OAAL,CAAa,iBAAO6C,uBAApB;AACD,G;;gBAEDk7B,a,0BAAc/f,G,EAAKpS,I,EAAM;AACvB,QAAM3P,QAAQ;AACZQ,YAASmP,KAAKjQ,IAAd,SAAsBiQ,KAAKyzB,OADf;AAEZ1iC,mBAAgB,KAAKL,IAArB,sBAA0CsP,KAAKjQ,IAA/C,mBAAiEiQ,KAAKyzB,OAF1D;AAGZtiC,WAAK6O;AAHO,KAAd;AAKA,QAAIynB,uBAAJ;AACA,QAAIznB,KAAK0zB,QAAT,EAAmBrjC,MAAMU,WAAN,qBAAoC,yBAAeiP,KAAK0zB,QAApB,CAApC;AACnB;AACA;AACA,QAAI1zB,KAAK2zB,KAAT,EAAgB;AACd,UAAI,KAAKtC,yBAAL,GAAiC,CAArC,EAAwC;AACtC,aAAKA,yBAAL,IAAkC,CAAlC;AACA,gBAAQrxB,KAAKjQ,IAAb;AACA,eAAK,cAAM6jC,UAAN,CAAiBC,aAAtB;AACE,oBAAQ7zB,KAAKyzB,OAAb;AACA;AACA;AACA;AACA,mBAAK,cAAMK,YAAN,CAAmBC,mBAAxB;AACA,mBAAK,cAAMD,YAAN,CAAmBE,qBAAxB;AACA,mBAAK,cAAMF,YAAN,CAAmBG,sBAAxB;AACA,mBAAK,cAAMH,YAAN,CAAmBI,gBAAxB;AACA,mBAAK,cAAMJ,YAAN,CAAmBK,kBAAxB;AACE,8BAAI9jC,KAAJ,CAAU,2CAAV,EAAuD,EAAE+hB,QAAF,EAAOpS,UAAP,EAAvD;AACAynB,iCAAiB,KAAKr3B,WAAL,CAAiBC,KAAjB,CAAjB;AACA,qBAAK+D,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACA,qBAAKlrB,IAAL;AACA;AACF;AACE,8BAAI7K,IAAJ,CAAS,8CAAT,EAAyD,EAAE0gB,QAAF,EAAOpS,UAAP,EAAzD;AACA3P,sBAAMW,KAAN,GAAc,gBAAYC,MAAZ,CAAmBynB,IAAjC;AACA,qBAAKtoB,WAAL,CAAiBC,KAAjB;AACA,qBAAKq/B,IAAL,CAAU0E,SAAV;AACA;AAnBF;AAqBA;AACF,eAAK,cAAMR,UAAN,CAAiBS,WAAtB;AACE,0BAAI3iC,IAAJ,CAAS,4CAAT,EAAuD,EAAE0gB,QAAF,EAAOpS,UAAP,EAAvD;AACA3P,kBAAMW,KAAN,GAAc,gBAAYC,MAAZ,CAAmBynB,IAAjC;AACA,iBAAKtoB,WAAL,CAAiBC,KAAjB;AACA,iBAAKmiC,QAAL,CAAcpgB,GAAd,EAAmBpS,IAAnB,EAAyB3P,KAAzB;AACA;AACF;AACE,0BAAIA,KAAJ,CAAU,sCAAV,EAAkD,EAAE+hB,QAAF,EAAOpS,UAAP,EAAlD;AACAynB,6BAAiB,KAAKr3B,WAAL,CAAiBC,KAAjB,CAAjB;AACA,iBAAK+D,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACA,iBAAKlrB,IAAL;AACA;AAnCF;AAqCD,OAvCD,MAuCO;AACL,sBAAIlM,KAAJ,CAAU,uEAAV,EAAmF,EAAE+hB,QAAF,EAAOpS,UAAP,EAAnF;AACAynB,yBAAiB,KAAKr3B,WAAL,CAAiBC,KAAjB,CAAjB;AACA,aAAK+D,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACA,aAAKlrB,IAAL;AACD;AACF,KA9CD,MA8CO;AACL;AACA;AACA;AACA;AACA,UAAI,KAAKtN,OAAL,CAAa4f,QAAb,CAAsBylB,iCAAtB,IAA2D,KAAKC,YAAL,CAAkBv0B,IAAlB,CAA/D,EAAwF;AACtF,sBAAI3P,KAAJ,CAAU,oCAAV,EAAgD,EAAE+hB,QAAF,EAAOpS,UAAP,EAAhD;AACAynB,yBAAiB,KAAKr3B,WAAL,CAAiBC,KAAjB,CAAjB;AACA,aAAK+D,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACA,aAAKlrB,IAAL;AACA;AACD;;AAEDlM,YAAMW,KAAN,GAAc,gBAAYC,MAAZ,CAAmBynB,IAAjC;AACA,WAAKtoB,WAAL,CAAiBC,KAAjB;AACA,oBAAIqB,IAAJ,CAAS,iCAAT,EAA4C,EAAE0gB,QAAF,EAAOpS,UAAP,EAA5C;AACD;AACF,G;;gBAEDu0B,Y,yBAAav0B,I,EAAM;AACjB,WAAOA,KAAKjQ,IAAL,KAAc,cAAM6jC,UAAN,CAAiBC,aAA/B,IACF7zB,KAAKyzB,OAAL,KAAiB,cAAMK,YAAN,CAAmBU,cADlC,IAEFx0B,KAAK0zB,QAFH,IAGF1zB,KAAK0zB,QAAL,CAAc7iC,IAAd,IAAsB,GAH3B;AAID,G;;gBAEDurB,a,4BAAgB;AACd,QAAIqY,SAAS,EAAE5iB,SAAS,KAAKH,cAAL,EAAX,EAAkCuO,OAAO,KAAKpjB,WAAL,EAAzC,EAA6D63B,mBAAmB,KAAKvB,kBAAL,EAAhF,EAAb;AACA,QAAIwB,SAAS,KAAK1D,eAAL,IACXwD,OAAO5iB,OAAP,KAAmB,KAAKof,eAAL,CAAqBpf,OAAxC,IACA4iB,OAAOxU,KAAP,KAAiB,KAAKgR,eAAL,CAAqBhR,KAFxC;AAGA,QAAI0U,MAAJ,EACE;;AAEF,SAAK1D,eAAL,GAAuBwD,MAAvB;AACA,SAAKrgC,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC49B,MAAzC,EAAiD,KAAK/jC,IAAtD;AACD,G;;gBAEDuiC,iB,gCAAoB;AAClB,QAAIxhB,WAAW,KAAK5U,WAAL,EAAf;AACA,QAAI,KAAKq0B,aAAL,KAAuBzf,QAA3B,EACE;;AAEF,SAAKyf,aAAL,GAAqBzf,QAArB;AACA,kCAAMwhB,iBAAN;AACD,G;;gBAED2B,W,0BAAc;AACZ,QAAI,CAAC,KAAKlzB,EAAL,CAAQgsB,QAAR,CAAiBh7B,MAAtB,EACE;;AAEF,QAAIg7B,WAAW,EAAf;AACA,QAAImH,cAAc,CAAlB;AACA,SAAK,IAAIriC,IAAI,CAAb,EAAgBA,IAAI,KAAKkP,EAAL,CAAQgsB,QAAR,CAAiBh7B,MAArC,EAA6CF,GAA7C,EAAkD;AAChDk7B,4DAAeA,QAAf,IAAyB;AACvB;AACApN,eAAOmM,KAAKE,GAAL,CAAS,CAAT,EAAY,KAAKjrB,EAAL,CAAQgsB,QAAR,CAAiBpN,KAAjB,CAAuB9tB,CAAvB,IAA4B,KAAKs9B,wBAA7C,CAFgB;AAGvBgF,aAAKrI,KAAKE,GAAL,CAAS,CAAT,EAAY,KAAKjrB,EAAL,CAAQgsB,QAAR,CAAiBoH,GAAjB,CAAqBtiC,CAArB,IAA0B,KAAKs9B,wBAA3C;AAHkB,OAAzB;AAKA,UAAI,KAAKpuB,EAAL,CAAQuI,WAAR,IAAuByjB,SAASl7B,CAAT,EAAY8tB,KAAnC,IAA4C,KAAK5e,EAAL,CAAQuI,WAAR,IAAuByjB,SAASl7B,CAAT,EAAYsiC,GAAnF,EACED,cAAcriC,CAAd;AAEH;AACD,QAAMuiC,WAAW;AACfzU,aAAOoN,SAASmH,WAAT,EAAsBvU,KADd;AAEfzO,eAAS6b,SAASmH,WAAT,EAAsBC,GAFhB;AAGf7U,aAAO,KAAKpjB,WAAL;AAHQ,KAAjB;AAKA,SAAKzI,OAAL,CAAa,iBAAOwC,iBAApB,EAAuCm+B,QAAvC,EAAiDrH,QAAjD;AACD,G;;gBAEDrxB,I,mBAAO;AACL,QAAI,CAAC,KAAKqzB,IAAV,EACE,KAAK6B,MAAL;;AAEF,kCAAMl1B,IAAN;AACA,SAAK02B,qBAAL;AACD,G;;gBAEDz2B,K,oBAAQ;AACN,QAAI,CAAC,KAAKozB,IAAV,EACE;;AAEF,kCAAMpzB,KAAN;AACA,QAAI,KAAK6U,UAAT,EACE,KAAK0c,UAAL,CAAgB,IAAhB;AAEH,G;;gBAEDtxB,I,mBAAO;AACL,SAAK22B,oBAAL;AACA,QAAI,KAAKxD,IAAT,EAAe;AACb,oCAAMnzB,IAAN;AACA,WAAKmzB,IAAL,CAAU//B,OAAV;AACA,aAAO,KAAK+/B,IAAZ;AACD;AACF,G;;gBAED//B,O,sBAAU;AACR,SAAKujC,oBAAL;AACA,QAAI,KAAKxD,IAAT,EAAe;AACb,WAAKA,IAAL,CAAU//B,OAAV;AACA,aAAO,KAAK+/B,IAAZ;AACD;AACD,kCAAM//B,OAAN;AACD,G;;gBAED23B,mB,gCAAoBlV,G,EAAKpS,I,EAAM;AAC7B,SAAKgiB,aAAL,GAAqBhiB,KAAKyzB,OAAL,CAAauB,IAAb,GAAoB,mBAASj3B,IAA7B,GAAoC,mBAASF,GAAlE;AACA,SAAKk0B,eAAL,CAAqB3f,GAArB,EAA0BpS,IAA1B;;AAEA;AACA,QAAI,KAAKyxB,gBAAL,IAAyB,KAAKzP,aAAL,KAAuB,mBAASjkB,IAAzD,IAAiE,KAAKiR,uBAA1E,EACE,KAAKqjB,iBAAL;AAEH,G;;gBAEDhG,W,0BAAc;AACZ,SAAK9K,OAAL,GAAe,KAAKmO,IAAL,CAAUxC,MAAV,CAAiB93B,GAAjB,CAAqB,UAACpE,KAAD,EAAQsE,KAAR,EAAkB;AACpD,aAAO,EAAEV,IAAIU,KAAN,EAAatE,OAAOA,KAApB,EAA2Bi9B,OAAUj9B,MAAMo7B,OAAN,GAAc,IAAxB,SAA3B,EAAP;AACD,KAFc,CAAf;AAGA,SAAKh4B,OAAL,CAAa,iBAAOiD,yBAApB,EAA+C,KAAKkqB,OAApD;AACD,G;;gBAEDwQ,e,4BAAgB3f,G,EAAKpS,I,EAAM;AACzB,SAAK6wB,sBAAL,GAA8B7wB,KAAKyzB,OAAL,CAAawB,cAA3C;AACA,SAAKrF,aAAL,GAAqB5vB,KAAKyzB,OAAL,CAAa1jC,IAAb,IAAqB,IAA1C;;AAEA,QAAImlC,mBAAmB,KAAvB;AACA,QAAIC,kBAAkB,KAAtB;AACA,QAAIC,YAAYp1B,KAAKyzB,OAAL,CAAa2B,SAA7B;AACA,QAAIC,kCAAkC,KAAKvF,wBAA3C;AACA,QAAIwF,iCAAiC,KAAK9E,uBAA1C;;AAEA,QAAI4E,UAAU1iC,MAAV,KAAqB,CAAzB,EACE;;AAGF;AACA,QAAI0iC,UAAU,CAAV,EAAaG,kBAAjB,EACE,KAAKpE,gBAAL,GAAwBiE,UAAU,CAAV,EAAaG,kBAArC;;AAGF,QAAI,KAAKzF,wBAAL,KAAkCsF,UAAU,CAAV,EAAa9U,KAAnD,EAA0D;AACxD4U,yBAAmB,IAAnB;AACA,WAAKpF,wBAAL,GAAgCsF,UAAU,CAAV,EAAa9U,KAA7C;AACD;;AAED,QAAI4U,gBAAJ,EAAsB;AACpB,UAAI,CAAC,KAAKnF,0BAAV,EAAsC;AACpC;AACA,aAAKA,0BAAL,GAAkC;AAChCI,iBAAO,KAAKD,IADoB;AAEhCG,kBAAQ,CAAC+E,UAAU,CAAV,EAAa9U,KAAb,GAAsB,KAAKgQ,2BAAL,GAAiC,CAAxD,IAA8D;AAFtC,SAAlC;AAID,OAND,MAMO;AACL;AACA,YAAIN,OAAO,KAAKD,0BAAhB;AACA,YAAIE,aAAa,KAAKC,IAAL,GAAYF,KAAKG,KAAlC;AACA;AACA,YAAIqF,YAAY,CAACxF,KAAKK,MAAL,GAAcJ,UAAf,IAA6B,IAA7C;AACA,YAAIuF,YAAYJ,UAAU,CAAV,EAAa9U,KAA7B,EAAoC;AAClC;AACA;AACA;AACA,eAAKyP,0BAAL,GAAkC;AAChCI,mBAAO,KAAKD,IADoB;AAEhCG,oBAAQ+E,UAAU,CAAV,EAAa9U,KAAb,GAAqB;AAFG,WAAlC;AAID,SARD,MAQO,IAAIkV,YAAYH,kCAAkC,KAAK/E,2BAAvD,EAAoF;AACzF;AACA;AACA;AACA;AACA,eAAKP,0BAAL,GAAkC;AAChCI,mBAAO,KAAKD,IADoB;AAEhCG,oBAAQ5D,KAAKE,GAAL,CAASyI,UAAU,CAAV,EAAa9U,KAAtB,EAA6B+U,kCAAkC,KAAK/E,2BAApE,IAAmG;AAF3E,WAAlC;AAID;AACF;AACF;;AAED,QAAImF,cAAcz1B,KAAKyzB,OAAL,CAAaiC,aAA/B;AACA;AACA;AACA;AACA,QAAI,KAAK1T,aAAL,KAAuB,mBAASjkB,IAApC,EAA0C;AACxC,UAAI43B,yBAAyB31B,KAAKyzB,OAAL,CAAawB,cAA1C;AACA,UAAIvD,cAAc,KAAKziC,OAAL,CAAa4f,QAAb,CAAsB6iB,WAAtB,IAAqC,EAAvD;AACA,UAAIkE,wBAAwBlE,YAAYkE,qBAAZ,IAAqC,cAAMC,aAAN,CAAoBD,qBAArF;AACA,UAAIE,qBAAqBH,yBAAyBC,qBAAlD;AACA,UAAIE,sBAAsBL,WAA1B,EAAuC;AACrCA,uBAAeK,kBAAf;AACA,aAAK1E,mCAAL,GAA2C,IAA3C;AACD,OAHD,MAGO;AAAE,aAAKA,mCAAL,GAA2C,KAA3C;AAAkD;AAE5D;;AAED,QAAIqE,gBAAgB,KAAKjF,uBAAzB,EAAkD;AAChD2E,wBAAkB,IAAlB;AACA,WAAK3E,uBAAL,GAA+BiF,WAA/B;AACD;;AAED;AACA;AACA,QAAIM,UAAUX,UAAU,CAAV,EAAa9U,KAAb,GAAqBmV,WAAnC;AACA,QAAIO,kBAAkBX,kCAAkCC,8BAAxD;AACA,QAAIW,iBAAiBF,YAAYC,eAAjC;AACA,QAAIC,cAAJ,EAAoB;AAClB,UAAI,CAAC,KAAKxF,wBAAV,EAAoC;AAClC;AACA,aAAKA,wBAAL,GAAgC;AAC9BN,iBAAO,KAAKD,IADkB;AAE9BG,kBAAQ0F,UAAU;AAFY,SAAhC;AAID,OAND,MAMO;AACL;AACA,YAAI/F,QAAO,KAAKS,wBAAhB;AACA,YAAIR,cAAa,KAAKC,IAAL,GAAYF,MAAKG,KAAlC;AACA;AACA,YAAIO,sBAAsB,CAACV,MAAKK,MAAL,GAAcJ,WAAf,IAA6B,IAAvD;AACA,YAAIS,sBAAsBqF,OAA1B,EAAmC;AACjC,eAAKtF,wBAAL,GAAgC;AAC9BN,mBAAO,KAAKD,IADkB;AAE9BG,oBAAQ0F,UAAU;AAFY,WAAhC;AAID,SALD,MAKO,IAAIrF,sBAAsBqF,UAAU,KAAKzF,2BAAzC,EAAsE;AAC3E;AACA;AACA;AACA,eAAKG,wBAAL,GAAgC;AAC9BN,mBAAO,KAAKD,IADkB;AAE9BG,oBAAQ,CAAC0F,UAAU,KAAKzF,2BAAhB,IAA+C;AAFzB,WAAhC;AAID,SARM,MAQA,IAAII,sBAAsBsF,eAA1B,EAA2C;AAChD;AACA;AACA,eAAKvF,wBAAL,GAAgC;AAC9BN,mBAAO,KAAKD,IADkB;AAE9BG,oBAAQ2F,kBAAkB;AAFI,WAAhC;AAID;AACF;AACF;;AAED;AACA;AACAb,uBAAmB,KAAKlC,iBAAL,EAAnB;AACAiC,wBAAoB,KAAKN,WAAL,EAApB;AACD,G;;gBAED3N,iB,8BAAkB7U,G,EAAKpS,I,EAAM;AAC3B,SAAK5L,OAAL,CAAa,iBAAOiE,wBAApB,EAA8C2H,IAA9C;AACD,G;;gBAEDqyB,iB,gCAAoB;AAClB;AACA;AACA,QAAI,CAAC,KAAKb,UAAV,EAAsB;AACpB,WAAKp9B,OAAL,CAAa,iBAAOmE,2BAApB;AACA,UAAMkF,UAAU,KAAKukB,aAAL,KAAuB,mBAASjkB,IAAhC,GAAuC,CAAC,CAAxC,GAA4C,KAAKkR,qBAAjE;AACA,WAAKA,qBAAL,GAA6BxR,OAA7B;AACA,WAAK+zB,UAAL,GAAkB,IAAlB;AACD;AACF,G;;gBAEDS,c,2BAAe7f,G,EAAKpS,I,EAAM;AACxB,QAAI,CAAC,KAAKktB,MAAL,CAAYx6B,MAAjB,EACE,KAAK25B,WAAL;;AAEF,SAAKj4B,OAAL,CAAa,iBAAOmD,yBAApB;AACA,SAAKnD,OAAL,CAAa,iBAAOkE,qBAApB,EAA2C0H,IAA3C;AACA,QAAIksB,eAAe,KAAKwD,IAAL,CAAUxC,MAAV,CAAiBltB,KAAKhP,KAAtB,CAAnB;AACA,QAAIk7B,YAAJ,EAAkB;AAChB;AACA,WAAKtK,cAAL,GAAuBsK,aAAajf,MAAb,IAAuB,GAAvB,IAA+Bif,aAAaE,OAAb,GAAuB,IAAxB,IAAiC,IAAtF;AACA,WAAKh4B,OAAL,CAAa,iBAAO+C,6BAApB,EAAmD,KAAKyqB,cAAxD;AACA,WAAKxtB,OAAL,CAAa,iBAAOgD,gBAApB,EAAsC;AACpC6V,gBAAQif,aAAajf,MADe;AAEpCD,eAAOkf,aAAalf,KAFgB;AAGpCsf,mBAAWJ,aAAaE,OAHY;AAIpCA,iBAASF,aAAaE,OAJc;AAKpCp7B,eAAOgP,KAAKhP;AALwB,OAAtC;AAOD;AACF,G;;gBAUD+L,e,8BAAkB;AAChB,WAAO,KAAKilB,aAAZ;AACD,G;;gBAEDwR,a,4BAAgB;AACd,WAAQ,KAAKxR,aAAL,KAAuB,mBAASnkB,GAAhC,IAAuC,KAAKsT,UAApD;AACD,G;;;;wBAdgB;AACf;AACA;AACA;AACA;AACA,aAAQ,KAAKigB,mCAAL,IAA4C,KAAKgC,SAAL,IAAkB,KAAKrC,WAAnE,IAAkF,KAAKh0B,eAAL,OAA2B,mBAASgB,IAA9H;AACD;;;;;kBAvmBkB2f,G;;;AAknBrBA,IAAIhgB,OAAJ,GAAc,UAASyjB,QAAT,EAAmBvjB,QAAnB,EAA6B;AACzC,MAAMyjB,gBAAgBF,SAAS5uB,KAAT,CAAe,GAAf,EAAoB,CAApB,EAAuBqN,KAAvB,CAA6B,WAA7B,KAA6C,EAAnE;AACA,MAAMs2B,QAAU7U,cAAc3uB,MAAd,GAAuB,CAAvB,IAA4B2uB,cAAc,CAAd,EAAiBlsB,WAAjB,OAAmC,MAAhE,IAA2E,mCAAuByI,QAAvB,EAAiC,CAAC,+BAAD,EAAkC,uBAAlC,CAAjC,CAA1F;;AAEA,SAAO,CAAC,EAAE,cAAMu4B,WAAN,MAAuBD,KAAzB,CAAR;AACD,CALD;;;;;;;;;;;;;;;;;;;AChoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;;;AAEA;IACqBvY,U;;;;;;;;uBAQnByY,c,6BAAiB;AACf,SAAKj6B,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB;AACA,SAAKjjB,QAAL,CAAcmjB,WAAd,GAA4B,KAAKkU,aAAL,EAA5B;AACA,SAAKp/B,OAAL,CAAa,iBAAO6C,uBAApB;AACD,G;;uBAED8F,e,8BAAkB;AAChB,WAAO,mBAASe,GAAhB;AACD,G;;;;wBAfU;AAAE,aAAO,aAAP;AAAsB;;;wBACrB;AAAE,aAAO,OAAP;AAAgB;;;wBAEd;AAChB,aAAO,IAAP;AACD;;;0BAfH;AACA;AACA;;kBAOqB6f,U;;;AAmBrBA,WAAWjgB,OAAX,GAAqB,UAAS24B,WAAT,EAAsBz4B,QAAtB,EAAgC;AACnD,MAAM04B,YAAY;AAChB,WAAO,CAAC,WAAD,CADS;AAEhB,WAAO,CAAC,WAAD,EAAc,yBAAd,CAFS;AAGhB,WAAO,CAAC,8BAAD,CAHS;AAIhB,WAAO,CAAC,WAAD;AAJS,GAAlB;AAMA,SAAO,sBAAWC,QAAX,CAAoB,OAApB,EAA6BD,SAA7B,EAAwCD,WAAxC,EAAqDz4B,QAArD,CAAP;AACD,CARD;;;;;;;;;;;;;;;;;;;AC5BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAdA;AACA;AACA;;AAcA,IAAM44B,YAAY;AAChB,SAAO,CAAC,aAAD,EAAgB,aAAhB,EAA+B,aAA/B,EAA8C,aAA9C,EAA6D,WAA7D,EAA0E,aAA1E,EAAyF,WAAzF,EAAsGphC,GAAtG,CACL,UAACqhC,KAAD,EAAW;AAAE,WAAO,wBAAwBA,KAAxB,GAAgC,cAAvC;AAAuD,GAD/D,CADS;AAGhB,SAAO,CAAC,oCAAD,EAAuC,2BAAvC,EAAoE,mCAApE,CAHS;AAIhB,UAAQ,CAAC,sCAAD,CAJQ;AAKhB,UAAQ,CAAC,kCAAD,CALQ;AAMhB,SAAO,CAAC,2CAAD,CANS;AAOhB,UAAQ,CAAC,uBAAD;AAPQ,CAAlB;AASAD,UAAU,KAAV,IAAmBA,UAAU,KAAV,CAAnB;AACAA,UAAU,KAAV,IAAmBA,UAAU,MAAV,CAAnB;;AAEA,IAAME,kBAAkB;AACtB,SAAO,CAAC,WAAD,CADe;AAEtB,SAAO,CAAC,WAAD,EAAc,yBAAd,CAFe;AAGtB,SAAO,CAAC,8BAAD,CAHe;AAItB,SAAO,CAAC,WAAD;AAJe,CAAxB;;AAOA,IAAMC,wBAAwB,oBAAYD,eAAZ,EAA6Btd,MAA7B,CAAoC,UAACwd,GAAD,EAAM1iC,CAAN;AAAA,oDAAgB0iC,GAAhB,oCAAwBF,gBAAgBxiC,CAAhB,CAAxB;AAAA,CAApC,EAAiF,EAAjF,CAA9B;;AAEA,IAAM2iC,gBAAgB,EAAEhmC,MAAM,SAAR,EAAmBY,SAAS;;AAElD;AAFsB,CAAtB;IAGqBmsB,U;;;;wBACR;AAAE,aAAO,aAAP;AAAsB;;;wBACrB;AAAE,aAAO,KAAKkZ,WAAL,GAAmB,OAAnB,GAA6B,OAApC;AAA6C;;;wBAE3C;AAChB,UAAMT,cAAc,KAAKpnC,OAAL,CAAaoY,GAAjC;AACA,UAAIuD,YAAYgT,WAAWmZ,gBAAX,CAA4BV,WAA5B,EAAyCK,eAAzC,EAA0D,KAAKznC,OAAL,CAAa2O,QAAvE,CAAhB;AACA,aAAO,KAAK3O,OAAL,CAAa4f,QAAb,IAAyB,KAAK5f,OAAL,CAAa4f,QAAb,CAAsBmoB,SAA/C,IAA4D,KAAK/nC,OAAL,CAAa+nC,SAAzE,IAAsFL,sBAAsBtuB,OAAtB,CAA8BuC,UAAU,CAAV,CAA9B,KAA+C,CAA5I;AACD;;;wBAEgB;AACf,aAAO;AACL,4BAAoB;AADf,OAAP;AAGD;;;wBAEY;AACX,aAAO;AACL,mBAAW,YADN;AAEL,0BAAkB,wBAFb;AAGL,0BAAkB,mBAHb;AAIL,iBAAS,UAJJ;AAKL,iBAAS,UALJ;AAML,sBAAc,eANT;AAOL,0BAAkB,mBAPb;AAQL,iBAAS,UARJ;AASL,mBAAW,YATN;AAUL,oBAAY,aAVP;AAWL,mBAAW,YAXN;AAYL,kBAAU,WAZL;AAaL,mBAAW,wBAbN;AAcL,sBAAc,eAdT;AAeL,mBAAW;AAfN,OAAP;AAiBD;;AAED;;;;;;;;wBAKY;AACV,aAAO,KAAKlJ,EAAL,CAAQoN,KAAf;AACD;;AAED;;;;;;;;;;wBAOgB;AACd,aAAO,KAAKmoB,YAAZ;AACD;;;AAED,wBAAqB;AAAA;;AAAA,sCAANpkC,IAAM;AAANA,UAAM;AAAA;;AAAA,+DACnB,8CAASA,IAAT,EADmB;;AAEnB,UAAKqkC,UAAL,GAAkB,KAAlB;AACA,UAAKC,YAAL,GAAoB,KAApB;AACA,UAAKF,YAAL,GAAoB,KAApB;AACA,UAAKG,eAAL,GAAuB,KAAvB;AACA,UAAKC,oBAAL,GAA4B,IAA5B;AACA,UAAKC,QAAL,GAAgB,KAAhB;AACA,UAAKC,UAAL,GAAkB,CAAC,CAAnB;AACA,UAAK1E,SAAL,CAAe,MAAK5jC,OAAL,CAAaoY,GAA5B;AACA;AACA,UAAKpY,OAAL,CAAa4f,QAAb,KAA0B,MAAK5f,OAAL,CAAa4f,QAAb,GAAwB,MAAK5f,OAAL,IAAgB,EAAlE;AACA,UAAKA,OAAL,CAAa4f,QAAb,CAAsB2oB,kBAAtB,GAA2C,MAAKvoC,OAAL,CAAa4f,QAAb,CAAsB2oB,kBAAtB,IAA4C,MAAKvoC,OAAL,CAAawoC,0BAApG;;AAEA,QAAMC,iBAAiB,MAAKzoC,OAAL,CAAa4f,QAApC;AACA,QAAM8oB,UAAUD,eAAeC,OAAf,KAA2B,kBAAQ/pB,QAAR,GAAmB,MAAnB,GAA4B,MAAK3e,OAAL,CAAa0oC,OAApE,CAAhB;;AAEA,QAAIC,kBAAJ,CAjBmB,CAiBL;AACd,QAAI,MAAK3oC,OAAL,CAAa4oC,MAAjB,EAAyB;AACvB,UAAI,OAAO,MAAK5oC,OAAL,CAAa4oC,MAApB,KAA+B,QAAnC,EACED,YAAY,MAAK3oC,OAAL,CAAa4oC,MAAzB,CADF,KAEK,IAAI,OAAO,MAAK5oC,OAAL,CAAa4oC,MAAb,CAAoB/Q,GAA3B,KAAmC,QAAvC,EACH8Q,YAAY,MAAK3oC,OAAL,CAAa4oC,MAAb,CAAoB/Q,GAAhC;AAEH;;AAED,0BAAEj3B,MAAF,CAAS,MAAK6R,EAAd,EAAkB;AAChBgH,aAAO,MAAKzZ,OAAL,CAAa6tB,IADJ;AAEhBgb,oBAAc,MAAK7oC,OAAL,CAAa6tB,IAFX;AAGhBgF,YAAM,MAAK7yB,OAAL,CAAa6yB,IAHH;AAIhB+V,cAAQD,SAJQ;AAKhBD,eAASA,WAAW,UALJ;AAMhBI,gBAAU,CAACL,eAAeK,QAAf,IAA2B,MAAK9oC,OAAL,CAAa+oC,0BAAzC,KAAwE,UANlE;AAOhBC,mBAAaP,eAAeO,WAPZ;AAQhB,8BAAwBP,eAAeQ;AARvB,KAAlB;;AAWAR,mBAAeQ,UAAf,IAA8B,MAAKz3B,GAAL,CAASwB,IAAT,CAAc,EAAEk2B,aAAa,aAAf,EAAd,CAA9B;AACAT,mBAAeO,WAAf,IAA+B,MAAKx3B,GAAL,CAASwB,IAAT,CAAc,EAAEm2B,aAAaV,eAAeO,WAA9B,EAAd,CAA/B;;AAEA;AACA,UAAK97B,QAAL,GAAgB,EAAEgjB,SAAS,CAAC,SAAD,CAAX,EAAhB;AACA,UAAKhjB,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB;AACA,UAAKjjB,QAAL,CAAckjB,KAAd,GAAsB,CAAC,YAAD,EAAe,QAAf,EAAyB,cAAzB,CAAtB;;AAEAqY,mBAAeW,cAAf,IAAkC,MAAKC,oBAAL,CAA0BZ,eAAeW,cAAzC,CAAlC;;AAEA,UAAKppC,OAAL,CAAa4tB,QAAb,IAAyB,MAAKzf,eAAL,EAAzB;AA/CmB;AAgDpB;;uBAEDD,S,sBAAUlO,O,EAAS;AACjB,wBAAMkO,SAAN,YAAgBlO,OAAhB;AACA,SAAKyS,EAAL,CAAQogB,IAAR,GAAe,CAAC,CAAC7yB,QAAQ6yB,IAAzB;AACD,G;;AAED;;;uBACA1kB,e,8BAAkB;AAAA;;AAChB,SAAKC,WAAL,CAAiB,UAACC,MAAD,EAASjN,KAAT,EAAmB;AAClCA,eAAS,cAAIqB,IAAJ,CAAS,OAAKhB,IAAd,EAAoB,iBAApB,EAAuC,EAAE4M,cAAF,EAAUjN,YAAV,EAAvC,CAAT;;AAEA;AACAiN,gBAAUi7B,QAAQC,QAAR,CAAiB;AAAA,eAAM,CAAC,OAAKtB,UAAN,IAAoB,OAAK76B,IAAL,EAA1B;AAAA,OAAjB,CAAV;AACD,KALD;AAMD,G;;AAED;;;uBACAgB,W,wBAAYE,E,EAAI;AACd,QAAI,KAAKtO,OAAL,CAAawpC,kBAAjB,EACEl7B,GAAG,IAAH,EAAS,IAAT;;AAEF,QAAIyc,OAAO;AACTrR,eAAS,KAAK1Z,OAAL,CAAaypC,eAAb,IAAgC,GADhC;AAETjwB,cAAQ,KAAKxZ,OAAL,CAAa4f,QAAb,CAAsBqpB,UAAtB,IAAoC,KAFnC;AAGTxvB,aAAO,KAAKzZ,OAAL,CAAa6tB,IAAb,IAAqB,KAHnB,CAG0B;;;AAGrC;AANW,KAAX,CAOA,IAAI,kBAAQ5O,QAAR,IAAoB,mBAAYjf,OAAZ,CAAoBsa,YAA5C,EACEyQ,KAAK1Y,OAAL,GAAe,KAAKI,EAApB;;AAEF;AACA;AACA;AACA,iCAAiBnE,EAAjB,EAAqByc,IAArB;AACD,G;;uBAEDse,oB,iCAAqBK,M,EAAQ;AAC3B,SAAKC,eAAL,GAAuBD,OAAOvjC,GAAP,CAAW,iBAAS;AACzC,aAAO;AACLyjC,cAAMjoB,MAAMioB,IAAN,IAAc,WADf,EAC4B;AACjC5K,eAAOrd,MAAMqd,KAFR;AAGL6K,cAAMloB,MAAMkoB,IAHP;AAILzxB,aAAKuJ,MAAMvJ;AAJN,OAAP;AAMD,KAPsB,CAAvB;AAQD,G;;AAED;;;;;;;;uBAMAwrB,S,sBAAUC,M,EAAQ;AAChB,QAAI,KAAKpxB,EAAL,CAAQ2F,GAAR,KAAgByrB,MAApB,EACE;;AAEF,SAAKtB,UAAL,GAAkB,KAAlB;AACA,SAAK9vB,EAAL,CAAQ2F,GAAR,GAAcyrB,MAAd;AACA,SAAK7T,IAAL,GAAY,KAAKvd,EAAL,CAAQ2F,GAApB;AACD,G;;uBAED0xB,iB,8BAAkBz4B,C,EAAG;AACnB,SAAK04B,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAO8C,uBAApB,EAA6C,EAAEua,UAAUnR,EAAE24B,MAAF,CAASxnB,QAArB,EAA+BzR,MAAMM,CAArC,EAA7C;AACA,SAAKysB,eAAL;AACA,QAAMmM,kBAAkB,OAAQ,KAAKlqC,QAAL,CAAckqC,eAAtB,KAA2C,WAA3C,IAA0D,KAAKlqC,QAAL,CAAckqC,eAAhG;AACA,QAAI,KAAKn8B,eAAL,OAA2B,mBAASgB,IAApC,IAA4Cm7B,eAAhD,EACE,KAAKzY,iBAAL;AAEH,G;;uBAEDwS,iB,gCAAoB;AAClB,SAAKlG,eAAL;AACA,SAAK3Q,aAAL;AACA;AACA,SAAKwY,WAAL;AACD,G;;uBAED7H,e,8BAAkB;AAChB;AACA;AACA,QAAI,KAAKhwB,eAAL,OAA2B,mBAASc,GAApC,IAA2C,KAAKd,eAAL,OAA2B,mBAASe,GAAnF,EACE,KAAK3B,QAAL,CAAcijB,IAAd,GAAqB,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,CAArB,CADF,KAGE,KAAKjjB,QAAL,CAAcijB,IAAd,GAAqB,CAAC,UAAD,CAArB;;AAEF,SAAKjjB,QAAL,CAAcmjB,WAAd,GAA4B,KAAKkU,aAAL,EAA5B;AACA,SAAKp/B,OAAL,CAAa,iBAAO6C,uBAApB;AACD,G;;uBAEDu8B,a,4BAAgB;AACd,WAAOtwB,SAAS,KAAKrG,WAAL,EAAT,CAAP;AACD,G;;uBAEDE,e,8BAAkB;AAChB,QAAMo8B,eAAe,KAAKn3B,OAAL,KAAiB,OAAjB,GAA2B,mBAASlE,GAApC,GAA0C,mBAASD,GAAxE;AACA,WAAO,CAAC,CAAD,EAAIY,SAAJ,EAAe26B,QAAf,EAAyB/wB,OAAzB,CAAiC,KAAK3G,EAAL,CAAQ+P,QAAzC,KAAsD,CAAtD,GAA0D,mBAAS1T,IAAnE,GAA0Eo7B,YAAjF;AACD,G;;uBAEDl8B,qB,oCAAwB;AACtB,WAAO,KAAP;AACD,G;;AAED;AACA;;;uBACAb,O,sBAAU;AACR,QAAI,CAAC,KAAKU,SAAL,EAAL,EAAuB;AACrB,0BAAMV,OAAN;AACA,WAAKsF,EAAL,CAAQoV,IAAR;AACD;AACF,G;;uBAEDza,I,mBAAO;AACL,SAAKjI,OAAL,CAAa,iBAAOyD,oBAApB;AACA,SAAKy/B,QAAL,GAAgB,KAAhB;AACA,SAAKzE,SAAL,CAAe,KAAK5T,IAApB;AACA,SAAK+Z,sBAAL;AACA,QAAIlwB,UAAU,KAAKpH,EAAL,CAAQrF,IAAR,EAAd;AACA;AACA,QAAIyM,WAAWA,QAAQK,KAAvB,EACEL,QAAQK,KAAR,CAAc,YAAM,CAAE,CAAtB;AAEH,G;;uBAED7M,K,oBAAQ;AACN,SAAKoF,EAAL,CAAQpF,KAAR;AACD,G;;uBAEDC,I,mBAAO;AACL,SAAKD,KAAL;AACA,SAAKg7B,QAAL,GAAgB,IAAhB;AACA;AACA,SAAK51B,EAAL,CAAQ23B,eAAR,CAAwB,KAAxB;AACA,SAAK33B,EAAL,CAAQoV,IAAR,GALK,CAKU;AACf,SAAKwiB,yBAAL;AACA,SAAKN,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAO8D,aAApB;AACD,G;;uBAEDgF,M,mBAAO7H,K,EAAO;AACZ,QAAIA,UAAU,CAAd,EAAiB;AACf,WAAKoL,GAAL,CAASwB,IAAT,CAAc,EAAEyG,OAAO,MAAT,EAAd;AACA,WAAKhH,EAAL,CAAQgH,KAAR,GAAgB,IAAhB;AACD,KAHD,MAGO;AACL,WAAKjI,GAAL,CAASwB,IAAT,CAAc,EAAEyG,OAAO,IAAT,EAAd;AACA,WAAKhH,EAAL,CAAQgH,KAAR,GAAgB,KAAhB;AACA,WAAKhH,EAAL,CAAQxE,MAAR,GAAiB7H,QAAQ,GAAzB;AACD;AACF,G;;AAED;;;;;;uBAIAynB,I,mBAAO;AACL,SAAKpb,EAAL,CAAQgH,KAAR,GAAgB,IAAhB;AACD,G;;AAED;;;;;;uBAIAuU,M,qBAAS;AACP,SAAKvb,EAAL,CAAQgH,KAAR,GAAgB,KAAhB;AACD,G;;uBAED6wB,O,sBAAU;AACR,WAAO,KAAK73B,EAAL,CAAQgH,KAAR,KAAkB,IAAlB,IAA0B,KAAKhH,EAAL,CAAQxE,MAAR,KAAmB,CAApD;AACD,G;;uBAEDJ,S,wBAAY;AACV,WAAO,CAAC,KAAK4E,EAAL,CAAQ8O,MAAT,IAAmB,CAAC,KAAK9O,EAAL,CAAQoN,KAAnC;AACD,G;;uBAMD0qB,0B,yCAA6B;AAC3B,QAAI,KAAKnC,oBAAL,KAA8B,IAAlC,EACE;;AAEF,SAAKoC,0BAAL,GAAkC,IAAlC;AACA,SAAKC,0BAAL;AACA,SAAKrC,oBAAL,GAA4BjhB,YAAY,KAAKsjB,0BAAL,CAAgC/3B,IAAhC,CAAqC,IAArC,CAAZ,EAAwD,GAAxD,CAA5B;AACD,G;;uBAED23B,yB,wCAA4B;AAC1B,QAAI,KAAKjC,oBAAL,KAA8B,IAAlC,EACE;;AAEF1gB,kBAAc,KAAK0gB,oBAAnB;AACA,SAAKA,oBAAL,GAA4B,IAA5B;AACA,SAAKD,eAAL,GAAuB,KAAvB;AACD,G;;uBAEDsC,0B,yCAA6B;AAC3B,QAAMC,SAAS,KAAKF,0BAApB;AACA,QAAMj3B,MAAM,KAAKd,EAAL,CAAQuI,WAApB;AACA,SAAKmtB,eAAL,GAAuBuC,WAAWn3B,GAAlC;AACA,SAAKi3B,0BAAL,GAAkCj3B,GAAlC;AACA,SAAKw2B,sBAAL;AACD,G;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;uBACAY,U,yBAAa;AACX,SAAKzC,YAAL,GAAoB,IAApB;AACA,SAAK6B,sBAAL;AACD,G;;AAED;AACA;AACA;AACA;AACA;AACA;;;uBACAa,a,4BAAgB;AACd,SAAK1C,YAAL,GAAoB,IAApB;AACA,SAAK6B,sBAAL;AACD,G;;AAED;;;uBACAc,U,yBAAa;AACX,SAAKd,sBAAL;AACD,G;;uBAEDe,U,yBAAa;AACX,SAAKC,uBAAL;AACA,SAAKR,0BAAL;AACA,SAAKR,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAO0D,aAApB;AACD,G;;uBAEDikB,Q,uBAAW;AACT,SAAKud,yBAAL;AACA,SAAKN,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAO2D,cAApB;AACD,G;;uBAEDkiC,U,yBAAa;AACX,SAAKjB,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAO4D,aAApB;AACD,G;;uBAEDkiC,S,wBAAY;AACV,SAAKlB,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAO6D,eAApB;AACD,G;;uBAEDgkB,Q,uBAAW;AACT,SAAK+c,sBAAL;AACA,SAAK5kC,OAAL,CAAa,iBAAOwD,cAApB,EAAoC,KAAKlH,IAAzC;AACD,G;;AAED;AACA;AACA;AACA;AACA;;;uBACAsoC,sB,qCAAyB;AACvB,QAAMmB,yBAAyB,CAAC,KAAKz4B,EAAL,CAAQoN,KAAT,IAAkB,CAAC,KAAKpN,EAAL,CAAQ8O,MAA1D;AACA,QAAMzB,YAAY,KAAKooB,YAAL,IAAqB,CAAC,KAAKz1B,EAAL,CAAQoN,KAA9B,IAAuC,CAAC,KAAKwoB,QAA7C,KAA2D6C,0BAA0B,CAAC,KAAK/C,eAAjC,IAAqD,KAAK11B,EAAL,CAAQ04B,UAAR,GAAqB,KAAK14B,EAAL,CAAQ24B,gBAA5I,CAAlB;AACA,QAAI,KAAKpD,YAAL,KAAsBloB,SAA1B,EAAqC;AACnC,WAAKkoB,YAAL,GAAoBloB,SAApB;AACA,UAAIA,SAAJ,EACE,KAAK3a,OAAL,CAAa,iBAAO2C,kBAApB,EAAwC,KAAKrG,IAA7C,EADF,KAGE,KAAK0D,OAAL,CAAa,iBAAO4C,mBAApB,EAAyC,KAAKtG,IAA9C;AAEH;AACF,G;;uBAEDyrB,Q,uBAAW;AAAA,eACiB,KAAKza,EAAL,CAAQrR,KAAR,IAAiBwmC,aADlC;AAAA,QACDhmC,IADC,QACDA,IADC;AAAA,QACKY,OADL,QACKA,OADL;;AAET,QAAM6oC,iBAAiBzpC,SAASgmC,cAAchmC,IAA9C;;AAEA,QAAM42B,iBAAiB,KAAKr3B,WAAL,CAAiB;AACtCS,gBADsC;AAEtCE,mBAAaU,OAFyB;AAGtCN,WAAK,KAAKuQ,EAAL,CAAQrR,KAHyB;AAItCW,aAAOspC,iBAAiB,gBAAYrpC,MAAZ,CAAmBynB,IAApC,GAA2C,gBAAYznB,MAAZ,CAAmBC;AAJ/B,KAAjB,CAAvB;;AAOA,QAAIopC,cAAJ,EACE,cAAI5oC,IAAJ,CAAS,KAAKhB,IAAd,EAAoB,uBAApB,EAA6C+2B,cAA7C,EADF,KAGE,KAAKrzB,OAAL,CAAa,iBAAO+D,cAApB,EAAoCsvB,cAApC;AACH,G;;uBAED93B,O,sBAAU;AACR,SAAKunC,UAAL,GAAkB,IAAlB;AACA,SAAKqD,qBAAL,IAA8B,KAAK74B,EAAL,CAAQ84B,UAAR,CAAmBC,mBAAnB,CAAuC,QAAvC,EAAiD,KAAKF,qBAAtD,CAA9B;AACA,wBAAM5qC,OAAN;AACA,SAAK+R,EAAL,CAAQ23B,eAAR,CAAwB,KAAxB;AACA,SAAK33B,EAAL,CAAQoV,IAAR,GALQ,CAKO;AACf,SAAKmI,IAAL,GAAY,IAAZ;AACA,uBAAYxV,OAAZ,CAAoB,KAAKhJ,GAAzB;AACD,G;;uBAEDjE,I,iBAAKC,I,EAAM;AACT,SAAKiF,EAAL,CAAQuI,WAAR,GAAsBxN,IAAtB;AACD,G;;uBAEDC,c,2BAAeC,U,EAAY;AACzB,QAAMF,OAAO,KAAKiF,EAAL,CAAQ+P,QAAR,IAAoB9U,aAAa,GAAjC,CAAb;AACA,SAAKH,IAAL,CAAUC,IAAV;AACD,G;;uBAEDgkB,iB,gCAAoB;AAClB,QAAMC,WAAW,iCAAjB;AACA,QAAIA,aAAa,CAAjB,EACE,KAAKlkB,IAAL,CAAUkkB,QAAV;AAEH,G;;uBAEDhP,c,6BAAiB;AACf,WAAO,KAAKhQ,EAAL,CAAQuI,WAAf;AACD,G;;uBAEDpN,W,0BAAc;AACZ,WAAO,KAAK6E,EAAL,CAAQ+P,QAAf;AACD,G;;uBAED2K,a,4BAAgB;AACd,QAAI,KAAKrf,eAAL,OAA2B,mBAASgB,IAAxC,EACE,KAAK3J,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,CAAX,EAAcoO,OAAO,CAArB,EAAzC,EAAmE,KAAKvvB,IAAxE,EADF,KAGE,KAAK0D,OAAL,CAAa,iBAAOyC,mBAApB,EAAyC,EAAEgb,SAAS,KAAKnQ,EAAL,CAAQuI,WAAnB,EAAgCgW,OAAO,KAAKve,EAAL,CAAQ+P,QAA/C,EAAzC,EAAoG,KAAK/gB,IAAzG;AAEH,G;;uBAEDkkC,W,0BAAc;AACZ,QAAI,CAAC,KAAKlzB,EAAL,CAAQgsB,QAAR,CAAiBh7B,MAAtB,EACE;;AAEF,QAAIg7B,WAAW,EAAf;AACA,QAAImH,cAAc,CAAlB;AACA,SAAK,IAAIriC,IAAI,CAAb,EAAiBA,IAAI,KAAKkP,EAAL,CAAQgsB,QAAR,CAAiBh7B,MAAtC,EAA8CF,GAA9C,EAAmD;AACjDk7B,4DAAeA,QAAf,IAAyB,EAAEpN,OAAO,KAAK5e,EAAL,CAAQgsB,QAAR,CAAiBpN,KAAjB,CAAuB9tB,CAAvB,CAAT,EAAoCsiC,KAAK,KAAKpzB,EAAL,CAAQgsB,QAAR,CAAiBoH,GAAjB,CAAqBtiC,CAArB,CAAzC,EAAzB;AACA,UAAI,KAAKkP,EAAL,CAAQuI,WAAR,IAAuByjB,SAASl7B,CAAT,EAAY8tB,KAAnC,IAA4C,KAAK5e,EAAL,CAAQuI,WAAR,IAAuByjB,SAASl7B,CAAT,EAAYsiC,GAAnF,EACED,cAAcriC,CAAd;AAEH;AACD,QAAMuiC,WAAW;AACfzU,aAAOoN,SAASmH,WAAT,EAAsBvU,KADd;AAEfzO,eAAS6b,SAASmH,WAAT,EAAsBC,GAFhB;AAGf7U,aAAO,KAAKve,EAAL,CAAQ+P;AAHA,KAAjB;AAKA,SAAKrd,OAAL,CAAa,iBAAOwC,iBAApB,EAAuCm+B,QAAvC,EAAiDrH,QAAjD;AACD,G;;uBAEDgN,Q,qBAASrzB,G,EAAK;AACZ,QAAIuD,YAAYgT,WAAWmZ,gBAAX,CAA4B1vB,GAA5B,EAAiCmvB,SAAjC,EAA4C,KAAKvnC,OAAL,CAAa2O,QAAzD,CAAhB;AACA,QAAIgN,UAAUlY,MAAV,KAAqB,CAAzB,EACEkY,YAAYgT,WAAWmZ,gBAAX,CAA4B1vB,GAA5B,EAAiCqvB,eAAjC,EAAkD,KAAKznC,OAAL,CAAa2O,QAA/D,CAAZ;;AAEF,QAAMA,WAAWgN,UAAU,CAAV,KAAgB,EAAjC;AACA,WAAOhN,SAASrL,KAAT,CAAe,GAAf,EAAoB,CAApB,CAAP;AACD,G;;uBAED4nB,M,qBAAS;AACP,QAAI,KAAKoF,aAAT,EACE;;AAEF,SAAKA,aAAL,GAAqB,IAArB;AACA,SAAKnrB,OAAL,CAAa,iBAAO0C,cAApB,EAAoC,KAAKpG,IAAzC;AACD,G;;uBAEDspC,uB,sCAA0B;AACxB;AACA,QAAI,KAAKW,YAAL,IAAqB,CAAC,KAAKnJ,UAA/B,EAA2C;AACzC,UAAI,KAAKxiB,uBAAT,EAAkC;AAChC,aAAK5a,OAAL,CAAa,iBAAOmE,2BAApB;AACA,YAAMkF,UAAU,KAAKwR,qBAArB;AACA,aAAKA,qBAAL,GAA6BxR,OAA7B;AACA,aAAK88B,qBAAL,GAA6B,KAAKK,sBAAL,CAA4Bj5B,IAA5B,CAAiC,IAAjC,CAA7B;AACA,aAAKD,EAAL,CAAQ84B,UAAR,CAAmBK,gBAAnB,CAAoC,QAApC,EAA8C,KAAKN,qBAAnD;AACD;AACD,WAAK/I,UAAL,GAAkB,IAAlB;AACD;AACF,G;;uBAEDoJ,sB,qCAAyB;AACvB,QAAIjC,SAAS,KAAKn7B,oBAAlB;AACA,QAAIoT,QAAQ+nB,OAAO36B,IAAP,CAAY;AAAA,aAAS4S,MAAMA,KAAN,CAAYkqB,IAAZ,KAAqB,SAA9B;AAAA,KAAZ,KAAwD,EAAElmC,IAAI,CAAC,CAAP,EAApE;;AAEA,QAAI,KAAK2iC,UAAL,KAAoB3mB,MAAMhc,EAA9B,EAAkC;AAChC,WAAK2iC,UAAL,GAAkB3mB,MAAMhc,EAAxB;AACA,WAAKR,OAAL,CAAa,iBAAOoE,yBAApB,EAA+C;AAC7C5D,YAAIgc,MAAMhc;AADmC,OAA/C;AAGD;AACF,G;;uBAuDDqL,M,qBAAS;AACP,QAAI,KAAKhR,OAAL,CAAa4f,QAAb,CAAsB2oB,kBAA1B,EAA8C;AAC5C,WAAK/2B,GAAL,CAAShN,EAAT,CAAY,aAAZ,EAA2B,YAAM;AAC/B,eAAO,KAAP;AACD,OAFD;AAGD;;AAED,QAAI,KAAKmlC,eAAL,IAAwB,KAAKA,eAAL,CAAqBlmC,MAArB,GAA8B,CAA1D,EAA6D;AAC3D,WAAK+N,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc;AAC1Bo4B,gBAAQ,KAAKC;AADa,OAAd,CAAd;AAGD;;AAED,SAAKze,MAAL;AACA,WAAO,IAAP;AACD,G;;;;wBAxSa;AACZ,aAAO,KAAKoF,aAAZ;AACD;;;wBAkOkB;AACjB,aAAO,KAAK7uB,IAAL,KAAcktB,WAAWhuB,SAAX,CAAqBc,IAA1C;AACD;;;wBAE0B;AACzB,UAAIkE,KAAK,CAAT;AACA,UAAI6I,UAAU,SAAVA,OAAU,GAAM;AAAE,eAAO7I,IAAP;AAAa,OAAnC;AACA,UAAI4lC,aAAa,KAAK94B,EAAL,CAAQ84B,UAAR,GAAqB,oBAAW,KAAK94B,EAAL,CAAQ84B,UAAnB,CAArB,GAAsD,EAAvE;;AAEA,aAAOA,WACJ/kC,MADI,CACG;AAAA,eAASmb,MAAMioB,IAAN,KAAe,WAAf,IAA8BjoB,MAAMioB,IAAN,KAAe,UAAtD;AAAA,OADH,EAEJzjC,GAFI,CAEA,iBAAS;AAAE,eAAO,EAAER,IAAI6I,SAAN,EAAiB/M,MAAMkgB,MAAMqd,KAA7B,EAAoCrd,OAAOA,KAA3C,EAAP;AAA2D,OAFtE,CAAP;AAGD;;;wBAE2B;AAC1B,aAAO,KAAK2mB,UAAZ;AACD,K;sBAEyB95B,O,EAAS;AACjC,UAAI,CAAC,qBAASA,OAAT,CAAL,EACE;;AAGF,UAAIk7B,SAAS,KAAKn7B,oBAAlB;AACA,UAAIu9B,qBAAJ;;AAEA;AACA,UAAIt9B,YAAY,CAAC,CAAjB,EAAoB;AAClBs9B,uBAAepC,OAAO36B,IAAP,CAAY;AAAA,iBAAS4S,MAAMhc,EAAN,KAAa6I,OAAtB;AAAA,SAAZ,CAAf;AACA,YAAI,CAACs9B,YAAL,EACE,OAHgB,CAGT;;AAET,YAAIA,aAAanqB,KAAb,CAAmBkqB,IAAnB,KAA4B,SAAhC,EACE,OANgB,CAMT;AAEV;;AAED;AACA;AACAnC,aACGljC,MADH,CACU;AAAA,eAASmb,MAAMA,KAAN,CAAYkqB,IAAZ,KAAqB,QAA9B;AAAA,OADV,EAEGjlC,OAFH,CAEW;AAAA,eAAS+a,MAAMA,KAAN,CAAYkqB,IAAZ,GAAmB,QAA5B;AAAA,OAFX;;AAIAC,uBAAiBA,aAAanqB,KAAb,CAAmBkqB,IAAnB,GAA0B,SAA3C;;AAEA,WAAKvD,UAAL,GAAkB95B,OAAlB;AACA,WAAKrJ,OAAL,CAAa,iBAAOoE,yBAApB,EAA+C;AAC7C5D,YAAI6I;AADyC,OAA/C;AAGD;;;wBAEc;AAAE,aAAO,yCAAP;AAA6B;;;;;kBAhjB3BmgB,U;;;AAokBrBA,WAAWmZ,gBAAX,GAA8B,UAASV,WAAT,EAAsB2E,oBAAtB,EAA4Cp9B,QAA5C,EAAsD;AAClF,MAAMq9B,YAAY,CAAC5E,YAAY9jC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BqN,KAA1B,CAAgC,WAAhC,KAAgD,EAAjD,EAAqD,CAArD,CAAlB;AACA,MAAIgL,YAAYhN,YAAaq9B,aAAaD,qBAAqBC,UAAU9lC,WAAV,EAArB,CAA1B,IAA4E,EAA5F;AACA,SAAQyV,UAAUpa,WAAV,KAA0BoB,KAA3B,GAAoCgZ,SAApC,GAAgD,CAACA,SAAD,CAAvD;AACD,CAJD;;AAMAgT,WAAW2Y,QAAX,GAAsB,UAASxmC,IAAT,EAAeirC,oBAAf,EAAqC3E,WAArC,EAAkDz4B,QAAlD,EAA4D;AAChF,MAAIgN,YAAYgT,WAAWmZ,gBAAX,CAA4BV,WAA5B,EAAyC2E,oBAAzC,EAA+Dp9B,QAA/D,CAAhB;AACA,MAAMs9B,QAAQv3B,SAASiF,aAAT,CAAuB7Y,IAAvB,CAAd;AACA,SAAO,CAAC,CAAE6a,UAAUnV,MAAV,CAAiB;AAAA,WAAa,CAAC,CAACylC,MAAMC,WAAN,CAAkBC,SAAlB,EAA6Bz7B,OAA7B,CAAqC,IAArC,EAA2C,EAA3C,CAAf;AAAA,GAAjB,EAAgF,CAAhF,CAAV;AACD,CAJD;;AAMAie,WAAWlgB,OAAX,GAAqB,UAAS24B,WAAT,EAAsBz4B,QAAtB,EAAgC;AACnD,SAAOggB,WAAW2Y,QAAX,CAAoB,OAApB,EAA6BG,eAA7B,EAA8CL,WAA9C,EAA2Dz4B,QAA3D,KACAggB,WAAW2Y,QAAX,CAAoB,OAApB,EAA6BC,SAA7B,EAAwCH,WAAxC,EAAqDz4B,QAArD,CADP;AAED,CAHD;;;;;;;;;;;;;;;;;;;;ACxnBA;;;;;;;;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,kcAAuO;;AAE7P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;ACnBf,oCAAoC,mBAAmB,OAAO,0LAA0L,O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIxP;;;;AACA;;;;AACA;;;;IAEqBigB,O;;;oBAiBnB9gB,e,8BAAkB;AAChB,WAAO,mBAASC,KAAhB;AACD,G;;;;wBAlBU;AAAE,aAAO,UAAP;AAAmB;;;wBAClB;AAAE,aAAO,KAAP;AAAc;;;wBACb;AACf,aAAO;AACL,yBAAiB;AADZ,OAAP;AAGD;;;wBAEY;AACX,aAAO;AACL,gBAAQ,SADH;AAEL,iBAAS,UAFJ;AAGL,iBAAS;AAHJ,OAAP;AAKD;;;AAMD,mBAAYiJ,MAAZ,EAAoB;AAAA;;AAAA,+DAClB,qBAAMA,MAAN,CADkB;;AAElB,UAAKvE,EAAL,CAAQ2F,GAAR,GAAcpB,OAAOoB,GAArB;AAFkB;AAGnB;;oBAEDpH,M,qBAAS;AACP,SAAK7L,OAAL,CAAa,iBAAO0C,cAApB,EAAoC,KAAKpG,IAAzC;AACA,WAAO,IAAP;AACD,G;;oBAED2qC,O,sBAAU;AACR,SAAKjnC,OAAL,CAAa,iBAAOwD,cAApB,EAAoC,KAAKlH,IAAzC;AACD,G;;oBAEDyrB,Q,qBAAS/J,G,EAAK;AACZ,QAAMkpB,IAAKlpB,IAAIriB,IAAJ,KAAa,OAAd,GAAyB,YAAzB,GAAwC,iBAAlD;AACA,SAAKqE,OAAL,CAAa,iBAAO+D,cAApB,EAAoC,EAAE1G,SAAS6pC,CAAX,EAApC,EAAoD,KAAK5qC,IAAzD;AACD,G;;;uBA9CH;AACA;AACA;;kBAMqBmtB,O;;;AAyCrBA,QAAQngB,OAAR,GAAkB,UAASyjB,QAAT,EAAmB;AACnC,SAAO,uDAAsD9uB,IAAtD,CAA2D8uB,QAA3D;AAAP;AACD,CAFD;;;;;;;;;;;;;;;;;;;ACjDA;;;;;;;;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,+bAAuO;;AAE7P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;ACnBf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBrD,I;;;;wBACR;AAAE,aAAO,OAAP;AAAgB;;;wBACd;AAAE,aAAO,wCAAP;AAA2B;;;wBAC3B;AACf,aAAO,EAAE,cAAc,EAAhB,EAAP;AACD;;;AAED,kBAAqB;AAAA;;AAAA,sCAANjrB,IAAM;AAANA,UAAM;AAAA;;AAAA,+DACnB,8CAASA,IAAT,EADmB;;AAEnB,UAAK0oC,cAAL,GAAsB,CAAC,CAAvB;AAFmB;AAGpB;;iBAEDt7B,M,qBAAS;AACP,QAAMu7B,uBAAuB,KAAKvsC,OAAL,CAAawsC,2BAAb,IAA4C,KAAK9qC,IAAL,CAAUa,CAAV,CAAY,wBAAZ,CAAzE;AACA,SAAKiP,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc,EAAE9O,SAAS+pC,oBAAX,EAAd,CAAd;AACA,SAAKpnC,OAAL,CAAa,iBAAO0C,cAApB,EAAoC,KAAKpG,IAAzC;AACA,QAAMgrC,cAAc,CAAC,EAAE,KAAKzsC,OAAL,CAAa4oC,MAAb,IAAuB,KAAK5oC,OAAL,CAAa4oC,MAAb,CAAoB6D,WAA7C,CAArB;AACA,QAAI,KAAKzsC,OAAL,CAAa4tB,QAAb,IAAyB,CAAC6e,WAA9B,EACE,KAAKC,QAAL;;AAEF,WAAO,IAAP;AACD,G;;iBAEDC,M,qBAAS;AACP,SAAKL,cAAL,GAAsB,CAAC,KAAKA,cAAL,GAAoB,CAArB,IAAwB,CAA9C;AACA,QAAI,KAAKA,cAAT,EAAyB;AACvB;AACA;AACD;;AAED,QAAMM,QAAQ,KAAKnoC,OAAL,CAAaooC,eAAb,CAA6B,KAAKpoC,OAAL,CAAaqoC,MAAb,CAAoB/uB,KAAjD,EAAwD,KAAKtZ,OAAL,CAAaqoC,MAAb,CAAoB9uB,MAA5E,CAAd;AACA,QAAI+uB,iBAAJ;AACA,QAAI;AACFA,iBAAW,IAAIC,WAAJ,CAAgBJ,MAAM77B,IAAN,CAAWk8B,MAA3B,CAAX;AACD,KAFD,CAEE,OAAO9yB,GAAP,EAAY;AACZ4yB,iBAAW,IAAIC,WAAJ,CAAgB,KAAKvoC,OAAL,CAAaqoC,MAAb,CAAoB/uB,KAApB,GAA4B,KAAKtZ,OAAL,CAAaqoC,MAAb,CAAoB9uB,MAAhD,GAAyD,CAAzE,CAAX;AACA,UAAMjN,OAAK67B,MAAM77B,IAAjB;AACA,WAAK,IAAIxN,IAAI,CAAb,EAAgBA,IAAIwN,KAAKtN,MAAzB,EAAiCF,GAAjC;AACEwpC,iBAASxpC,CAAT,IAAYwN,KAAKxN,CAAL,CAAZ;AADF;AAGD;;AAED,QAAM8L,MAAM09B,SAAStpC,MAArB;AAAA,QACE4oC,IAAI7O,KAAK0P,MAAL,KAAgB,CAAhB,GAAoB,CAD1B;AAEA,QAAIhpC,MAAM,CAAV;AAAA,QACEipC,QAAQ,CADV;AAEA,SAAK,IAAI5pC,KAAI,CAAb,EAAgBA,KAAI8L,GAApB,GAA0B;AACxB,UAAInL,MAAM,CAAV,EAAa;AACXA,cAAMmoC,IAAI7O,KAAK0P,MAAL,EAAV;AACA,YAAMxoB,IAAI8Y,KAAK4P,GAAL,CAAS5P,KAAK0P,MAAL,EAAT,EAAwB,GAAxB,CAAV;AACAC,gBAAS,MAAMzoB,CAAP,IAAa,EAArB;AACD;AACDxgB,aAAO,CAAP;AACA6oC,eAASxpC,IAAT,IAAgB4pC,KAAhB;AACD;AACD,SAAK1oC,OAAL,CAAa4oC,YAAb,CAA0BT,KAA1B,EAAiC,CAAjC,EAAoC,CAApC;AACD,G;;iBAEDha,K,oBAAQ;AAAA;;AACN,QAAI,KAAK0a,KAAT,EACE;;AAEF,SAAKX,MAAL;AACA,SAAKY,gBAAL,GAAwB,kCAAsB;AAAA,aAAM,OAAK3a,KAAL,EAAN;AAAA,KAAtB,CAAxB;AACD,G;;iBAEDlyB,O,sBAAU;AACR,QAAI,KAAK6sC,gBAAT,EAA2B;AACzB,uCAAqB,KAAKA,gBAA1B;AACA,WAAKD,KAAL,GAAa,IAAb;AACD;AACF,G;;iBAEDZ,Q,uBAAW;AACT,SAAKI,MAAL,GAAc,KAAKt7B,GAAL,CAASzC,IAAT,CAAc,2BAAd,EAA2C,CAA3C,CAAd;AACA,SAAKtK,OAAL,GAAe,KAAKqoC,MAAL,CAAYU,UAAZ,CAAuB,IAAvB,CAAf;AACA,SAAK5a,KAAL;AACD,G;;;;;kBA7EkB/D,I;;;AAgFrBA,KAAKpgB,OAAL,GAAe,UAACC,MAAD,EAAY;AAAE;AAC3B,SAAO,IAAP;AACD,CAFD;;;;;;;;;;;;ACvFA,4F;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,4bAAuO;;AAE7P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACff;;;;AACA;;;;AACA;;;;;;IAEqBogB,kB;;;;wBACR;AAAE,aAAO,gBAAP;AAAyB;;;AAEtC,8BAAY3uB,SAAZ,EAAuB;AAAA;AAAA,0DACrB,4BAAMA,SAAN,CADqB;AAEtB;;+BAEDG,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO8K,eAArC,EAAsD,KAAKwiC,KAA3D;AACA,SAAK/mC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOyL,wBAArC,EAA+D,KAAKgV,cAApE;AACD,G;;+BAED6sB,K,oBAAQ;AACN,QAAI,KAAKttC,SAAL,CAAe2N,eAAf,OAAqC,mBAASgB,IAA9C,IAAsD,KAAK3O,SAAL,CAAe8hB,YAAf,EAA1D,EAAyF;AACvF,UAAI,KAAK9hB,SAAL,CAAe0N,SAAf,EAAJ,EACE,KAAK1N,SAAL,CAAekN,KAAf,GADF,KAGE,KAAKlN,SAAL,CAAeiN,IAAf;AAEH;AACF,G;;+BAEDwT,c,6BAAiB;AACf,QAAM8sB,iBAAiB,KAAKvtC,SAAL,CAAe2N,eAAf,OAAqC,mBAASgB,IAA9C,IAAsD,KAAK3O,SAAL,CAAe8hB,YAAf,EAA7E;AACA,QAAIyrB,mBAAmB,KAAKA,cAA5B,EAA4C;;AAE5C,QAAM7mC,SAAS6mC,iBAAiB,UAAjB,GAA8B,aAA7C;AACA,SAAKvtC,SAAL,CAAeqR,GAAf,CAAmB3K,MAAnB,EAA2B,iBAA3B;AACA,SAAK6mC,cAAL,GAAsBA,cAAtB;AACD,G;;;+BArCH;AACA;AACA;;kBAMqB5e,kB;;;;;;;;;;;;;;;;;;;ACRrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqB6e,c;;;;wBACR;AAAE,aAAO,iBAAP;AAA0B;;;wBAExB;AAAE,aAAO,kDAAP;AAAyB;;;wBAE7B;AACX,aAAO;AACL,kCAA0B,mBADrB;AAEL,kCAA0B;AAFrB,OAAP;AAID;;;wBAEgB;AACf,aAAO;AACL,iBAAS,aADJ;AAEL,4BAAoB;AAFf,OAAP;AAID;;;AAED,0BAAY3sC,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,QAAM4sC,SAAS5sC,KAAKhB,OAAL,CAAa6tC,oBAA5B;AACA,UAAKC,MAAL,GAAcF,UAAUA,OAAOtrC,KAAjB,GAAyBsrC,OAAOtrC,KAAhC,GAAwC,IAAtD;AACA,UAAKyrC,UAAL,GAAkBH,UAAUA,OAAOI,SAAjB,GAA6BJ,OAAOI,SAApC,GAAgD,WAAlE;AACA,UAAKC,QAAL,GAAgBL,UAAUA,OAAOM,aAAjB,IAAkC,OAAON,OAAOM,aAAd,KAAgC,UAAlE,GACZN,OAAOM,aADK,GAEZ,iBAAS;AAAE,aAAOvsB,MAAMlgB,IAAb;AAAmB,KAFlC;AALgB;AAQjB;;2BAEDnB,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOyI,6BAAhC,EAA+D,KAAK0kC,gBAApE;AACA,SAAKznC,QAAL,CAAc,KAAK1F,IAAL,CAAUotC,YAAxB,EAAsC,iBAAOhiC,qBAA7C,EAAoE,KAAK4E,MAAzE;AACA,SAAKtK,QAAL,CAAc,KAAK1F,IAAL,CAAUotC,YAAxB,EAAsC,iBAAO7hC,iBAA7C,EAAgE,KAAK8hC,eAArE;AACA,SAAKluC,SAAL,GAAiB,KAAKa,IAAL,CAAUwnB,mBAAV,EAAjB;AACA,QAAI,KAAKroB,SAAT,EAAoB;AAClB,WAAKuG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOsK,4BAArC,EAAmE,KAAKmhB,mBAAxE;AACA,WAAKllB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOuK,0BAArC,EAAiE,KAAK4jC,iBAAtE;AACA,WAAK5nC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,KAAKyjC,eAA1D;AACD;AACF,G;;2BAEDA,e,8BAAkB;AAChB,SAAKC,WAAL,CAAiB,KAAjB;AACD,G;;2BAEDL,gB,+BAAmB;AACjB,SAAKK,WAAL,CAAiB,KAAjB;AACA,SAAK/tC,aAAL;AACA,SAAKH,UAAL;AACD,G;;2BAEDsrB,mB,kCAAsB;AACpB,SAAK6iB,cAAL;AACA,SAAKD,WAAL,CAAiB,IAAjB;AACD,G;;2BAEDF,iB,8BAAkB3sB,K,EAAO;AACvB,SAAK+sB,4BAAL,CAAkC/sB,MAAMhc,EAAxC;AACD,G;;2BAEDgpC,a,0BAAc7zB,K,EAAO;AACnB,QAAMtM,UAAU0F,SAAS4G,MAAMkvB,MAAN,CAAa4E,OAAb,CAAqBC,QAA9B,EAAwC,EAAxC,CAAhB;AACA,SAAK1uC,SAAL,CAAe6f,qBAAf,GAAuCxR,OAAvC;AACA,SAAK6/B,eAAL;AACAvzB,UAAMg0B,eAAN;AACA,WAAO,KAAP;AACD,G;;2BAEDN,W,wBAAYO,K,EAAO;AACjB,QAAMloC,SAASkoC,QAAQ,UAAR,GAAqB,aAApC;AACA,SAAKv9B,GAAL,CAAS3K,MAAT,EAAiB,WAAjB;AACD,G;;2BAEDmoC,iB,gCAAoB;AAClB,SAAKx9B,GAAL,CAASzC,IAAT,CAAc,IAAd,EAAoBkgC,MAApB;AACD,G;;2BAEDZ,e,8BAAkB;AAChB,SAAK78B,GAAL,CAASzC,IAAT,CAAc,IAAd,EAAoB2C,IAApB;AACD,G;;2BAEDw9B,kB,+BAAmBvpC,E,EAAI;AACrB,WAAO,KAAK6L,GAAL,CAASzC,IAAT,CAAc,UAAQ,CAACogC,MAAMxpC,EAAN,CAAD,GAAa,sBAAoBA,EAApB,GAAuB,IAApC,GAA2C,EAAnD,CAAd,EAAsEkO,MAAtE,EAAP;AACD,G;;2BAED66B,4B,yCAA6BlgC,O,EAAS;AACpC,QAAI,KAAK4gC,QAAL,KAAkB5gC,OAAtB,EAA+B;AAC7B,WAAK0gC,kBAAL,GAA0BprB,WAA1B,CAAsC,SAAtC;AACA,WAAKorB,kBAAL,CAAwB1gC,OAAxB,EAAiCuV,QAAjC,CAA0C,SAA1C;AACA,UAAMld,SAAS2H,UAAU,CAAC,CAAX,GAAe,UAAf,GAA4B,aAA3C;AACA,WAAK6gC,SAAL,CAAexoC,MAAf,EAAuB,SAAvB;AACA,WAAKuoC,QAAL,GAAgB5gC,OAAhB;AACD;AACF,G;;2BAEDigC,c,6BAAiB;AACf,QAAI/E,SAAS,KAAKvpC,SAAL,GAAiB,KAAKA,SAAL,CAAeoO,oBAAhC,GAAuD,EAApE;AACA,SAAK,IAAIhL,IAAI,CAAb,EAAgBA,IAAImmC,OAAOjmC,MAA3B,EAAmCF,GAAnC;AACEmmC,aAAOnmC,CAAP,EAAUy7B,KAAV,GAAkB,KAAKiP,QAAL,CAAcvE,OAAOnmC,CAAP,CAAd,CAAlB;AADF,KAIA,KAAKiO,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc;AAC1B08B,iBAAW,KAAKD,UADU;AAE1BuB,qBAAe,KAAKtuC,IAAL,CAAUU,IAAV,CAAea,CAAf,CAAiB,UAAjB,CAFW;AAG1BD,aAAO,KAAKwrC,MAHc;AAI1BpE,cAAQA;AAJkB,KAAd,CAAd;;AAOA,SAAK2F,SAAL,GAAiB,KAAK79B,GAAL,CAASzC,IAAT,CAAc,kCAAd,CAAjB;AACA,SAAKsgC,SAAL,CAAerrB,MAAf;AACA,SAAKxS,GAAL,CAASwS,MAAT,CAAgB,KAAKrU,KAArB;AACD,G;;2BAEDqB,M,qBAAS;AACP,SAAKy9B,cAAL;;AAEA,QAAMc,cAAc,KAAKvuC,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BzC,IAA3B,CAAgC,yBAAhC,CAApB;AACA,QAAIwgC,YAAY,CAAZ,CAAJ,EACE,KAAK/9B,GAAL,CAASmf,WAAT,CAAqB4e,WAArB,EADF,KAGE,KAAKvuC,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BzC,IAA3B,CAAgC,gDAAhC,EAAkFygC,OAAlF,CAA0F,KAAKh+B,GAA/F;;AAGF,WAAO,IAAP;AACD,G;;;;;kBA5HkBm8B,c;;;;;;;;;;;;;;;;;;;ACPrB;;;;;;;;;;;;;;;;;;ACAA,uLAAuL,gDAAgD,kGAAkG,mBAAmB,OAAO,0GAA0G,c;;;;;;;;;;;;ACC7c,cAAc,mBAAO,CAAC,wdAAiP;;AAEvQ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBf;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqB5e,W;;;;wBACJ;AAAE,aAAO,wCAAP;AAA0B;;;wBAChC;AAAE,aAAO,cAAP;AAAuB;;;wBACvB;AACX,aAAO;AACL,8BAAsB;AADjB,OAAP;AAGD;;;wBACgB;AACf,aAAO;AACL,iBAAS,cADJ;AAEL,6BAAqB;AAFhB,OAAP;AAID;;;AAED,uBAAY/tB,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,UAAK4f,cAAL;AAFgB;AAGjB;;wBAEDtgB,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK1F,IAAL,CAAUotC,YAAxB,EAAsC,iBAAOxhC,6BAA7C,EAA4E,KAAKuhC,gBAAjF;AACA,SAAKznC,QAAL,CAAc,KAAK1F,IAAL,CAAUotC,YAAxB,EAAsC,iBAAOhiC,qBAA7C,EAAoE,KAAKwU,cAAzE;AACA,SAAKla,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO0I,mBAAhC,EAAqD,KAAKsH,MAA1D;AACA,QAAI,KAAKhQ,IAAL,CAAUwnB,mBAAV,EAAJ,EAAqC;AACnC,WAAK7hB,YAAL,CAAkB,KAAK3F,IAAL,CAAUwnB,mBAAV,EAAlB,EAAmD,iBAAO7d,oBAA1D,EAAgF,KAAKqG,MAArF;AACA,WAAKtK,QAAL,CAAc,KAAK1F,IAAL,CAAUwnB,mBAAV,EAAd,EAA+C,iBAAOte,iCAAtD,EAAyF,KAAKulC,UAA9F;AACD;AACF,G;;wBAEDtB,gB,+BAAmB;AACjB,SAAK1tC,aAAL;AACA,SAAKH,UAAL;AACD,G;;wBAEDmvC,U,uBAAWvtB,U,EAAY;AACrB,QAAI,KAAKlhB,IAAL,CAAU8M,eAAV,OAAgC,mBAASgB,IAA7C,EAAmD;AACnD,SAAK8R,cAAL;AACA,SAAK5f,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BuS,QAA3B,CAAoC,MAApC;AACA,QAAI7B,UAAJ,EAAgB;AACd,WAAKlhB,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BuS,QAA3B,CAAoC,KAApC;AACA,WAAK/iB,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BzC,IAA3B,CAAgC,kFAAhC,EAAoH2C,IAApH;AACD,KAHD,MAGO;AAAE,WAAK1Q,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BsS,WAA3B,CAAuC,KAAvC;AAA+C;AAEzD,G;;wBAED2pB,K,oBAAQ;AACN,QAAMW,eAAe,KAAKptC,IAAL,CAAUotC,YAA/B;AACA,QAAMjuC,YAAYiuC,aAAajuC,SAA/B;AACA,QAAI,CAACA,UAAU0N,SAAV,EAAL,EACE1N,UAAUiN,IAAV;;AAEF,QAAIghC,aAAa58B,GAAb,CAAiBk+B,QAAjB,CAA0B,KAA1B,CAAJ,EACEvvC,UAAUoN,IAAV,CAAepN,UAAUyN,WAAV,EAAf;AAEH,G;;wBAEDgT,c,6BAAiB;AAAA;;AACf,SAAKngB,aAAL;AACA,SAAKO,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BsS,WAA3B,CAAuC,MAAvC;AACA,QAAI,KAAK6rB,YAAL,EAAJ,EAAyB;AACvB,WAAK3+B,MAAL;AACA,WAAKQ,GAAL,CAASi8B,KAAT,CAAe;AAAA,eAAM,OAAKA,KAAL,EAAN;AAAA,OAAf;AACD;AACD,SAAKntC,UAAL;AACD,G;;wBAEDqvC,Y,2BAAe;AACb,QAAMC,iBAAiB,KAAK5uC,IAAL,CAAUhB,OAAV,CAAkB4vC,cAAlB,KAAqCpgC,SAArC,IAAkD,CAAC,CAAC,KAAKxO,IAAL,CAAUhB,OAAV,CAAkB4vC,cAA7F;AACA,WAAOA,kBAAkB,KAAK5uC,IAAL,CAAU8M,eAAV,OAAgC,mBAASgB,IAAlE;AACD,G;;wBAEDkC,M,qBAAS;AACP,SAAKQ,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc;AAC1By0B,YAAM,KAAK/kC,IAAL,CAAUU,IAAV,CAAea,CAAf,CAAiB,MAAjB,CADoB;AAE1BstC,kBAAY,KAAK7uC,IAAL,CAAUU,IAAV,CAAea,CAAf,CAAiB,cAAjB;AAFc,KAAd,CAAd;AAIA,QAAI,KAAKotC,YAAL,EAAJ,EAAyB;AACvB,WAAK3uC,IAAL,CAAUotC,YAAV,CAAuB58B,GAAvB,CAA2BuS,QAA3B,CAAoC,MAApC;AACA,WAAK/iB,IAAL,CAAUotC,YAAV,CAAuBn8B,CAAvB,CAAyB,+CAAzB,EAA0E+R,MAA1E,CAAiF,KAAKxS,GAAtF;AACD;AACD,WAAO,IAAP;AACD,G;;;;;kBAlFkBud,W;;;;;;;;;;;;;;;;;;;ACPrB;;;;;;;;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,+cAA8O;;AAEpQ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;ACnBf,2K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;;;IAEqB+gB,Q;;;;;;;;qBAEnBxvC,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOyI,6BAAhC,EAA+D,KAAK0kC,gBAApE;AACA,QAAMhuC,YAAY,KAAKa,IAAL,CAAUukB,eAA5B;AACA,QAAIplB,SAAJ,EAAe;AACb,WAAKuG,QAAL,CAAcvG,SAAd,EAAyB,iBAAO6K,eAAhC,EAAiD,KAAK6U,KAAtD;AACA,WAAKnZ,QAAL,CAAcvG,SAAd,EAAyB,iBAAO2K,cAAhC,EAAgD,KAAK+U,KAArD;AACD;AACF,G;;qBAEDsuB,gB,+BAAmB;AACjB,SAAK1tC,aAAL;AACA,SAAKH,UAAL;AACD,G;;qBAEDuf,K,oBAAQ;AACN,QAAMkwB,YAAY,OAAQ,KAAK/uC,IAAL,CAAUhB,OAAV,CAAkBgwC,mBAA1B,KAAmD,WAAnD,IAAkE,KAAKhvC,IAAL,CAAUhB,OAAV,CAAkBgwC,mBAAtG;AACA,QAAID,aAAa,KAAK/uC,IAAL,CAAUslB,YAAV,EAAjB,EACE,KAAKtlB,IAAL,CAAU2nB,gBAAV;AAEH,G;;;;wBApBU;AAAE,aAAO,WAAP;AAAoB;;;;;kBADdmnB,Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHrB;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;IAEqBG,W;;;;wBACR;AAAE,aAAO,cAAP;AAAuB;;;wBACrB;AAAE,aAAO,+CAAP;AAA+B;;;wBAChC;AAAE,aAAO,KAAKjvC,IAAL,CAAUwnB,mBAAV,EAAP;AAAwC;;;wBACzC;AACf,aAAO;AACL,iBAAS,qBADJ;AAEL,6BAAqB;AAFhB,OAAP;AAID;;;AAED,uBAAYxnB,IAAZ,EAAkB;AAAA;;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAGhB,QAAI,MAAKhB,OAAL,CAAakwC,kBAAjB,EAAqC,cAAO,MAAK1vC,OAAL,EAAP;AAHrB;AAIjB;;wBAEDF,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOuG,KAAhC,EAAuC,KAAKkkB,OAA5C;AACA,SAAK/kB,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOyI,6BAAhC,EAA+D,KAAK0mC,kBAApE;AACD,G;;wBAEDC,U,yBAAa;AACX,SAAKC,YAAL,GAAoB,KAAK7+B,GAAL,CAASzC,IAAT,CAAc,8BAAd,CAApB;AACA,SAAKshC,YAAL,IAAqB,KAAKA,YAAL,CAAkB7rC,EAAlB,CAAqB,OAArB,EAA8B,KAAK8rC,MAAL,CAAY59B,IAAZ,CAAiB,IAAjB,CAA9B,CAArB;AACD,G;;wBAED49B,M,qBAAS;AAAA;;AACP,SAAK3pC,YAAL,CAAkB,KAAK3F,IAAvB,EAA6B,iBAAO2I,UAApC,EAAgD;AAAA,aAAM,OAAKxJ,SAAL,CAAeiN,IAAf,EAAN;AAAA,KAAhD;AACA,SAAKpM,IAAL,CAAU6mB,IAAV,CAAe,KAAK7nB,OAAL,CAAaskB,OAA5B,EAAqC,KAAKtkB,OAAL,CAAa2O,QAAlD;AACA,SAAK4hC,YAAL;AACD,G;;wBAEDA,Y,2BAAe;AACb,SAAKF,YAAL,IAAqB,KAAKA,YAAL,CAAkBxrC,GAAlB,CAAsB,OAAtB,CAArB;AACD,G;;wBAEDsrC,kB,iCAAqB;AACnB,SAAKh2B,GAAL,GAAW,IAAX;AACA,SAAKo2B,YAAL;AACA,SAAK7+B,IAAL;AACD,G;;wBAED+Z,O,sBAAkB;AAAA,QAAVtR,GAAU,uEAAJ,EAAI;;AAChB,QAAIA,IAAIpY,KAAJ,KAAc,gBAAYC,MAAZ,CAAmBC,KAArC,EAA4C;AAC1C,WAAKkY,GAAL,GAAWA,GAAX;AACA,WAAKha,SAAL,CAAe+gB,mBAAf;AACA,WAAK/gB,SAAL,CAAemN,IAAf;AACA,WAAKmE,IAAL;AACD;AACF,G;;wBAEDA,I,mBAAO;AACL,SAAKT,MAAL;AACA,SAAKQ,GAAL,CAASC,IAAT;AACD,G;;wBAEDC,I,mBAAO;AACL,SAAKF,GAAL,CAASE,IAAT;AACD,G;;wBAEDV,M,qBAAS;AACP,QAAI,CAAC,KAAKmJ,GAAV,EAAe;;AAEf,SAAK3I,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc;AAC1BhP,aAAO,KAAK6X,GAAL,CAAS/X,EAAT,CAAYE,KADO;AAE1BE,eAAS,KAAK2X,GAAL,CAAS/X,EAAT,CAAYI,OAFK;AAG1BZ,YAAM,KAAKuY,GAAL,CAASvY,IAHW;AAI1B4uC,YAAM,KAAKr2B,GAAL,CAAS/X,EAAT,CAAYouC,IAAZ,IAAoB,EAJA;AAK1BC;AAL0B,KAAd,CAAd;;AAQA,SAAKzvC,IAAL,CAAUwQ,GAAV,CAAcwS,MAAd,CAAqB,KAAKvR,EAA1B;;AAEA,SAAK29B,UAAL;;AAEA,WAAO,IAAP;AACD,G;;;;;kBA7EkBH,W;;;;;;;;;;;;;;;;;;;ACTrB;;;;;;;;;;;;;;;;;;ACAA,kGAAkG,2FAA2F,2W;;;;;;;;;;;;ACC7L,cAAc,mBAAO,CAAC,+cAA8O;;AAEpQ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBf;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;;;AAEA,IAAMS,UAAU,2BAAE,2BAAF,CAAhB;;IAEqB1hB,O;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;wBACjB;AAAE,aAAO0hB,OAAP;AAAgB;;;AAEhC,mBAAY1vC,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,uBAAMA,IAAN,CADgB;;AAEhB,UAAK2vC,UAAL,GAAkB,IAAlB;AACA,UAAKziC,SAAL;AAHgB;AAIjB;;oBAEDA,S,wBAAY;AACV,QAAI,KAAKlN,IAAL,CAAUhB,OAAV,CAAkB4wC,aAAtB,EAAqC;AACnC,UAAI,CAAC,KAAKvwC,OAAV,EAAmB;AACjB,aAAKI,aAAL,CAAmB,KAAKO,IAAxB,EAA8B,iBAAO0I,mBAArC;AACA,aAAKnJ,MAAL;AACD;AACF,KALD,MAKO,IAAI,KAAKF,OAAT,EAAkB;AACvB,WAAKG,OAAL;AACA,WAAKkG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO0I,mBAAhC,EAAqD,KAAKwE,SAA1D;AACD;AACF,G;;oBAED5N,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO0I,mBAAhC,EAAqD,KAAKwE,SAA1D;AACA,SAAKxH,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOyI,6BAAhC,EAA+D,KAAK0kC,gBAApE;AACA,SAAKntC,IAAL,CAAUukB,eAAV,IAA6B,KAAK4oB,gBAAL,EAA7B;AACD,G;;oBAEDA,gB,+BAAmB;AACjB,SAAKwC,UAAL,IAAmB,KAAKlwC,aAAL,CAAmB,KAAKkwC,UAAxB,CAAnB;AACA,SAAKA,UAAL,GAAkB,KAAK3vC,IAAL,CAAUukB,eAA5B;AACA,SAAK7e,QAAL,CAAc,KAAKiqC,UAAnB,EAA+B,iBAAO9lC,cAAtC,EAAsD,KAAKgmC,WAA3D;AACA,SAAKnqC,QAAL,CAAc,KAAKiqC,UAAnB,EAA+B,iBAAO5lC,eAAtC,EAAuD,KAAK+lC,YAA5D;AACA,SAAKpqC,QAAL,CAAc,KAAKiqC,UAAnB,EAA+B,iBAAO7lC,cAAtC,EAAsD,KAAKimC,SAA3D;AACA,SAAKrqC,QAAL,CAAc,KAAKiqC,UAAnB,EAA+B,iBAAO3lC,eAAtC,EAAuD,KAAK+lC,SAA5D;AACA,SAAKrqC,QAAL,CAAc,KAAKiqC,UAAnB,EAA+B,iBAAOpmC,eAAtC,EAAuD,KAAKwmC,SAA5D;AACA,SAAKA,SAAL;AACD,G;;oBAEDvwC,O,sBAAU;AACR,0BAAMA,OAAN;AACA,SAAKuwC,SAAL;AACD,G;;oBAEDrwC,O,sBAAU;AACR,0BAAMA,OAAN;AACA,SAAKqwC,SAAL;AACD,G;;oBAEDC,U,uBAAWC,G,EAAK;AACd,QAAMnE,SAAS,2BAAE,WAAF,CAAf;AACAA,WAAO,CAAP,EAAU/uB,KAAV,GAAkB,EAAlB;AACA+uB,WAAO,CAAP,EAAU9uB,MAAV,GAAmB,EAAnB;AACA,QAAM3Z,MAAMyoC,OAAO,CAAP,EAAUU,UAAV,CAAqB,IAArB,CAAZ;AACAnpC,QAAI6sC,SAAJ,GAAgB,MAAhB;AACA,QAAMC,IAAI,2BAAEF,GAAF,EAAOliC,IAAP,CAAY,MAAZ,EAAoBiE,IAApB,CAAyB,GAAzB,CAAV;AACA,QAAMo+B,OAAO,IAAIC,MAAJ,CAAWF,CAAX,CAAb;AACA9sC,QAAIitC,IAAJ,CAASF,IAAT;AACA,QAAMZ,OAAO,2BAAE,8CAAF,CAAb;AACAA,SAAKx9B,IAAL,CAAU,MAAV,EAAkB85B,OAAO,CAAP,EAAUyE,SAAV,CAAoB,WAApB,CAAlB;AACA,WAAOf,IAAP;AACD,G;;oBAEDK,W,0BAAc;AACZ,QAAI,CAAC,KAAKW,QAAV,EACE,KAAKA,QAAL,GAAgB,KAAKR,UAAL,gBAAhB;;AAEF,SAAKS,UAAL,CAAgB,KAAKD,QAArB;AACD,G;;oBAEDV,Y,2BAAe;AACb,QAAI,CAAC,KAAKY,SAAV,EACE,KAAKA,SAAL,GAAiB,KAAKV,UAAL,iBAAjB;;AAEF,SAAKS,UAAL,CAAgB,KAAKC,SAArB;AACD,G;;oBAEDX,S,wBAAY;AACV,+BAAE,2BAAF,EAA+BtrC,MAA/B;AACA,+BAAE,MAAF,EAAUue,MAAV,CAAiB,KAAK0sB,OAAtB;AACD,G;;oBAEDe,U,uBAAWjB,I,EAAM;AACf,QAAIA,IAAJ,EAAU;AACR,iCAAE,2BAAF,EAA+B/qC,MAA/B;AACA,iCAAE,MAAF,EAAUue,MAAV,CAAiBwsB,IAAjB;AACD;AACF,G;;;;;kBAvFkBxhB,O;;;;;;;;;;;;;;;;;;;ACTrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;;;AALA;AACA;AACA;;IAKqB2iB,e;;;;wBACR;AAAE,aAAO,kBAAP;AAA2B;;;AACxC,2BAAYxxC,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,4BAAMA,SAAN,CADqB;;AAErB,QAAI,MAAKA,SAAL,CAAeH,OAAf,CAAuB4xC,SAA3B,EAAsC;AACpC,YAAKC,OAAL,GAAe,MAAK1xC,SAAL,CAAeH,OAAf,CAAuB4xC,SAAtC;AACA,YAAKE,WAAL,GAAoB,MAAK3xC,SAAL,CAAeH,OAAf,CAAuB+xC,aAAxB,GAAyC,MAAK5xC,SAAL,CAAeH,OAAf,CAAuB+xC,aAAvB,GAAuC,GAAhF,GAAsF,SAAzG;AACA,YAAKC,UAAL,GAAkB,MAAK7xC,SAAL,CAAeH,OAAf,CAAuBiyC,YAAzC;AACA,YAAKC,cAAL,GAAsB1iC,SAAtB;AACA,YAAK2iC,WAAL;AACD;AARoB;AAStB;;4BAEDA,W,0BAAc;AAAA;;AACZ,QAAI,CAACh7B,OAAOi7B,IAAZ,EAAkB;AAChB,UAAMC,SAAS39B,SAASiF,aAAT,CAAuB,QAAvB,CAAf;AACA04B,aAAOz4B,YAAP,CAAoB,MAApB,EAA4B,iBAA5B;AACAy4B,aAAOz4B,YAAP,CAAoB,OAApB,EAA6B,OAA7B;AACAy4B,aAAOz4B,YAAP,CAAoB,KAApB,EAA2B,kCAA3B;AACAy4B,aAAOC,MAAP,GAAgB;AAAA,eAAM,OAAKC,iBAAL,EAAN;AAAA,OAAhB;AACA79B,eAAS89B,IAAT,CAAcjqB,WAAd,CAA0B8pB,MAA1B;AACD,KAPD,MAOO;AAAE,WAAKE,iBAAL;AAA0B;AAEpC,G;;4BAEDA,iB,gCAAoB;AAAA;;AAClB,QAAI,KAAKpyC,SAAT,EAAoB;AAClB,WAAKuG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOmK,eAArC,EAAsD,KAAK6gB,OAA3D;AACA,WAAKzkB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO0K,cAArC,EAAqD,KAAKwgB,MAA1D;AACA,WAAK3kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,KAAKygB,MAA1D;AACA,WAAK7kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO4K,eAArC,EAAsD,KAAKugB,OAA3D;AACA,WAAK5kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO6K,eAArC,EAAsD,KAAKqW,OAA3D;AACA,WAAK3a,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOuL,yBAArC,EAAgE,KAAKgV,WAArE;AACA,WAAKha,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOwL,0BAArC,EAAiE,KAAK8mC,YAAtE;AACA,WAAK/rC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOoK,eAArC,EAAsD,KAAKkhB,OAA3D;AACA,WAAK/kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO8J,uBAArC,EAA8D,KAAKyoC,iBAAnE;AACA,WAAKhsC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOqL,gBAArC,EAAuD,UAACsP,KAAD;AAAA,eAAW,OAAK63B,eAAL,CAAqB73B,KAArB,CAAX;AAAA,OAAvD;AACA,WAAKpU,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOmL,cAArC,EAAqD,UAACwP,KAAD;AAAA,eAAW,OAAK0Q,MAAL,CAAY1Q,KAAZ,CAAX;AAAA,OAArD;AACA,WAAKpU,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOyyC,qBAArC,EAA4D,KAAKC,YAAjE;AACA,WAAKnsC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO0L,8BAArC,EAAqE,KAAKinC,IAA1E;AACA,WAAKpsC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO+J,iCAArC,EAAwE,KAAK6oC,KAA7E;AACD;AACDC,SAAKruC,IAAL,CAAU,CAAC,KAAKmtC,WAAL,GAAmB,aAApB,EAAmC,KAAKD,OAAxC,CAAV;AACA,QAAI,KAAKG,UAAT,EACEgB,KAAKruC,IAAL,CAAU,CAAC,KAAKmtC,WAAL,GAAmB,gBAApB,EAAsC,KAAKE,UAA3C,CAAV;AACH,G;;4BAED7mB,O,sBAAU;AACR,SAAKxmB,IAAL,CAAU,CAAC,OAAD,EAAU,UAAV,EAAsB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBne,IAA9C,CAAV;AACD,G;;4BAED4pB,M,qBAAS;AACP,SAAK1mB,IAAL,CAAU,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA1C,CAAV;AACD,G;;4BAEDmT,M,qBAAS;AACP,SAAK5mB,IAAL,CAAU,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA1C,CAAV;AACD,G;;4BAEDiJ,O,sBAAU;AACR,SAAK1c,IAAL,CAAU,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA3C,CAAV;AACD,G;;4BAEDsI,W,0BAAc;AACZ,SAAK/b,IAAL,CAAU,CAAC,OAAD,EAAU,WAAV,EAAuB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA/C,CAAV;AACD,G;;4BAEDq6B,Y,2BAAe;AACb,SAAK9tC,IAAL,CAAU,CAAC,OAAD,EAAU,YAAV,EAAwB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAAhD,CAAV;AACD,G;;4BAEDqT,O,sBAAU;AACR,SAAK9mB,IAAL,CAAU,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA3C,CAAV;AACD,G;;4BAED06B,I,iBAAKlvB,I,EAAM;AACT,QAAM0gB,SAAS1gB,OAAO,IAAP,GAAa,KAA5B;AACA,QAAI0gB,WAAW,KAAK4N,cAApB,EAAoC;AAClC,WAAKA,cAAL,GAAsB5N,MAAtB;AACA,WAAK3/B,IAAL,CAAU,CAAC,OAAD,EAAU,UAAU2/B,MAApB,EAA4B,KAAKnkC,SAAL,CAAeyf,QAAf,CAAwBxH,GAApD,CAAV;AACD;AACF,G;;4BAEDs6B,iB,8BAAkBO,a,EAAe;AAC/B,QAAIA,cAAcnyC,IAAd,KAAuB,IAA3B,EACE,KAAK6D,IAAL,CAAU,CAAC,OAAD,EAAU,qBAAqBsuC,cAAcnyC,IAA7C,EAAmD,KAAKX,SAAL,CAAeyf,QAAf,CAAwBxH,GAA3E,CAAV;AAEH,G;;4BAED26B,K,kBAAMlxB,Q,EAAU;AACd,QAAMyiB,SAASziB,WAAU,IAAV,GAAgB,KAA/B;AACA,SAAKld,IAAL,CAAU,CAAC,aAAD,EAAgB,WAAW2/B,MAA3B,EAAmC,KAAKnkC,SAAL,CAAeyf,QAAf,CAAwBxH,GAA3D,CAAV;AACD,G;;4BAEDkT,O,sBAAU;AACR,SAAK3mB,IAAL,CAAU,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA3C,CAAV;AACD,G;;4BAEDoT,M,qBAAS;AACP,SAAK7mB,IAAL,CAAU,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAA1C,CAAV;AACD,G;;4BAEDu6B,e,8BAAkB;AAChB,SAAKhuC,IAAL,CAAU,CAAC,aAAD,EAAgB,QAAhB,EAA0B,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAAlD,CAAV;AACD,G;;4BAEDy6B,Y,2BAAe;AACb,SAAKluC,IAAL,CAAU,CAAC,aAAD,EAAgB,YAAhB,EAA8B,KAAKxE,SAAL,CAAeyf,QAAf,CAAwBxH,GAAtD,CAAV;AACD,G;;4BAGDzT,I,iBAAKuuC,K,EAAO;AACV,QAAMC,MAAM,CAAC,KAAKrB,WAAL,GAAmB,aAApB,EAAmC3uC,MAAnC,CAA0C+vC,KAA1C,CAAZ;AACAF,SAAKruC,IAAL,CAAUwuC,GAAV;AACD,G;;;;;kBAlHkBxB,e;;;;;;;;;;;;;;;;;;;ACPrB;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AAEA,IAAMyB,OAAO,qCAAb;AALA;AACA;;AAKA,IAAM1pB,OAAO,oBAAoB0pB,IAAjC;AACA,IAAMC,QAAQ,oBAAoBD,IAAlC;AACA,IAAM3pB,OAAO,oBAAoB2pB,IAAjC;AACA,IAAM7rC,QAAQ,oBAAoB6rC,IAAlC;;AAEA,IAAME,cAAc,CAApB;AACA,IAAMC,aAAa,CAAnB;AACA,IAAMC,aAAa,CAAnB;AACA,IAAMC,cAAc,CAApB;AACA,IAAMC,iBAAiBD,WAAvB;;AAEA,IAAME,SAAS,CAACN,KAAD,EAAQ3pB,IAAR,EAAcD,IAAd,EAAoBliB,KAApB,EAA2BA,KAA3B,CAAf;AACA,IAAMqsC,eAAe,CAAC,OAAD,EAAU,MAAV,EAAkB,MAAlB,EAA0B,OAA1B,EAAmC,UAAnC,CAArB;;IAEqB3kB,G;AACnB,iBAA2D;AAAA;;AAAA,QAA/CltB,KAA+C,uEAAvCwxC,UAAuC;AAAA,QAA3BM,QAA2B,uEAAhBH,cAAgB;AAAA;;AACzD,SAAKI,IAAL,GAAY,kBAAZ;AACA,SAAKA,IAAL,CAAUC,IAAV,CAAe,CAAC,cAAD,CAAf,EAAiC;AAAA,aAAM,MAAKC,KAAL,EAAN;AAAA,KAAjC;AACA,SAAKC,SAAL,GAAiB,CAAC,YAAD,EAAe,qBAAf,EAAsC,mBAAtC,EAA2D,iBAA3D,EAA8E,sBAA9E,EAAsG,oBAAtG,CAAjB;AACA,SAAKlyC,KAAL,GAAaA,KAAb;AACA,SAAK8xC,QAAL,GAAgBA,QAAhB;AACD;;gBAEDzuC,K,kBAAMvB,K,EAAO;AAAE,SAAKqwC,GAAL,CAASrwC,KAAT,EAAgByvC,WAAhB,EAA6B3wC,MAAMhC,SAAN,CAAgB+B,KAAhB,CAAsB0B,IAAtB,CAA2BU,SAA3B,EAAsC,CAAtC,CAA7B;AAAwE,G;;gBACvFqvC,I,iBAAKtwC,K,EAAO;AAAE,SAAKqwC,GAAL,CAASrwC,KAAT,EAAgB0vC,UAAhB,EAA4B5wC,MAAMhC,SAAN,CAAgB+B,KAAhB,CAAsB0B,IAAtB,CAA2BU,SAA3B,EAAsC,CAAtC,CAA5B;AAAuE,G;;gBACrFrC,I,iBAAKoB,K,EAAO;AAAE,SAAKqwC,GAAL,CAASrwC,KAAT,EAAgB2vC,UAAhB,EAA4B7wC,MAAMhC,SAAN,CAAgB+B,KAAhB,CAAsB0B,IAAtB,CAA2BU,SAA3B,EAAsC,CAAtC,CAA5B;AAAuE,G;;gBACrF1D,K,kBAAMyC,K,EAAO;AAAE,SAAKqwC,GAAL,CAASrwC,KAAT,EAAgB4vC,WAAhB,EAA6B9wC,MAAMhC,SAAN,CAAgB+B,KAAhB,CAAsB0B,IAAtB,CAA2BU,SAA3B,EAAsC,CAAtC,CAA7B;AAAwE,G;;gBAEvFkvC,K,oBAAQ;AACN,QAAI,KAAKjyC,KAAL,KAAe,KAAK8xC,QAAxB,EAAkC;AAAE,WAAK9xC,KAAL,GAAa,KAAKqyC,aAAlB;AAAiC,KAArE,MAA2E;AACzE,WAAKA,aAAL,GAAqB,KAAKryC,KAA1B;AACA,WAAKA,KAAL,GAAa,KAAK8xC,QAAlB;AACD;AACD;AACA,QAAI18B,OAAOk9B,OAAP,IAAkBl9B,OAAOk9B,OAAP,CAAeH,GAArC,EACE/8B,OAAOk9B,OAAP,CAAeH,GAAf,CAAmB,qCAAqCN,aAAa,KAAK7xC,KAAlB,CAAxD,EAAkF0nB,IAAlF;AAEH,G;;gBAED1nB,K,kBAAMq+B,Q,EAAU;AACd,SAAKr+B,KAAL,GAAaq+B,QAAb;AACD,G;;gBAED8T,G,gBAAIrwC,K,EAAO9B,K,EAAOS,O,EAAS;AACzB,QAAI,KAAKyxC,SAAL,CAAe76B,OAAf,CAAuB5W,QAAQ,CAAR,CAAvB,KAAsC,CAA1C,EAA6C;AAC7C,QAAIT,QAAQ,KAAKA,KAAjB,EAAwB;;AAExB,QAAI,CAACS,OAAL,EAAc;AACZA,gBAAUqB,KAAV;AACAA,cAAQ,IAAR;AACD;AACD,QAAMspC,QAAQwG,OAAO5xC,KAAP,CAAd;AACA,QAAIuyC,mBAAmB,EAAvB;AACA,QAAIzwC,KAAJ,EACEywC,mBAAmB,MAAMzwC,KAAN,GAAc,GAAjC;;AAEF,QAAIsT,OAAOk9B,OAAP,IAAkBl9B,OAAOk9B,OAAP,CAAeH,GAArC,EACE/8B,OAAOk9B,OAAP,CAAeH,GAAf,CAAmBhxC,KAAnB,CAAyBmxC,OAAzB,EAAkC,CAAC,QAAQT,aAAa7xC,KAAb,CAAR,GAA8B,GAA9B,GAAoCuyC,gBAArC,EAAuDnH,KAAvD,EAA8DhqC,MAA9D,CAAqEX,OAArE,CAAlC;AAEH,G;;;;;kBA7CkBysB,G;;;AAgDrBA,IAAIqkB,WAAJ,GAAkBA,WAAlB;AACArkB,IAAIskB,UAAJ,GAAiBA,UAAjB;AACAtkB,IAAIukB,UAAJ,GAAiBA,UAAjB;AACAvkB,IAAIwkB,WAAJ,GAAkBA,WAAlB;;AAEAxkB,IAAIvJ,WAAJ,GAAkB,YAAW;AAC3B,MAAI,KAAK6uB,SAAL,KAAmB/kC,SAAvB,EAAkC;AAChC,SAAK+kC,SAAL,GAAiB,IAAI,IAAJ,EAAjB;AACA,SAAKA,SAAL,CAAeH,aAAf,GAA+B,KAAKG,SAAL,CAAexyC,KAA9C;AACA,SAAKwyC,SAAL,CAAexyC,KAAf,GAAuB,KAAKwyC,SAAL,CAAeV,QAAtC;AACD;AACD,SAAO,KAAKU,SAAZ;AACD,CAPD;;AASAtlB,IAAIulB,QAAJ,GAAe,UAASzyC,KAAT,EAAgB;AAAE,OAAK2jB,WAAL,GAAmB3jB,KAAnB,GAA2BA,KAA3B;AAAkC,CAAnE;;AAEAktB,IAAI7pB,KAAJ,GAAY,YAAW;AAAE,OAAKsgB,WAAL,GAAmBtgB,KAAnB,CAAyBlC,KAAzB,CAA+B,KAAKwiB,WAAL,EAA/B,EAAmD5gB,SAAnD;AAA+D,CAAxF;AACAmqB,IAAIklB,IAAJ,GAAW,YAAW;AAAE,OAAKzuB,WAAL,GAAmByuB,IAAnB,CAAwBjxC,KAAxB,CAA8B,KAAKwiB,WAAL,EAA9B,EAAkD5gB,SAAlD;AAA8D,CAAtF;AACAmqB,IAAIxsB,IAAJ,GAAW,YAAW;AAAE,OAAKijB,WAAL,GAAmBjjB,IAAnB,CAAwBS,KAAxB,CAA8B,KAAKwiB,WAAL,EAA9B,EAAkD5gB,SAAlD;AAA8D,CAAtF;AACAmqB,IAAI7tB,KAAJ,GAAY,YAAW;AAAE,OAAKskB,WAAL,GAAmBtkB,KAAnB,CAAyB8B,KAAzB,CAA+B,KAAKwiB,WAAL,EAA/B,EAAmD5gB,SAAnD;AAA+D,CAAxF;;;;;;;;;;;;;;;;;;;ACxFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQA;;AACA;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;AAEA;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;IAEqBspB,Y;;;;wBACR;AAAE,aAAO,eAAP;AAAwB;;;wBACtB;AACb,UAAIqmB,iBAAiB,KAAKt0C,SAAL,IAAkB,KAAKA,SAAL,CAAe2N,eAAf,OAAqC,mBAASC,KAArF;AACA,aAAO,KAAK2mC,YAAL,IAAqBD,cAA5B;AACD;;;wBAEe;AAAE,aAAO,KAAKzzC,IAAL,IAAa,KAAKA,IAAL,CAAUukB,eAA9B;AAA+C;;;wBAElD;AAAE,aAAO,KAAKvkB,IAAL,IAAa,KAAKA,IAAL,CAAU0nB,cAA9B;AAA8C;;;wBAE9C;AACf,aAAO;AACL,iBAAS,eADJ;AAEL,8BAAsB;AAFjB,OAAP;AAID;;;wBAEY;AACX,aAAO;AACL,6BAAqB,MADhB;AAEL,8BAAsB,OAFjB;AAGL,kCAA0B,iBAHrB;AAIL,6BAAqB,MAJhB;AAKL,iCAAyB,gBALpB;AAML,mCAA2B,kBANtB;AAOL,8CAAsC,MAPjC;AAQL,6CAAqC,eARhC;AASL,2CAAmC,YAT9B;AAUL,qDAA6C,eAVxC;AAWL,qDAA6C,eAXxC;AAYL,iDAAyC,iBAZpC;AAaL,iDAAyC,sBAbpC;AAcL,iDAAyC,eAdpC;AAeL,kDAA0C,oBAfrC;AAgBL,mDAA2C,qBAhBtC;AAiBL,0DAAkD,oBAjB7C;AAkBL,0DAAkD;AAlB7C,OAAP;AAoBD;;;wBAEc;AAAE,aAAO,+CAAP;AAAmC;;;wBAEvC;AAAE,aAAQ,KAAKvoB,SAAL,IAAkB,KAAKA,SAAL,CAAe8f,OAAlC,GAA6C,KAAK9f,SAAL,CAAe8N,MAA5D,GAAqE,KAAK0mC,cAAjF;AAAiG;;;wBACpG;AAAE,aAAO,KAAK1mC,MAAL,KAAgB,CAAvB;AAA0B;;;AAExC,wBAAYjN,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,UAAK+qB,aAAL,GAAqB,MAAK/rB,OAAL,CAAa+rB,aAAlC;AACA,UAAK6oB,oBAAL,GAA4B,IAA5B;AACA,UAAKC,oBAAL,GAA4B,IAA5B;AACA,UAAKC,WAAL,GAAmB,KAAnB;AACA,UAAKC,6BAAL,GAAqC,IAArC,CANgB,CAM0B;AAC1C,UAAKC,gBAAL;AACA,UAAK9nC,QAAL,GAAgB;AACdijB,YAAM,CAAC,MAAD,EAAS,MAAT,EAAiB,OAAjB,CADQ;AAEdC,aAAO,CAAC,QAAD,CAFO;AAGdF,eAAS,CAAC,UAAD,EAAa,SAAb,EAAwB,UAAxB;AAHK,KAAhB;AAKA,UAAK4jB,IAAL,GAAY,iBAAS,MAAK9zC,OAAL,CAAai1C,YAAtB,CAAZ;AACA,UAAKC,aAAL;;AAEA,QAAI,MAAK/0C,SAAT,EAAoB;AAClB,UAAI,CAAC,sBAAEg1C,aAAF,CAAgB,MAAKh1C,SAAL,CAAe+M,QAA/B,CAAL,EACE,MAAKA,QAAL,GAAgB,sBAAEtM,MAAF,CAAS,EAAT,EAAa,MAAKT,SAAL,CAAe+M,QAA5B,CAAhB;AACH,KAHD,MAGO;AACL,YAAKA,QAAL,GAAgB,EAAhB;AACD;;AAED,UAAKwnC,YAAL,GAAoB,KAApB;AACA,QAAK,MAAKv0C,SAAL,IAAkB,MAAKA,SAAL,CAAe+f,oBAAlC,IAA2D,MAAKlgB,OAAL,CAAa8iB,UAA5E,EACE,MAAKtiB,OAAL;;AAEF,UAAK40C,eAAL,GAAuB,UAACt6B,KAAD;AAAA,aAAW,MAAKu6B,QAAL,CAAcv6B,KAAd,CAAX;AAAA,KAAvB;AACA,UAAKw6B,iBAAL,GAAyB,UAACx6B,KAAD;AAAA,aAAW,MAAKy6B,UAAL,CAAgBz6B,KAAhB,CAAX;AAAA,KAAzB;AACA,+BAAEpG,QAAF,EAAYhC,IAAZ,CAAiB,SAAjB,EAA4B,MAAK0iC,eAAjC;AACA,+BAAE1gC,QAAF,EAAYhC,IAAZ,CAAiB,WAAjB,EAA8B,MAAK4iC,iBAAnC;AA9BgB;AA+BjB;;yBAEDr0C,oB,mCAAuB;AAAA;;AACrB,WAAO;AACLoiB,iBAAW,KAAKA,SADX;AAEL0K,iBAAW;AAAA,eAAM,OAAK9f,MAAX;AAAA;AAFN,KAAP;AAID,G;;yBAED3N,U,yBAAa;AAAA;;AACX,SAAKG,aAAL;AACA,SAAKiG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOyI,6BAAhC,EAA+D,KAAK+rC,wBAApE;AACA,SAAK9uC,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO+I,eAAhC,EAAiD,KAAK0H,IAAtD;AACA,SAAK/K,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOgJ,gBAAhC,EAAkD;AAAA,aAAM,OAAK0H,IAAL,CAAU,OAAK1R,OAAL,CAAay1C,qBAAvB,CAAN;AAAA,KAAlD;AACA,SAAK/uC,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO4I,eAAhC,EAAiD,KAAK6H,IAAtD;AACA,SAAK/K,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAO0I,mBAAhC,EAAqD,KAAKwE,SAA1D;AACA,uBAAS1J,EAAT,CAAe,KAAKxE,OAAL,CAAa2lB,QAA5B,SAAwC,iBAAO5e,aAA/C,EAAgE,KAAK2uC,YAArE,EAAmF,IAAnF;AACA,SAAKC,mBAAL;AACD,G;;yBAEDA,mB,kCAAsB;AACpB,QAAI,CAAC,KAAKx1C,SAAV,EAAqB;AACrB,SAAKuG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO0K,cAArC,EAAqD,KAAK+qC,gBAA1D;AACA,SAAKlvC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO4K,eAArC,EAAsD,KAAK6qC,gBAA3D;AACA,SAAKlvC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,KAAK8qC,gBAA1D;AACA,SAAKlvC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO+K,kBAArC,EAAyD,KAAKyd,gBAA9D;AACA,SAAKjiB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOwK,oBAArC,EAA2D,KAAK+gB,YAAhE;AACA,SAAKhlB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOyK,kBAArC,EAAyD,KAAKirC,iBAA9D;AACA,SAAKnvC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOyL,wBAArC,EAA+D,KAAKgV,cAApE;AACA,SAAKla,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO+J,iCAArC,EAAwE,KAAK0W,cAA7E;AACA,SAAKla,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO0L,8BAArC,EAAqE,KAAKiV,oBAA1E;AACA,SAAKpa,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO6L,8BAArC,EAAqE,KAAKxL,OAA1E;AACA,SAAKkG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO8L,6BAArC,EAAoE,KAAK1L,MAAzE;AACA,SAAKmG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO6K,eAArC,EAAsD,KAAK6U,KAA3D;AACA,SAAKnZ,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOqL,gBAArC,EAAuD,KAAKmnC,eAA5D;AACA,SAAKjsC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOgM,wBAArC,EAA+D,KAAK6oC,gBAApE;AACA,QAAI,KAAK70C,SAAL,CAAeyf,QAAf,CAAwBnN,EAAxB,CAA2BqjC,QAA3B,CAAoC5vC,WAApC,OAAsD,OAA1D,EAAmE;AACjE;AACA,WAAKS,YAAL,CAAkB,KAAKxG,SAAvB,EAAkC,iBAAOqK,wBAAzC,EAAmE,KAAKurC,0BAAxE;AACD;AACF,G;;yBAEDv1C,O,sBAAU;AACR,SAAKk0C,YAAL,GAAoB,IAApB;AACA,SAAKhjC,IAAL;AACA,SAAKskC,eAAL;AACA,SAAKxkC,GAAL,CAASE,IAAT;AACD,G;;yBAEDnR,M,qBAAS;AACP,QAAI,KAAKP,OAAL,CAAa8iB,UAAjB,EAA6B;AAC7B,SAAK4xB,YAAL,GAAoB,KAApB;AACA,SAAKQ,aAAL;AACA,SAAKzjC,IAAL;AACD,G;;yBAEDrE,I,mBAAO;AACL,SAAKjN,SAAL,IAAkB,KAAKA,SAAL,CAAeiN,IAAf,EAAlB;AACD,G;;yBAEDC,K,oBAAQ;AACN,SAAKlN,SAAL,IAAkB,KAAKA,SAAL,CAAekN,KAAf,EAAlB;AACD,G;;yBAEDC,I,mBAAO;AACL,SAAKnN,SAAL,IAAkB,KAAKA,SAAL,CAAemN,IAAf,EAAlB;AACD,G;;yBAED0nC,gB,+BAAmB;AACjB,QAAMiB,gBAAiB,KAAKlqB,aAAN,GAAuB,cAAO1V,OAAP,CAAe,QAAf,CAAvB,GAAkD,GAAxE;AACA,QAAMrW,UAAU,KAAKG,SAAL,IAAkB,KAAKA,SAAL,CAAeH,OAAjC,IAA4C,KAAKA,OAAjE;AACA,SAAKqjB,SAAL,CAAerjB,QAAQ6tB,IAAR,GAAe,CAAf,GAAmBooB,aAAlC,EAAiD,IAAjD;AACD,G;;yBAEDtD,e,8BAAkB;AAChB,SAAKuD,cAAL;AACD,G;;yBAEDH,0B,yCAA6B;AAC3B,QAAII,QAAQ,KAAKv2B,QAAL,IAAiB,KAAKA,QAAL,CAAcnN,EAA3C;AACA;AACA;AACA,QAAI,CAAC,kBAAWkD,iBAAX,EAAD,IAAmCwgC,MAAMC,wBAA7C,EAAuE;AACrE,WAAKrB,6BAAL,GAAqC,IAArC;AACA,WAAKn0B,cAAL;AACD;AACF,G;;yBAEDs1B,c,6BAAiB;AACf;AACA,QAAI,CAAC,KAAKG,QAAV,EAAoB;;AAEpB;AACA,SAAKC,mBAAL,CAAyBvnC,IAAzB,CAA8B,aAA9B,EAA6CuT,GAA7C,CAAiD,EAAjD;AACA,QAAMi0B,iBAAiB,KAAKD,mBAAL,CAAyBv4B,KAAzB,EAAvB;AACA,QAAMy4B,WAAW,KAAKC,oBAAL,CAA0B14B,KAA1B,EAAjB;AACA,QAAM7M,SAAS,CAACqlC,iBAAiBC,QAAlB,IAA8B,GAA7C;AACA,QAAME,MAAMF,WAAW,KAAKvoC,MAAhB,GAAyB,KAAzB,GAAiCiD,MAA7C;AACA,SAAKylC,cAAL,CAAoBr0B,GAApB,CAAwB,EAAEvE,OAAU,KAAK9P,MAAf,MAAF,EAAxB;AACA,SAAK2oC,kBAAL,CAAwBt0B,GAAxB,CAA4B,EAAE6N,MAAMumB,GAAR,EAA5B;;AAEA;AACA,SAAKJ,mBAAL,CAAyBvnC,IAAzB,CAA8B,wBAA9B,EAAwD+U,WAAxD,CAAoE,MAApE;AACA,QAAM3K,OAAOqkB,KAAKqZ,IAAL,CAAU,KAAK5oC,MAAL,GAAc,IAAxB,CAAb;AACA,SAAKqoC,mBAAL,CAAyBvnC,IAAzB,CAA8B,wBAA9B,EAAwDrM,KAAxD,CAA8D,CAA9D,EAAiEyW,IAAjE,EAAuE4K,QAAvE,CAAgF,MAAhF;AACA,SAAK+yB,WAAL,CAAiBjnC,IAAjB,CAAsB,EAAtB;AACA,SAAKinC,WAAL,CAAiBhzB,WAAjB,CAA6B,OAA7B;AACA,QAAI,CAAC,KAAKrK,KAAV,EAAiB;AACf,WAAKq9B,WAAL,CAAiB9yB,MAAjB;AACD,KAFD,MAEO;AACL,WAAK8yB,WAAL,CAAiB9yB,MAAjB;AACA,WAAK8yB,WAAL,CAAiB/yB,QAAjB,CAA0B,OAA1B;AACD;AACD,SAAKgzB,gBAAL,CAAsB,KAAKD,WAA3B;AACD,G;;yBAEDlB,gB,+BAAmB;AACjB,SAAKoB,gBAAL,CAAsBnnC,IAAtB,CAA2B,EAA3B;AACA,SAAKonC,eAAL,CAAqBpnC,IAArB,CAA0B,EAA1B;AACA,QAAI,KAAK1P,SAAL,IAAkB,KAAKA,SAAL,CAAe0N,SAAf,EAAtB,EAAkD;AAChD,WAAKmpC,gBAAL,CAAsBhzB,MAAtB;AACA,WAAKizB,eAAL,CAAqBjzB,MAArB;AACA,WAAK7e,OAAL,CAAa,iBAAOuH,oBAApB;AACD,KAJD,MAIO;AACL,WAAKsqC,gBAAL,CAAsBhzB,MAAtB;AACA,WAAKizB,eAAL,CAAqBjzB,MAArB;AACA,WAAK7e,OAAL,CAAa,iBAAOwH,uBAApB;AACA,wBAAQsS,QAAR,IAAoB,KAAKxN,IAAL,EAApB;AACD;AACD,SAAKslC,gBAAL,CAAsB,KAAKC,gBAA3B;AACA,SAAKD,gBAAL,CAAsB,KAAKE,eAA3B;AACD,G;;yBAEDC,kB,+BAAmBp8B,K,EAAO;AACxB,QAAI,KAAK5N,QAAL,CAAcmjB,WAAlB,EAA+B;AAC7B,UAAM8mB,UAAUr8B,MAAMs8B,KAAN,GAAc,KAAKC,iBAAL,CAAuBnmC,MAAvB,GAAgCif,IAA9C,GAAsD,KAAKmnB,aAAL,CAAmBv5B,KAAnB,KAA6B,CAAnG;AACA,WAAKu5B,aAAL,CAAmBh1B,GAAnB,CAAuB,EAAE6N,MAAMgnB,OAAR,EAAvB;AACD;AACD,SAAKhyC,OAAL,CAAa,iBAAOqH,8BAApB,EAAoDsO,KAApD;AACD,G;;yBAEDy8B,mB,gCAAoBz8B,K,EAAO;AACzB,SAAK3V,OAAL,CAAa,iBAAOsH,+BAApB,EAAqDqO,KAArD;AACD,G;;yBAED08B,a,0BAAc18B,K,EAAO;AACnB,SAAKuI,SAAL,CAAe,KAAKo0B,oBAAL,CAA0B38B,KAA1B,CAAf;AACD,G;;yBAED48B,oB,iCAAqB58B,K,EAAO;AAC1B,SAAK68B,iBAAL,IAA0B,KAAKt0B,SAAL,CAAe,KAAKo0B,oBAAL,CAA0B38B,KAA1B,CAAf,CAA1B;AACD,G;;yBAED46B,Y,yBAAazsB,I,EAAM;AACjB,SAAK2uB,iBAAL,CAAuB/nC,IAAvB,CAA4B,EAA5B;AACA,QAAI2gC,OAAO,KAAKxvC,IAAL,CAAUslB,YAAV,wCAAX;AACA,SAAKsxB,iBAAL,CAAuB5zB,MAAvB,CAA8BwsB,IAA9B;AACA,SAAKuG,gBAAL,CAAsB,KAAKa,iBAA3B;AACA,SAAKpmC,GAAL,CAASzC,IAAT,CAAc,gBAAd,EAAgCtL,MAAhC,KAA2C,CAA3C,IAAgD,KAAK+N,GAAL,CAASsS,WAAT,CAAqB,MAArB,CAAhD;AACA,QAAImF,KAAKlL,KAAL,IAAc,GAAd,IAAqB,KAAK/d,OAAL,CAAa63C,aAAtC,EAAqD,KAAKrmC,GAAL,CAASuS,QAAT,CAAkB,MAAlB;AACtD,G;;yBAED+zB,e,8BAAkB;AAChB,SAAK33C,SAAL,CAAe0N,SAAf,KAA6B,KAAK1N,SAAL,CAAekN,KAAf,EAA7B,GAAsD,KAAKlN,SAAL,CAAeiN,IAAf,EAAtD;AACA,WAAO,KAAP;AACD,G;;yBAED2qC,c,6BAAiB;AACf,SAAK53C,SAAL,CAAe0N,SAAf,KAA6B,KAAK1N,SAAL,CAAemN,IAAf,EAA7B,GAAqD,KAAKnN,SAAL,CAAeiN,IAAf,EAArD;AACD,G;;yBAED4qC,a,0BAAcl9B,K,EAAO;AACnB,QAAI,CAAC,KAAK5N,QAAL,CAAcmjB,WAAnB,EAAgC;AAChC,SAAK4nB,eAAL,GAAuB,IAAvB;AACA,SAAKzmC,GAAL,CAASuS,QAAT,CAAkB,UAAlB;AACA,SAAKm0B,cAAL,CAAoBn0B,QAApB,CAA6B,4BAA7B;AACA,SAAKo0B,gBAAL,CAAsBp0B,QAAtB,CAA+B,4BAA/B;AACA,SAAKq0B,gBAAL,CAAsBr0B,QAAtB,CAA+B,4BAA/B;AACAjJ,aAASA,MAAMK,cAAN,EAAT;AACD,G;;yBAEDk9B,e,4BAAgBv9B,K,EAAO;AACrB,SAAK68B,iBAAL,GAAyB,IAAzB;AACA,SAAKnmC,GAAL,CAASuS,QAAT,CAAkB,UAAlB;AACAjJ,aAASA,MAAMK,cAAN,EAAT;AACD,G;;yBAEDk6B,Q,qBAASv6B,K,EAAO;AACd,SAAKm9B,eAAL,IAAwB,KAAK1qC,IAAL,CAAUuN,KAAV,CAAxB;AACA,SAAKtJ,GAAL,CAASsS,WAAT,CAAqB,UAArB;AACA,SAAKo0B,cAAL,CAAoBp0B,WAApB,CAAgC,4BAAhC;AACA,SAAKq0B,gBAAL,CAAsBr0B,WAAtB,CAAkC,4BAAlC;AACA,SAAKs0B,gBAAL,CAAsBt0B,WAAtB,CAAkC,qCAAlC;AACA,SAAKm0B,eAAL,GAAuB,KAAvB;AACA,SAAKN,iBAAL,GAAyB,KAAzB;AACD,G;;yBAEDpC,U,uBAAWz6B,K,EAAO;AAChB,QAAI,KAAKm9B,eAAT,EAA0B;AACxBn9B,YAAMK,cAAN;AACA,UAAMg8B,UAAUr8B,MAAMs8B,KAAN,GAAc,KAAKC,iBAAL,CAAuBnmC,MAAvB,GAAgCif,IAA9D;AACA,UAAIumB,MAAMS,UAAU,KAAKE,iBAAL,CAAuBt5B,KAAvB,EAAV,GAA2C,GAArD;AACA24B,YAAMlZ,KAAKC,GAAL,CAAS,GAAT,EAAcD,KAAKE,GAAL,CAASgZ,GAAT,EAAc,CAAd,CAAd,CAAN;AACA,WAAK4B,iBAAL,CAAuB5B,GAAvB;AACD,KAND,MAMO,IAAI,KAAKiB,iBAAT,EAA4B;AACjC78B,YAAMK,cAAN;AACA,WAAKkI,SAAL,CAAe,KAAKo0B,oBAAL,CAA0B38B,KAA1B,CAAf;AACD;AACF,G;;yBAED28B,oB,iCAAqB38B,K,EAAO;AAC1B,QAAMy9B,UAAUz9B,MAAMs8B,KAAN,GAAc,KAAKd,mBAAL,CAAyBplC,MAAzB,GAAkCif,IAAhE;AACA,QAAMqoB,eAAgBD,UAAU,KAAKjC,mBAAL,CAAyBv4B,KAAzB,EAAX,GAA+C,GAApE;AACA,WAAOy6B,YAAP;AACD,G;;yBAEDC,U,yBAAa;AACX,SAAKp1B,SAAL,CAAe,KAAK5J,KAAL,GAAa,GAAb,GAAmB,CAAlC;AACD,G;;yBAED4J,S,sBAAUjd,K,EAAgC;AAAA;;AAAA,QAAzBsyC,eAAyB,uEAAP,KAAO;;AACxCtyC,YAAQo3B,KAAKC,GAAL,CAAS,GAAT,EAAcD,KAAKE,GAAL,CAASt3B,KAAT,EAAgB,CAAhB,CAAd,CAAR;AACA;AACA;AACA;AACA,SAAKuuC,cAAL,GAAsBvuC,KAAtB;AACA,SAAK2lB,aAAL,IAAsB,CAAC2sB,eAAvB,IAA0C,cAAOliC,OAAP,CAAe,QAAf,EAAyBpQ,KAAzB,CAA1C;AACA,QAAMuyC,wBAAwB,SAAxBA,qBAAwB,GAAM;AAClC,UAAI,OAAKx4C,SAAL,IAAkB,OAAKA,SAAL,CAAe8f,OAArC,EAA8C;AAC5C,eAAK9f,SAAL,CAAekjB,SAAf,CAAyBjd,KAAzB;AACD,OAFD,MAEO;AACL,eAAKO,YAAL,CAAkB,OAAKxG,SAAvB,EAAkC,iBAAOmK,eAAzC,EAA0D,YAAM;AAC9D,iBAAKnK,SAAL,CAAekjB,SAAf,CAAyBjd,KAAzB;AACD,SAFD;AAGD;AACF,KARD;;AAUA,QAAI,CAAC,KAAKjG,SAAV,EACE,KAAKwG,YAAL,CAAkB,IAAlB,EAAwB,iBAAOiG,6BAA/B,EAA8D;AAAA,aAAM+rC,uBAAN;AAAA,KAA9D,EADF,KAGEA;AAEH,G;;yBAEDhwB,gB,+BAAmB;AACjB,SAAKxjB,OAAL,CAAa,iBAAOkH,uBAApB,EAA6C,KAAK5K,IAAlD;AACA,SAAKtB,SAAL,CAAemjB,UAAf;AACA,SAAKtiB,IAAL,CAAU2nB,gBAAV;AACA,SAAKiwB,oBAAL;AACD,G;;yBAEDpD,wB,uCAA2B;AACzB,SAAKT,6BAAL,GAAqC,IAArC;AACA,SAAKz0C,UAAL;AACA,uBAASuE,GAAT,CAAgB,KAAK7E,OAAL,CAAa2lB,QAA7B,SAAyC,iBAAO5e,aAAhD,EAAiE,KAAK2uC,YAAtE,EAAoF,IAApF;AACA;AACA,SAAKV,gBAAL;AACA,SAAKY,gBAAL;AACA,SAAKD,mBAAL;AACA,SAAK/0B,cAAL;AACA,SAAKzgB,SAAL,IAAkB,KAAKA,SAAL,CAAegF,OAAf,CAAuB,iBAAO+E,iCAA9B,EAAiE,KAAK/J,SAAL,CAAegiB,UAAf,EAAjE,CAAlB;AACA,SAAKhiB,SAAL,IAAkB,KAAKA,SAAL,CAAe+f,oBAAjC,IAAyD,KAAK1f,OAAL,EAAzD;AACA,SAAK2E,OAAL,CAAa,iBAAOyH,6BAApB;AACD,G;;yBAEDisC,a,4BAAgB;AACd,SAAKC,YAAL,IAAqBjgC,aAAa,KAAKigC,YAAlB,CAArB;AACA,SAAKxC,mBAAL,CAAyBxyB,WAAzB,CAAqC,iBAArC;AACD,G;;yBAED+zB,a,4BAA6B;AAAA;;AAAA,QAAfn+B,OAAe,uEAAL,GAAK;;AAC3B,QAAI,CAAC,KAAK48B,mBAAV,EAA+B;AAC/B,QAAI,KAAKqB,iBAAT,EAA4B;AAC1B,WAAKmB,YAAL,GAAoBrgC,WAAW;AAAA,eAAM,OAAKo/B,aAAL,EAAN;AAAA,OAAX,EAAuCn+B,OAAvC,CAApB;AACD,KAFD,MAEO;AACL,WAAKo/B,YAAL,IAAqBjgC,aAAa,KAAKigC,YAAlB,CAArB;AACA,WAAKA,YAAL,GAAoBrgC,WAAW;AAAA,eAAM,OAAK69B,mBAAL,CAAyBvyB,QAAzB,CAAkC,iBAAlC,CAAN;AAAA,OAAX,EAAuErK,OAAvE,CAApB;AACD;AACF,G;;yBAEDmG,K,oBAAQ;AACN,SAAK+1B,gBAAL;AACD,G;;yBAEDC,iB,8BAAkB/P,Q,EAAU;AAC1B,QAAMiT,cAAcjT,SAASzU,KAAT,GAAiByU,SAAS9U,KAA1B,GAAkC,GAAtD;AACA,QAAMgoB,YAAYlT,SAASljB,OAAT,GAAmBkjB,SAAS9U,KAA5B,GAAoC,GAAtD;AACA,SAAKknB,cAAL,CAAoB51B,GAApB,CAAwB,EAAE6N,MAAS4oB,WAAT,MAAF,EAA2Bh7B,OAAUi7B,YAAYD,WAAtB,MAA3B,EAAxB;AACD,G;;yBAEDrtB,Y,yBAAa/I,Y,EAAc;AACzB,QAAI,KAAKs1B,eAAT,EAA0B;AAC1B;AACA,QAAM1a,WAAY5a,aAAaC,OAAb,GAAuB,CAAxB,GAA6BD,aAAaqO,KAA1C,GAAkDrO,aAAaC,OAAhF;;AAEA,SAAKgyB,oBAAL,GAA4BrX,QAA5B;AACA,SAAKsX,oBAAL,GAA4BlyB,aAAaqO,KAAzC;AACA,SAAKioB,aAAL;AACD,G;;yBAEDA,a,4BAAgB;AACd;AACA,QAAI,KAAKrE,oBAAL,KAA8B,IAA9B,IAAsC,KAAKC,oBAAL,KAA8B,IAAxE,EAA8E;;AAE9E;AACA,SAAKqE,wBAAL,GAAgC,GAAhC;AACA,QAAI,KAAK/4C,SAAL,KAAmB,KAAKA,SAAL,CAAe2N,eAAf,OAAqC,mBAASgB,IAA9C,IAAsD,KAAK3O,SAAL,CAAegiB,UAAf,EAAzE,CAAJ,EACE,KAAK+2B,wBAAL,GAAiC,KAAKtE,oBAAL,GAA4B,KAAKC,oBAAlC,GAA0D,GAA1F;;AAEF,SAAKyD,iBAAL,CAAuB,KAAKY,wBAA5B;;AAEA,QAAMC,cAAc,uBAAW,KAAKvE,oBAAhB,CAApB;AACA,QAAMpO,cAAc,uBAAW,KAAKqO,oBAAhB,CAApB;AACA,QAAIsE,gBAAgB,KAAKC,iBAAzB,EAA4C;AAC1C,WAAKC,SAAL,CAAevoC,IAAf,CAAoBqoC,WAApB;AACA,WAAKC,iBAAL,GAAyBD,WAAzB;AACD;AACD,QAAI3S,gBAAgB,KAAK8S,iBAAzB,EAA4C;AAC1C,WAAKC,SAAL,CAAezoC,IAAf,CAAoB01B,WAApB;AACA,WAAK8S,iBAAL,GAAyB9S,WAAzB;AACD;AACF,G;;yBAEDj5B,I,iBAAKuN,K,EAAO;AACV,QAAI,CAAC,KAAK5N,QAAL,CAAcmjB,WAAnB,EAAgC;AAChC,QAAM8mB,UAAUr8B,MAAMs8B,KAAN,GAAc,KAAKC,iBAAL,CAAuBnmC,MAAvB,GAAgCif,IAA9D;AACA,QAAIumB,MAAMS,UAAU,KAAKE,iBAAL,CAAuBt5B,KAAvB,EAAV,GAA2C,GAArD;AACA24B,UAAMlZ,KAAKC,GAAL,CAAS,GAAT,EAAcD,KAAKE,GAAL,CAASgZ,GAAT,EAAc,CAAd,CAAd,CAAN;AACA,SAAKv2C,SAAL,IAAkB,KAAKA,SAAL,CAAesN,cAAf,CAA8BipC,GAA9B,CAAlB;AACA,SAAK4B,iBAAL,CAAuB5B,GAAvB;AACA,WAAO,KAAP;AACD,G;;yBAED8C,c,6BAAiB;AACf,SAAK1E,WAAL,GAAmB,IAAnB;AACD,G;;yBAED2E,gB,+BAAmB;AACjB,SAAK3E,WAAL,GAAmB,KAAnB;AACD,G;;yBAED4E,kB,iCAAqB;AACnB,SAAKC,eAAL,GAAuB,IAAvB;AACD,G;;yBAEDf,oB,mCAAuB;AACrB,SAAKe,eAAL,GAAuB,KAAvB;AACD,G;;yBAEDC,S,wBAAY;AACV,WAAO,CAAC,KAAKpoC,GAAL,CAASk+B,QAAT,CAAkB,oBAAlB,CAAR;AACD,G;;yBAEDj+B,I,iBAAKqJ,K,EAAO;AAAA;;AACV,QAAI,KAAK++B,QAAT,EAAmB;;AAEnB,QAAMngC,UAAU,IAAhB;AACA,QAAIogC,oBAAoBh/B,SAAUA,MAAMi/B,OAAN,KAAkB,KAAKC,UAAvB,IAAqCl/B,MAAMm/B,OAAN,KAAkB,KAAKC,UAA9F;AACA,QAAI,CAACp/B,KAAD,IAAUg/B,iBAAV,IAA+BhhC,UAAUuD,SAAV,CAAoB1L,KAApB,CAA0B,UAA1B,CAAnC,EAA0E;AACxEkI,mBAAa,KAAKshC,MAAlB;AACA,WAAK3oC,GAAL,CAASC,IAAT;AACA,WAAKtM,OAAL,CAAa,iBAAOmH,iBAApB,EAAuC,KAAK7K,IAA5C;AACA,WAAKtB,SAAL,IAAkB,KAAKA,SAAL,CAAegF,OAAf,CAAuB,iBAAO2G,2BAA9B,EAA2D,KAAKrK,IAAhE,CAAlB;AACA,WAAK+P,GAAL,CAASsS,WAAT,CAAqB,oBAArB;AACA,WAAKq2B,MAAL,GAAc1hC,WAAW;AAAA,eAAM,OAAK/G,IAAL,EAAN;AAAA,OAAX,EAA8BgI,OAA9B,CAAd;AACA,UAAIoB,KAAJ,EAAW;AACT,aAAKk/B,UAAL,GAAkBl/B,MAAMi/B,OAAxB;AACA,aAAKG,UAAL,GAAkBp/B,MAAMm/B,OAAxB;AACD;AACF;AACD,QAAMG,UAAU,IAAhB;AACA,SAAKC,iBAAL,CAAuBD,OAAvB;AACD,G;;yBAED1oC,I,mBAAgB;AAAA;;AAAA,QAAXiJ,KAAW,uEAAH,CAAG;;AACd,QAAI,CAAC,KAAKi/B,SAAL,EAAL,EAAuB;;AAEvB,QAAMlgC,UAAUiB,SAAS,IAAzB;AACA9B,iBAAa,KAAKshC,MAAlB;AACA,QAAI,CAAC,KAAKN,QAAN,IAAkB,KAAK75C,OAAL,CAAas6C,gBAAb,KAAkC,KAAxD,EAA+D;;AAE/D,QAAIC,0BAA0B,KAAKZ,eAAL,IAAwB,KAAK7E,WAA3D;AACA,QAAI0F,oBAAoB,KAAKvC,eAAL,IAAwB,KAAKN,iBAArD;;AAEA,QAAI,CAAC,KAAKkC,QAAN,KAAmBl/B,SAAS4/B,uBAAT,IAAoCC,iBAAvD,CAAJ,EAA+E;AAC7E,WAAKL,MAAL,GAAc1hC,WAAW;AAAA,eAAM,OAAK/G,IAAL,EAAN;AAAA,OAAX,EAA8BgI,OAA9B,CAAd;AACD,KAFD,MAEO;AACL,WAAKvU,OAAL,CAAa,iBAAOoH,iBAApB,EAAuC,KAAK9K,IAA5C;AACA,WAAKtB,SAAL,IAAkB,KAAKA,SAAL,CAAegF,OAAf,CAAuB,iBAAO4G,2BAA9B,EAA2D,KAAKtK,IAAhE,CAAlB;AACA,WAAK+P,GAAL,CAASuS,QAAT,CAAkB,oBAAlB;AACA,WAAK8zB,aAAL,CAAmB,CAAnB;AACA,UAAMuC,UAAU,KAAhB;AACA,WAAKC,iBAAL,CAAuBD,OAAvB;AACD;AACF,G;;yBAEDC,iB,8BAAkBD,O,EAAS;AACzB,QAAIA,OAAJ,EACE,KAAKp5C,IAAL,CAAUwQ,GAAV,CAAcsS,WAAd,CAA0B,UAA1B,EADF,KAEK,IAAI,KAAK9iB,IAAL,CAAUslB,YAAV,EAAJ,EACH,KAAKtlB,IAAL,CAAUwQ,GAAV,CAAcuS,QAAd,CAAuB,UAAvB;AACH,G;;yBAEDnD,c,6BAAiB;AACf,QAAM65B,cAAc,KAAKC,WAAL,EAApB;AACA,QAAID,eAAe,CAAC,KAAK1F,6BAArB,IAAsD,CAAC,kBAAWp/B,iBAAX,EAA3D,EAA2F;AACzF;AACA8kC,kBAAYvqB,OAAZ,IAAuB,4BAAgBuqB,YAAYvqB,OAA5B,EAAqC,YAArC,CAAvB;AACAuqB,kBAAYtqB,IAAZ,IAAoB,4BAAgBsqB,YAAYtqB,IAA5B,EAAkC,YAAlC,CAApB;AACAsqB,kBAAYrqB,KAAZ,IAAqB,4BAAgBqqB,YAAYrqB,KAA5B,EAAmC,YAAnC,CAArB;AACD;AACD,QAAMuqB,kBAAkB,yBAAe,KAAKztC,QAApB,MAAkC,yBAAeutC,WAAf,CAA1D;AACA,QAAIE,eAAJ,EAAqB;AACnB,WAAKztC,QAAL,GAAgButC,WAAhB;AACA,WAAKzpC,MAAL;AACD;AACF,G;;yBAED0pC,W,0BAAc;AACZ,WAAO,sBAAE95C,MAAF,CAAS,IAAT,EAAe,EAAf,EAAmB,KAAKT,SAAL,IAAkB,KAAKA,SAAL,CAAe+M,QAApD,CAAP;AACD,G;;yBAED4T,oB,iCAAqB8C,I,EAAM;AACzB,SAAKA,IAAL,GAAYA,IAAZ;AACA,QAAM/c,SAAS+c,OAAO,UAAP,GAAoB,aAAnC;AACA,SAAKg3B,YAAL,CAAkB/zC,MAAlB,EAA0B,SAA1B;AACD,G;;yBAEDg0C,oB,mCAAuB;AACrB,QAAMC,SAAS,KAAKtpC,GAAL,CAASzC,IAAT,CAAc,sBAAd,CAAf;AACA,SAAKwqC,SAAL,GAAiBuB,OAAO/rC,IAAP,CAAY,yCAAZ,CAAjB;AACA,SAAK6oC,iBAAL,GAAyBkD,OAAO/rC,IAAP,CAAY,8CAAZ,CAAzB;AACA,SAAKioC,gBAAL,GAAwB8D,OAAO/rC,IAAP,CAAY,6CAAZ,CAAxB;AACA,SAAKkoC,eAAL,GAAuB6D,OAAO/rC,IAAP,CAAY,4CAAZ,CAAvB;AACA,SAAKsqC,SAAL,GAAiByB,OAAO/rC,IAAP,CAAY,yCAAZ,CAAjB;AACA,SAAKsoC,iBAAL,GAAyByD,OAAO/rC,IAAP,CAAY,8BAAZ,CAAzB;AACA,SAAKuoC,aAAL,GAAqBwD,OAAO/rC,IAAP,CAAY,0BAAZ,CAArB;AACA,SAAKmpC,cAAL,GAAsB4C,OAAO/rC,IAAP,CAAY,2BAAZ,CAAtB;AACA,SAAKopC,gBAAL,GAAwB2C,OAAO/rC,IAAP,CAAY,2BAAZ,CAAxB;AACA,SAAKqpC,gBAAL,GAAwB0C,OAAO/rC,IAAP,CAAY,6BAAZ,CAAxB;AACA,SAAKunC,mBAAL,GAA2BwE,OAAO/rC,IAAP,CAAY,6BAAZ,CAA3B;AACA,SAAKgsC,gBAAL,GAAwBD,OAAO/rC,IAAP,CAAY,gCAAZ,CAAxB;AACA,SAAK+nC,WAAL,GAAmBgE,OAAO/rC,IAAP,CAAY,2BAAZ,CAAnB;AACA,SAAK0nC,oBAAL,GAA4B,KAAKjlC,GAAL,CAASzC,IAAT,CAAc,8BAAd,CAA5B;AACA,SAAK4nC,cAAL,GAAsB,KAAKnlC,GAAL,CAASzC,IAAT,CAAc,0BAAd,CAAtB;AACA,SAAK6nC,kBAAL,GAA0B,KAAKplC,GAAL,CAASzC,IAAT,CAAc,4BAAd,CAA1B;AACA,SAAK6rC,YAAL,GAAoB,KAAKppC,GAAL,CAASzC,IAAT,CAAc,gDAAd,CAApB;AACA,SAAKisC,eAAL;AACA,SAAKC,eAAL;AACD,G;;yBAEDD,e,8BAAkB;AAChB,SAAK5B,iBAAL,GAAyB,KAAKC,SAAL,CAAevoC,IAAf,EAAzB;AACA,SAAKwoC,iBAAL,GAAyB,KAAKC,SAAL,CAAezoC,IAAf,EAAzB;AACD,G;;yBAEDmqC,e,8BAAkB;AAChB,QAAMH,SAAS,KAAKtpC,GAAL,CAASzC,IAAT,CAAc,sBAAd,CAAf;AACA+rC,WAAO/rC,IAAP,CAAY,wCAAZ,EAAsDiV,MAAtD;AACA82B,WAAO/rC,IAAP,CAAY,yCAAZ,EAAuDiV,MAAvD;AACA82B,WAAO/rC,IAAP,CAAY,wCAAZ,EAAsDiV,MAAtD;AACA,SAAKgzB,gBAAL,CAAsBhzB,MAAtB;AACA,SAAKizB,eAAL,CAAqBjzB,MAArB;AACA,SAAK8yB,WAAL,CAAiB9yB,MAAjB;AACA,SAAK4zB,iBAAL,CAAuB5zB,MAAvB;AACA,SAAK42B,YAAL,CAAkB52B,MAAlB;AACD,G;;yBAEDs0B,iB,8BAAkBlyC,K,EAAO;AACvBA,YAAQo3B,KAAKE,GAAL,CAASF,KAAKC,GAAL,CAASr3B,KAAT,EAAgB,KAAhB,CAAT,EAAiC,CAAjC,CAAR;AACA;AACA,QAAI,KAAK80C,0BAAL,KAAoC90C,KAAxC,EAA+C;;AAE/C,SAAK80C,0BAAL,GAAkC90C,KAAlC;AACA,SAAK+xC,gBAAL,CAAsBr0B,WAAtB,CAAkC,4BAAlC;AACA,SAAKs0B,gBAAL,CAAsBt0B,WAAtB,CAAkC,4BAAlC;AACA,SAAKq0B,gBAAL,CAAsB71B,GAAtB,CAA0B,EAAEvE,OAAU3X,KAAV,MAAF,EAA1B;AACA,SAAKgyC,gBAAL,CAAsB91B,GAAtB,CAA0B,EAAE6N,MAAS/pB,KAAT,MAAF,EAA1B;AACD,G;;yBAED+0C,Y,yBAAaC,K,EAAO;AAClB,QAAI,CAAC,KAAKluC,QAAL,CAAcmjB,WAAnB,EAAgC;;AAEhC,QAAMrV,cAAc,KAAK7a,SAAL,CAAesiB,cAAf,EAApB;AACA,QAAMD,WAAW,KAAKriB,SAAL,CAAeyN,WAAf,EAAjB;AACA,QAAI2vB,WAAWC,KAAKC,GAAL,CAASD,KAAKE,GAAL,CAAS1iB,cAAcogC,KAAvB,EAA8B,CAA9B,CAAT,EAA2C54B,QAA3C,CAAf;AACA+a,eAAWC,KAAKC,GAAL,CAASF,WAAW,GAAX,GAAiB/a,QAA1B,EAAoC,GAApC,CAAX;AACA,SAAKriB,SAAL,CAAesN,cAAf,CAA8B8vB,QAA9B;AACD,G;;yBAED8d,c,2BAAep4C,G,EAAKkB,Q,EAAU;AAAA;;AAC5B,SAAK2vC,IAAL,CAAUC,IAAV,CAAe9wC,GAAf,EAAoB,YAAM;AACxB,aAAKwO,IAAL;AACA,aAAOtN,UAAP;AACD,KAHD;AAID,G;;yBAED+wC,a,4BAAgB;AAAA;;AACd,QAAI,kBAAQj2B,QAAR,IAAoB,KAAKjf,OAAL,CAAaisB,wBAArC,EAA+D;;AAE/D,SAAK+pB,eAAL;AACA,SAAKlC,IAAL,GAAY,iBAAS,KAAK9zC,OAAL,CAAai1C,YAAb,IAA6B,KAAKj1C,OAAL,CAAagpB,aAAnD,CAAZ;AACA,SAAKqyB,cAAL,CAAoB,OAApB,EAA6B;AAAA,aAAM,OAAKvD,eAAL,EAAN;AAAA,KAA7B;AACA,SAAKuD,cAAL,CAAoB,MAApB,EAA4B;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAC,CAAnB,CAAN;AAAA,KAA5B;AACA,SAAKE,cAAL,CAAoB,OAApB,EAA6B;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAlB,CAAN;AAAA,KAA7B;AACA,SAAKE,cAAL,CAAoB,YAApB,EAAkC;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAC,EAAnB,CAAN;AAAA,KAAlC;AACA,SAAKE,cAAL,CAAoB,aAApB,EAAmC;AAAA,aAAM,OAAKF,YAAL,CAAkB,EAAlB,CAAN;AAAA,KAAnC;AACA,SAAKE,cAAL,CAAoB,iBAApB,EAAuC;AAAA,aAAM,OAAKF,YAAL,CAAkB,CAAC,EAAnB,CAAN;AAAA,KAAvC;AACA,SAAKE,cAAL,CAAoB,kBAApB,EAAwC;AAAA,aAAM,OAAKF,YAAL,CAAkB,EAAlB,CAAN;AAAA,KAAxC;AACA,QAAMG,OAAO,CAAC,GAAD,EAAK,GAAL,EAAS,GAAT,EAAa,GAAb,EAAiB,GAAjB,EAAqB,GAArB,EAAyB,GAAzB,EAA6B,GAA7B,EAAiC,GAAjC,EAAqC,GAArC,CAAb;AACAA,SAAK10C,OAAL,CAAa,UAACrD,CAAD,EAAO;AAClB,aAAK83C,cAAL,CAAoB93C,CAApB,EAAuB,YAAM;AAC3B,eAAK2J,QAAL,CAAcmjB,WAAd,IAA6B,OAAKlwB,SAAlC,IAA+C,OAAKA,SAAL,CAAesN,cAAf,CAA8BlK,IAAI,EAAlC,CAA/C;AACD,OAFD;AAGD,KAJD;AAKD,G;;yBAEDyyC,e,8BAAkB;AAChB,QAAI,KAAKlC,IAAT,EAAe;AACb,WAAKA,IAAL,CAAUjvC,GAAV,CAAc,OAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,MAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,OAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,YAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,aAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,iBAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,kBAAd;AACA,WAAKivC,IAAL,CAAUjvC,GAAV,CAAc,CAAC,GAAD,EAAK,GAAL,EAAS,GAAT,EAAa,GAAb,EAAiB,GAAjB,EAAqB,GAArB,EAAyB,GAAzB,EAA6B,GAA7B,EAAiC,GAAjC,EAAqC,GAArC,CAAd;AACD;AACF,G;;yBAED02C,W,0BAAc;AACZ,QAAI,KAAKv7C,OAAL,CAAaw7C,YAAjB,EAA+B;AAC7B,WAAKC,YAAL,GAAoB,KAAKz7C,OAAL,CAAaw7C,YAAb,CAA0BE,OAA9C;AACA,UAAMC,eAAe,KAAK37C,OAAL,CAAaw7C,YAAb,CAA0BI,OAA/C;AACA,WAAKpqC,GAAL,CAASzC,IAAT,CAAc,2BAAd,EAA2CuT,GAA3C,CAA+C,kBAA/C,EAAmEq5B,YAAnE;AACA,WAAKnqC,GAAL,CAASzC,IAAT,CAAc,8BAAd,EAA8CuT,GAA9C,CAAkD,MAAlD,EAA0D,KAAKm5B,YAA/D;AACA,WAAKjqC,GAAL,CAASzC,IAAT,CAAc,qCAAd,EAAqDuT,GAArD,CAAyD,WAAzD,EAAsE,mBAAmB,KAAKm5B,YAA9F;AACD;AACF,G;;yBAED1E,gB,6BAAiB1kC,O,EAAS;AACxB,SAAKopC,YAAL,IAAqBppC,OAArB,IAAgC,2BAAEA,OAAF,EAAWtD,IAAX,CAAgB,UAAhB,EAA4BuT,GAA5B,CAAgC,MAAhC,EAAwC,KAAKm5B,YAA7C,CAAhC;AACD,G;;yBAED/6C,O,sBAAU;AACR,+BAAEgU,QAAF,EAAYoT,MAAZ,CAAmB,SAAnB,EAA8B,KAAKstB,eAAnC;AACA,+BAAE1gC,QAAF,EAAYoT,MAAZ,CAAmB,WAAnB,EAAgC,KAAKwtB,iBAArC;AACA,SAAKU,eAAL;AACA,SAAKv1C,aAAL;AACA,4BAAMC,OAAN;AACD,G;;AAED;;;;;;;yBAKAwN,S,sBAAUlO,O,EAAS;AACjB;AACA,QAAI,KAAKA,OAAL,CAAa8iB,UAAb,IAA2B9iB,QAAQ0O,MAAnC,IAA6C1O,QAAQskB,OAAzD,EACE,KAAK9jB,OAAL,GADF,KAGE,KAAKD,MAAL;;AAEF,SAAK4E,OAAL,CAAa,iBAAO0H,2BAApB;AACD,G;;yBAEDmE,M,qBAAS;AAAA;;AACP,QAAM0I,UAAU,KAAK1Z,OAAL,CAAay1C,qBAAb,IAAsC,IAAtD;AACA,SAAKvoC,QAAL,IAAiB,KAAKsE,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAc,EAAEpE,UAAU,KAAKA,QAAjB,EAAd,CAAd,CAAjB;AACA,SAAK2tC,oBAAL;AACA,SAAK7D,gBAAL,CAAsBjzB,QAAtB,CAA+B,QAA/B;AACA,SAAKkzB,eAAL,CAAqBlzB,QAArB,CAA8B,SAA9B;;AAEA,SAAK6xB,gBAAL;;AAEA,QAAI,KAAKz1C,SAAT,EAAoB;AAClB,WAAKg6C,MAAL,GAAc1hC,WAAW;AAAA,eAAM,QAAK/G,IAAL,EAAN;AAAA,OAAX,EAA8BgI,OAA9B,CAAd;AACA,WAAKmgC,QAAL,IAAiB,KAAKnoC,IAAL,EAAjB;AACD;;AAED;AACA;AACA,QAAI,kBAAQiN,QAAR,IAAoB,kBAAQM,QAAhC,EAA0C;AACxC,UAAI,kBAAQjD,OAAR,GAAkB,EAAtB,EACE,KAAK++B,gBAAL,CAAsBz4B,GAAtB,CAA0B,SAA1B,EAAoC,MAApC,EADF,KAGE,KAAKg0B,mBAAL,CAAyBh0B,GAAzB,CAA6B,SAA7B,EAAuC,MAAvC;AAEH;;AAED,SAAK61B,gBAAL,CAAsBp0B,QAAtB,CAA+B,4BAA/B;AACA,SAAKq0B,gBAAL,CAAsBr0B,QAAtB,CAA+B,4BAA/B;;AAEA,QAAI83B,yBAAyB,CAA7B;AACA,QAAI,KAAKX,0BAAT,EACEW,yBAAyB,KAAKX,0BAA9B;;AAEF,SAAKA,0BAAL,GAAkC,IAAlC;AACA,SAAK5C,iBAAL,CAAuBuD,sBAAvB;;AAEAvS,YAAQC,QAAR,CAAiB,YAAM;AACrB,OAAC,QAAKr8B,QAAL,CAAcmjB,WAAf,IAA8B,QAAKgnB,iBAAL,CAAuBtzB,QAAvB,CAAgC,eAAhC,CAA9B;AACA,OAAC,kBAAQ9E,QAAT,IAAqB,CAAC,QAAKjf,OAAL,CAAaisB,wBAAnC,IAA+D,QAAKipB,aAAL,EAA/D;AACA,cAAKQ,YAAL,CAAkB,EAAE33B,OAAO,QAAK/d,OAAL,CAAa+d,KAAtB,EAA6BC,QAAQ,QAAKhe,OAAL,CAAage,MAAlD,EAAlB;AACA,cAAK65B,aAAL,CAAmB,CAAnB;AACD,KALD;;AAOA,SAAK0D,WAAL;AACA,SAAKz6B,oBAAL,CAA0B,KAAK8C,IAA/B;;AAEA,SAAK5iB,IAAL,CAAUwQ,GAAV,CAAcwS,MAAd,CAAqB,KAAKvR,EAA1B;;AAEA,SAAK4jC,QAAL,GAAgB,IAAhB;AACA,SAAKH,cAAL;AACA,SAAK/wC,OAAL,CAAa,iBAAOiH,qBAApB;AACA,WAAO,IAAP;AACD,G;;;6BAttBH;AACA;AACA;;AAEA;;;;kBA4BqBgiB,Y;;;AAyrBrBA,aAAaxtB,MAAb,GAAsB,UAASC,UAAT,EAAqB;AACzC,SAAO,mBAAOutB,YAAP,EAAqBvtB,UAArB,CAAP;AACD,CAFD;;;;;;;;;;;;;ACztBA,qE;;;;;;;;;;;ACAA,2KAA2K,2dAA2d,8DAA8D,kCAAkC,+EAA+E,cAAc,OAAO,iFAAiF,wBAAwB,4DAA4D,8TAA8T,0BAA0B,gDAAgD,kFAAkF,6CAA6C,iJAAiJ,4BAA4B,8EAA8E,6CAA6C,kDAAkD,yCAAyC,iCAAiC,aAAa,mCAAmC,yHAAyH,iCAAiC,EAAE,EAAE,aAAa,iEAAiE,uCAAuC,aAAa,OAAO,oCAAoC,aAAa,WAAW,EAAE,UAAU,4DAA4D,sGAAsG,qBAAqB,sDAAsD,iGAAiG,qBAAqB,wDAAwD,mGAAmG,qBAAqB,e;;;;;;;;;;;;ACC50F,cAAc,mBAAO,CAAC,kdAA+O;;AAErQ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;ACnBf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAXA;AACA;AACA;;IAWqBi7C,Y;;;;wBACR;AAAE,aAAO,QAAP;AAAiB;;;wBACf;AAAE,aAAO,yCAAP;AAA6B;;;wBAC3B;AACjB,UAAMrP,cAAc,CAAC,EAAE,KAAKzsC,OAAL,CAAa4oC,MAAb,IAAuB,KAAK5oC,OAAL,CAAa4oC,MAAb,CAAoB6D,WAA7C,CAArB;AACA,aAAO,KAAKtsC,SAAL,CAAeyf,QAAf,CAAwBne,IAAxB,KAAiC,UAAjC,KAAgD,KAAKtB,SAAL,CAAeyf,QAAf,CAAwB9R,eAAxB,OAA8C,mBAASC,KAAvD,IAAgE0+B,WAAhH,CAAP;AACD;;;wBAEgB;AACf,aAAO;AACL,iBAAS,eADJ;AAEL,uBAAe;AAFV,OAAP;AAID;;;wBAEY;AACX,aAAO;AACL,iBAAS;AADJ,OAAP;AAGD;;;wBAEoB;AACnB,aAAO,CAAC,KAAKzsC,OAAL,CAAa4oC,MAAd,IAAwB,KAAK5oC,OAAL,CAAa4oC,MAAb,CAAoBmT,cAA5C,IAA8D,KAAK/7C,OAAL,CAAa4oC,MAAb,CAAoBmT,cAApB,KAAuCvsC,SAA5G;AACD;;;AAED,wBAAYrP,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,8BAAMA,SAAN,CADqB;;AAErB,UAAK67C,iBAAL,GAAyB,KAAzB;AACA,UAAKC,aAAL,GAAqB,KAArB;AACA,UAAKjrC,MAAL;AACAs4B,YAAQC,QAAR,CAAiB;AAAA,aAAM,MAAK/D,MAAL,EAAN;AAAA,KAAjB;AALqB;AAMtB;;yBAEDllC,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,KAAKygB,MAA1D;AACA,SAAK7kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO0K,cAArC,EAAqD,KAAKwgB,MAA1D;AACA,SAAK3kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOuL,yBAArC,EAAgE,KAAK85B,MAArE;AACA,SAAK9+B,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOwL,0BAArC,EAAiE,KAAK65B,MAAtE;AACA,SAAK9+B,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOgM,wBAArC,EAA+D,KAAK6E,MAApE;AACA,SAAKtK,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOoK,eAArC,EAAsD,KAAKkhB,OAA3D;AACA,SAAKswB,cAAL,IAAuB,KAAKr1C,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO6K,eAArC,EAAsD,KAAKugB,MAA3D,CAAvB;AACD,G;;yBAEDE,O,oBAAQrqB,K,EAAO;AACb,SAAK86C,aAAL,GAAqB96C,MAAMW,KAAN,KAAgB,gBAAYC,MAAZ,CAAmBC,KAAxD;;AAEA,QAAI,KAAKi6C,aAAT,EAAwB;AACtB,WAAKF,iBAAL,GAAyB,KAAzB;AACA,WAAKC,aAAL,GAAqB,KAArB;AACA,WAAKE,cAAL;AACD;AACF,G;;yBAED9wB,M,qBAAS;AACP,SAAK2wB,iBAAL,GAAyB,IAAzB;AACA,SAAKxW,MAAL;AACD,G;;yBAEDja,M,qBAAS;AACP,SAAKywB,iBAAL,GAAyB,KAAzB;AACA,SAAKC,aAAL,GAAqB,KAArB;AACA,SAAKzW,MAAL;AACD,G;;yBAED4W,gB,6BAAiB3qC,I,EAAM;AACrB,QAAIA,SAAS,CAAC,KAAKzR,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAAlD,CAAJ,EACE,KAAKo5B,cAAL,GADF,KAGE,KAAKE,cAAL;AACH,G;;yBAEDF,c,6BAAiB;AACf,QAAI,KAAKD,aAAL,IAAsB,CAAC,KAAKl8C,OAAL,CAAakwC,kBAAxC,EAA4D;;AAE5D,SAAKoM,WAAL,CAAiB7qC,IAAjB;AACA,SAAKD,GAAL,CAASuS,QAAT,CAAkB,WAAlB;AACD,G;;yBAEDs4B,c,6BAAiB;AACf,SAAKC,WAAL,CAAiB5qC,IAAjB;AACA,SAAKF,GAAL,CAASsS,WAAT,CAAqB,WAArB;AACD,G;;yBAEDjB,O,sBAAU;AACR;AACA,QAAI,CAAE,KAAKm5B,iBAAX,EAA8B;AAC5B,UAAI,CAAC,KAAKh8C,OAAL,CAAa8iB,UAAd,IAA4B,KAAK9iB,OAAL,CAAa+iB,oBAA7C,EAAmE;AACjE,aAAKk5B,aAAL,GAAqB,IAArB;AACA,aAAKzW,MAAL;AACA,aAAKrlC,SAAL,CAAeiN,IAAf;AACD;AACD,aAAO,KAAP;AACD;AACF,G;;yBAEDmvC,gB,+BAAmB;AACjB;AACA,WAAO,CAAC,KAAKp8C,SAAL,CAAeyf,QAAf,CAAwBioB,WAAhC;AACD,G;;yBAEDrC,M,qBAAS;AACP,QAAI,CAAC,KAAKmK,YAAV,EACE;;AAEF,QAAIwM,iBAAiB,CAAC,KAAKF,aAAN,IAAwB,CAAC,KAAKD,iBAA9B,IAAmD,CAAC,KAAK77C,SAAL,CAAe2f,SAAxF;AACA,SAAKs8B,gBAAL,CAAsBD,cAAtB;AACA,SAAKK,YAAL;AACD,G;;yBAEDA,Y,2BAAe;AACb,QAAI,CAAC,KAAKR,iBAAV,EAA6B,KAAKS,UAAL,GAA7B,KACK,KAAKC,UAAL;AACN,G;;yBAEDD,U,yBAAa;AACX,SAAKt8C,SAAL,CAAe+gB,mBAAf;AACA,SAAK1P,GAAL,CAASC,IAAT;AACD,G;;yBAEDirC,U,yBAAa;AACX,SAAKv8C,SAAL,CAAeghB,kBAAf;AACA,QAAI,KAAKo7B,gBAAL,EAAJ,EACE,KAAK/qC,GAAL,CAASE,IAAT;AACH,G;;yBAEDV,M,qBAAS;AACP,QAAI,CAAC,KAAK2+B,YAAV,EACE;;AAEF,SAAKn+B,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,EAAd;;AAEA,QAAMqrC,kBAAkB,KAAK38C,OAAL,CAAa4oC,MAAb,IAAuB,KAAK5oC,OAAL,CAAa4oC,MAAb,CAAoBgU,MAApB,KAA+BptC,SAA9E;;AAEA,QAAImtC,eAAJ,EAAqB;AACnB,UAAMhU,YAAY,KAAK3oC,OAAL,CAAa4oC,MAAb,CAAoB/Q,GAApB,IAA2B,KAAK73B,OAAL,CAAa4oC,MAA1D;AACA,WAAKp3B,GAAL,CAAS8Q,GAAT,CAAa,EAAE,oBAAoB,SAASqmB,SAAT,GAAqB,GAA3C,EAAb;AACD,KAHD,MAGO,IAAI,KAAK3oC,OAAL,CAAa4oC,MAAjB,EAAyB;AAAE,WAAKp3B,GAAL,CAAS8Q,GAAT,CAAa,EAAE,cAAc,KAAKtiB,OAAL,CAAa4oC,MAAb,CAAoBgU,MAApC,EAAb;AAA4D;;AAE9F,SAAKz8C,SAAL,CAAeqR,GAAf,CAAmBwS,MAAnB,CAA0B,KAAKvR,EAA/B;AACA,SAAKoqC,YAAL,GAAoB,KAAKrrC,GAAL,CAASzC,IAAT,CAAc,eAAd,CAApB;AACA,SAAK8tC,YAAL,CAAkB74B,MAAlB;AACA,SAAKs4B,WAAL,GAAmB,KAAKO,YAAL,CAAkB9tC,IAAlB,CAAuB,KAAvB,CAAnB;AACA,SAAKutC,WAAL,CAAiBv4B,QAAjB,CAA0B,aAA1B;AACA,SAAKu4B,WAAL,CAAiBtpC,IAAjB,CAAsB,aAAtB,EAAqC,EAArC;;AAEA,QAAIyoC,eAAe,KAAKz7C,OAAL,CAAaw7C,YAAb,IAA6B,KAAKx7C,OAAL,CAAaw7C,YAAb,CAA0BE,OAA1E;AACA,QAAID,YAAJ,EACE,KAAKjqC,GAAL,CAASzC,IAAT,CAAc,UAAd,EAA0BuT,GAA1B,CAA8B,MAA9B,EAAsCm5B,YAAtC;;AAEF,QAAI,KAAKz7C,OAAL,CAAaw7C,YAAb,IAA6B,KAAKx7C,OAAL,CAAaw7C,YAAb,CAA0BE,OAA3D,EAAoE;AAClED,qBAAe,KAAKz7C,OAAL,CAAaw7C,YAAb,CAA0BE,OAAzC;AACA,WAAKY,WAAL,CAAiBh6B,GAAjB,CAAqB,OAArB,EAA8Bm5B,YAA9B;AACD;AACD,SAAKjW,MAAL;AACA,WAAO,IAAP;AACD,G;;;;;kBA3JkBsW,Y;;;;;;;;;;;;;ACbrB,oE;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,6bAAwO;;AAE9P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;ACnBf;;;;;;;;;;;;;;;;;;ACAA,+E;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,scAA2O;;AAEjQ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACff;;AAEA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBgB,Q;;;;wBACR;AAAE,aAAO,WAAP;AAAoB;;;wBAClB;AACb,aAAO,4CAAP;AACD;;;wBACgB;AACf,aAAO;AACL,iBAAS,WADJ;AAEL,0BAAkB;AAFb,OAAP;AAID;;;wBACkB;AAAE,aAAO,KAAK97C,IAAL,CAAUotC,YAAjB;AAA+B;;;wBACxB;AAAE,aAAO,KAAKA,YAAL,CAAkBjuC,SAAzB;AAAoC;;;wBACxC;AAAE,aAAO,KAAK48C,qBAAL,IAA8B,KAAKA,qBAAL,CAA2BjvC,eAA3B,OAAiD,mBAASgB,IAAxF,IAAgG,KAAKiuC,qBAAL,CAA2B96B,YAA3B,EAAvG;AAAkJ;;;wBAC1J;AAAE,aAAO,KAAK+6B,mBAAL,IAA4B,CAAC,KAAKC,cAAzC;AAAyD;;;wBACvD;AAAE,aAAO,KAAKA,cAAL,IAAuB,KAAKD,mBAAnC;AAAwD;;;AAClF,oBAAYh8C,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,yBAAMA,IAAN,CADgB;;AAEhB,UAAKk8C,mBAAL,GAA2B,KAA3B;AACA,UAAKC,aAAL,GAAqB,IAArB;AACA,UAAK36B,QAAL,GAAgB,IAAhB;AACA,UAAKijB,iBAAL,GAAyB,IAAzB;AACA,UAAKwX,cAAL,GAAsB,CAAC,CAAC,MAAK7O,YAAL,CAAkBpuC,OAAlB,CAA0Bi9C,cAAlD;AACA,QAAI,MAAKA,cAAT,EAAyB;AACvB,UAAI,MAAK7O,YAAL,CAAkBpuC,OAAlB,CAA0Bo9C,oBAA9B,EACE,MAAKC,wBAAL,GAAgC,IAAIpkC,IAAJ,GAAWgC,OAAX,KAAuB,IAAIhC,IAAJ,CAAS,MAAKm1B,YAAL,CAAkBpuC,OAAlB,CAA0Bo9C,oBAAnC,EAAyDniC,OAAzD,EAAvD,CADF,KAGE,MAAKoiC,wBAAL,GAAgC,CAAhC;AACH;AAZe;AAajB;;qBAED/8C,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK0nC,YAAnB,EAAiC,iBAAOhiC,qBAAxC,EAA+D,KAAK4E,MAApE;AACA,SAAKtK,QAAL,CAAc,KAAK0nC,YAAnB,EAAiC,iBAAO5hC,8BAAxC,EAAwE,KAAK8wC,QAA7E;AACA,SAAK52C,QAAL,CAAc,KAAK0nC,YAAnB,EAAiC,iBAAO3hC,+BAAxC,EAAyE,KAAK8wC,QAA9E;AACA,SAAK72C,QAAL,CAAc,KAAK0nC,YAAnB,EAAiC,iBAAOxhC,6BAAxC,EAAuE,KAAKujC,kBAA5E;AACA,QAAI,KAAK4M,qBAAT,EAAgC;AAC9B,WAAKr2C,QAAL,CAAc,KAAKq2C,qBAAnB,EAA0C,iBAAO7yC,iCAAjD,EAAoF,KAAKs7B,MAAzF;AACA,WAAK9+B,QAAL,CAAc,KAAKq2C,qBAAnB,EAA0C,iBAAOpyC,oBAAjD,EAAuE,KAAK6yC,cAA5E;AACD;AACF,G;;qBAEDrN,kB,iCAAqB;AACnB,SAAK1vC,aAAL;AACA,SAAKH,UAAL;AACD,G;;qBAEDk9C,c,2BAAe76B,Y,EAAc;AAC3B,SAAKH,QAAL,GAAgBG,aAAaqO,KAA7B;AACA,SAAKyU,iBAAL,GAAyB9iB,aAAa8iB,iBAAtC;AACA,SAAKD,MAAL;AACD,G;;qBAED8X,Q,qBAASxiC,K,EAAO;AACd,SAAKoiC,mBAAL,GAA2B,IAA3B;AACA,SAAKO,sBAAL,CAA4B3iC,KAA5B;AACA,SAAK0qB,MAAL;AACD,G;;qBAED+X,Q,uBAAW;AACT,SAAKL,mBAAL,GAA2B,KAA3B;AACA,SAAK1X,MAAL;AACD,G;;qBAEDiY,sB,mCAAuB3iC,K,EAAO;AAC5B,QAAM5J,SAAS4J,MAAMs8B,KAAN,GAAc,KAAKhJ,YAAL,CAAkBiJ,iBAAlB,CAAoCnmC,MAApC,GAA6Cif,IAA1E;AACA;AACA,SAAKgtB,aAAL,GAAqB3f,KAAKC,GAAL,CAAS,CAAT,EAAYD,KAAKE,GAAL,CAASxsB,SAAO,KAAKk9B,YAAL,CAAkBiJ,iBAAlB,CAAoCt5B,KAApC,EAAhB,EAA6D,CAA7D,CAAZ,CAArB;AACD,G;;qBAED2/B,W,0BAAc;AACZ,QAAIjsB,iBAAJ;AAAA,QAAcksB,6BAAd;AAAA,QAAoCxM,UAApC;AAAA,QAAuC9/B,UAAvC;AACA,QAAI,KAAKusC,iBAAT,EAA4B;AAC1B,UAAI,KAAKnY,iBAAT,EAA4B;AAC1Bp0B,YAAI,IAAI4H,IAAJ,CAAS,KAAKwsB,iBAAd,CAAJ;AACA0L,YAAI,IAAIl4B,IAAJ,CAAS,KAAKwsB,iBAAd,CAAJ;AACA0L,UAAE0M,QAAF,CAAW,CAAX,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB;AACAF,+BAAwB,CAACtsC,EAAE4J,OAAF,KAAck2B,EAAEl2B,OAAF,EAAf,IAA8B,IAA/B,GAAuC,KAAKuH,QAAnE;AACD,OALD,MAKO;AACL2uB,YAAI,IAAIl4B,IAAJ,CAAS,IAAIA,IAAJ,GAAWgC,OAAX,KAAuB,KAAKoiC,wBAArC,CAAJ;AACAhsC,YAAI,IAAI4H,IAAJ,CAASk4B,CAAT,CAAJ;AACAwM,+BAAuB,CAACtsC,IAAI8/B,EAAE0M,QAAF,CAAW,CAAX,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB,CAAL,IAA4B,IAAnD;AACD;AACDpsB,iBAAYksB,uBAAuB,KAAKn7B,QAA7B,GAA0C,KAAK26B,aAAL,GAAqB,KAAK36B,QAA/E;AACA,UAAIiP,WAAW,CAAf,EACEA,YAAY,KAAZ;AAEH,KAfD,MAeO;AAAEA,iBAAW,KAAK0rB,aAAL,GAAqB,KAAK36B,QAArC;AAA+C;;AAExD,WAAO,EAAEiP,kBAAF,EAAYksB,0CAAZ,EAAP;AACD,G;;qBAEDnY,M,qBAAS;AACP,QAAI,CAAC,KAAK6Q,QAAV,EAAoB;AAClB;AACA;AACD;AACD,QAAI,CAAC,KAAKyH,eAAL,EAAL,EAA6B;AAC3B,WAAKtsC,GAAL,CAASE,IAAT;AACA,WAAKF,GAAL,CAAS8Q,GAAT,CAAa,MAAb,EAAqB,OAArB;AACD,KAHD,MAGO;AACL,UAAMmP,WAAW,KAAKisB,WAAL,EAAjB;AACA,UAAMK,kBAAkB,uBAAWtsB,SAASA,QAApB,EAA8B,KAAKmsB,iBAAnC,CAAxB;AACA;AACA,UAAIG,oBAAoB,KAAKC,iBAA7B,EAAgD;AAC9C,aAAKC,WAAL,CAAiBntC,IAAjB,CAAsBitC,eAAtB;AACA,aAAKC,iBAAL,GAAyBD,eAAzB;AACD;;AAED,UAAI,KAAKG,aAAT,EAAwB;AACtB,aAAKC,WAAL,CAAiB1sC,IAAjB;AACA,YAAM2sC,kBAAkB,uBAAW,KAAKnB,cAAL,GAAsBxrB,SAASksB,oBAA/B,GAAsD,KAAKn7B,QAAtE,EAAgF,KAAKy6B,cAArF,CAAxB;AACA,YAAImB,oBAAoB,KAAK9E,iBAA7B,EAAgD;AAC9C,eAAK6E,WAAL,CAAiBrtC,IAAjB,CAAsBstC,eAAtB;AACA,eAAK9E,iBAAL,GAAyB8E,eAAzB;AACD;AACF,OAPD,MAOO;AAAE,aAAKD,WAAL,CAAiBzsC,IAAjB;AAAyB;;AAGlC;AACA,WAAKF,GAAL,CAASC,IAAT;AACA,UAAM8kC,iBAAiB,KAAKnI,YAAL,CAAkBiJ,iBAAlB,CAAoCt5B,KAApC,EAAvB;AACA,UAAMsgC,UAAU,KAAK7sC,GAAL,CAASuM,KAAT,EAAhB;AACA,UAAIugC,YAAY,KAAKnB,aAAL,GAAqB5G,cAArC;AACA+H,mBAAaD,UAAU,CAAvB;AACAC,kBAAY9gB,KAAKE,GAAL,CAAS,CAAT,EAAYF,KAAKC,GAAL,CAAS6gB,SAAT,EAAoB/H,iBAAiB8H,OAArC,CAAZ,CAAZ;AACA,WAAK7sC,GAAL,CAAS8Q,GAAT,CAAa,MAAb,EAAqBg8B,SAArB;AACD;AACF,G;;qBAEDR,e,8BAAkB;AAChB,WAAO,KAAKf,qBAAL,IAA8B,KAAKA,qBAAL,CAA2B7vC,QAA3B,CAAoCmjB,WAAlE,IAAiF,KAAK6sB,mBAAtF,IAA6G,KAAKC,aAAL,KAAuB,IAApI,IAA4I,KAAK36B,QAAL,KAAkB,IAArK;AACD,G;;qBAEDxR,M,qBAAS;AACP,SAAKqlC,QAAL,GAAgB,IAAhB;AACA,SAAKiD,iBAAL,GAAyB,IAAzB;AACA,SAAK0E,iBAAL,GAAyB,IAAzB;AACA,SAAKxsC,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,EAAd;AACA,SAAKE,GAAL,CAASE,IAAT;AACA,SAAK08B,YAAL,CAAkB58B,GAAlB,CAAsBwS,MAAtB,CAA6B,KAAKvR,EAAlC;AACA,SAAKwrC,WAAL,GAAmB,KAAKzsC,GAAL,CAASzC,IAAT,CAAc,kBAAd,CAAnB;AACA,SAAKovC,WAAL,GAAmB,KAAK3sC,GAAL,CAASzC,IAAT,CAAc,iBAAd,CAAnB;AACA,SAAKovC,WAAL,CAAiBzsC,IAAjB;AACA,SAAK8zB,MAAL;AACD,G;;;6BA9JH;AACA;AACA;;kBAWqBsX,Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbrB;;;;AAEA;;;;;;IAEqByB,a;;;;;;;;0BAGnBj+C,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAK1F,IAAnB,EAAyB,iBAAOwI,uBAAhC,EAAyD,KAAKg1C,mBAA9D;AACD,G;;0BAEDA,mB,kCAAsB;AACpB,QAAMC,mBAAmB,KAAKz9C,IAAL,CAAU6kB,UAAV,CAAqBrf,MAArB,CAA4B;AAAA,aAAarG,UAAUyf,QAAV,CAAmBne,IAAnB,KAA4B,OAAzC;AAAA,KAA5B,EAA8E,CAA9E,KAAoF,KAAKT,IAAL,CAAU6kB,UAAV,CAAqB,CAArB,CAA7G;AACA,QAAI44B,gBAAJ,EAAsB;AACpB,WAAKz9C,IAAL,CAAU6kB,UAAV,CAAqBjf,OAArB,CAA6B,UAACzG,SAAD,EAAe;AAC1C,YAAIA,cAAcs+C,gBAAlB,EACEt+C,UAAUO,OAAV;AAEH,OAJD;AAKD;AACF,G;;;;wBAfU;AAAE,aAAO,SAAP;AAAkB;;;;;kBADZ69C,a;;;;;;;;;;;;;;;;;;;ACJrB;;;;;;;;;;;;;;;;;;ACAA,8F;;;;;;;;;;;;ACCA,cAAc,mBAAO,CAAC,6cAAyO;;AAE/P,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACff;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqBpvB,wB;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;wBACd;AACf,aAAO;AACL,wBAAe,EADV;AAEL,iBAAS;AAFJ,OAAP;AAID;;;AAED,oCAAYhvB,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,8BAAMA,SAAN,CADqB;;AAErB,UAAKmR,QAAL,GAAgB,0CAAhB;AACA,UAAKotC,WAAL,GAAmB,IAAnB;AACA,UAAKh4C,QAAL,CAAc,MAAKvG,SAAnB,EAA8B,iBAAOuL,yBAArC,EAAgE,MAAKgV,WAArE;AACA,UAAKha,QAAL,CAAc,MAAKvG,SAAnB,EAA8B,iBAAOwL,0BAArC,EAAiE,MAAK8mC,YAAtE;AACA,UAAK/rC,QAAL,CAAc,MAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,MAAKygB,MAA1D;AACA,UAAK7kB,QAAL,CAAc,MAAKvG,SAAnB,EAA8B,iBAAO6K,eAArC,EAAsD,MAAKugB,MAA3D;AACA,UAAK7kB,QAAL,CAAc,MAAKvG,SAAnB,EAA8B,iBAAOoK,eAArC,EAAsD,MAAKghB,MAA3D;AACA,UAAKva,MAAL;AATqB;AAUtB;;qCAED0P,W,0BAAc;AACZ,SAAKjP,IAAL;AACD,G;;qCAEDghC,Y,2BAAe;AACb,SAAK/gC,IAAL;AACD,G;;qCAED6Z,M,qBAAS;AACP,SAAK7Z,IAAL;AACD,G;;qCAEDD,I,mBAAO;AAAA;;AACL,QAAI,KAAKitC,WAAL,KAAqB,IAAzB,EACE,KAAKA,WAAL,GAAmBjmC,WAAW;AAAA,aAAM,OAAKjH,GAAL,CAASC,IAAT,EAAN;AAAA,KAAX,EAAkC,GAAlC,CAAnB;AAEH,G;;qCAEDC,I,mBAAO;AACL,QAAI,KAAKgtC,WAAL,KAAqB,IAAzB,EAA+B;AAC7B7lC,mBAAa,KAAK6lC,WAAlB;AACA,WAAKA,WAAL,GAAmB,IAAnB;AACD;AACD,SAAKltC,GAAL,CAASE,IAAT;AACD,G;;qCAEDV,M,qBAAS;AACP,SAAKQ,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,EAAd;AACA,SAAKnR,SAAL,CAAeqR,GAAf,CAAmBwS,MAAnB,CAA0B,KAAKxS,GAA/B;AACA,SAAKA,GAAL,CAASE,IAAT;AACA,QAAI,KAAKvR,SAAL,CAAe2f,SAAnB,EACE,KAAKY,WAAL;;AAEF,WAAO,IAAP;AACD,G;;;kCAjEH;AACA;AACA;;kBAQqByO,wB;;;;;;;;;;;;;;;;;;;ACVrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIA;;;;AACA;;;;AACA;;;;;;IAEqBwvB,W;;;;wBACR;AAAE,aAAO,OAAP;AAAgB;;;AAE7B,uBAAYx+C,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,4BAAMA,SAAN,CADqB;;AAErB,UAAKy+C,eAAL;AACA,UAAKC,cAAL,GAAsB,MAAK7+C,OAAL,CAAa6+C,cAAb,IAA+B,IAArD;AACA,UAAKj9B,KAAL,GAAa,MAAb;AAJqB;AAKtB;;wBAEDthB,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAKvG,SAAL,CAAeyf,QAA7B,EAAuC,iBAAO/W,aAA9C,EAA6D,KAAKwiB,MAAlE;AACA,SAAK3kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,KAAKygB,MAA1D;AACA,SAAK7kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO6K,eAArC,EAAsD,KAAKugB,MAA3D;AACA,SAAK7kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOkK,mBAArC,EAA0D,KAAKkhB,MAA/D;AACA,SAAK7kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOuL,yBAArC,EAAgE,KAAKgV,WAArE;AACA,SAAKha,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOwL,0BAArC,EAAiE,KAAK8mC,YAAtE;AACA,SAAK/rC,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO+L,mBAArC,EAA0D,KAAK4yC,UAA/D;AACA,SAAKp4C,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOgK,iBAArC,EAAwD,KAAK20C,UAA7D;AACA,SAAKp4C,QAAL,CAAc,KAAKvG,SAAL,CAAeyf,QAA7B,EAAuC,iBAAOzW,kBAA9C,EAAkE,KAAK21C,UAAvE;AACD,G;;wBAEDF,e,8BAAkB;AAChB,SAAKG,SAAL,GAAiB,IAAjB;AACA,SAAKC,WAAL,GAAmB,CAAnB;AACA,SAAKC,eAAL,GAAuB,CAAvB;AACA,SAAKC,YAAL,GAAoB,CAApB;AACA,SAAKC,SAAL,GAAiB,CAAjB;AACA,SAAKC,eAAL,GAAuB,EAAvB;AACD,G;;wBAED/zB,M,qBAAS;AACP,SAAKzJ,KAAL,GAAa,SAAb;AACA,SAAKy9B,gBAAL,GAAwBpmC,KAAK1F,GAAL,EAAxB;AACA,QAAI,CAAC,KAAK+rC,UAAV,EACE,KAAKA,UAAL,GAAkBn4B,YAAY,KAAKo4B,MAAL,CAAY7sC,IAAZ,CAAiB,IAAjB,CAAZ,EAAoC,KAAKmsC,cAAzC,CAAlB;AAEH,G;;wBAEDtzB,M,qBAAS;AACP7D,kBAAc,KAAK43B,UAAnB;AACA,SAAKC,MAAL;AACA,SAAKD,UAAL,GAAkB9vC,SAAlB;AACA,SAAKoS,KAAL,GAAa,SAAb;AACD,G;;wBAEDlB,W,0BAAc;AACZ,QAAI,KAAKq+B,SAAT,EACE,KAAKS,eAAL,GAAuBvmC,KAAK1F,GAAL,EAAvB,CADF,KAGE,KAAKksC,mBAAL,GAA2BxmC,KAAK1F,GAAL,EAA3B;;AAEF,SAAKqO,KAAL,GAAa,WAAb;AACA,SAAKu9B,SAAL;AACD,G;;wBAED1M,Y,2BAAe;AACb,QAAI,KAAKsM,SAAL,IAAkB,KAAKS,eAA3B,EAA4C;AAC1C,WAAKT,SAAL,GAAiB,KAAjB;AACA,WAAKC,WAAL,GAAmB/lC,KAAK1F,GAAL,KAAa,KAAKisC,eAArC;AACA,WAAKH,gBAAL,GAAwBpmC,KAAK1F,GAAL,EAAxB;AACD,KAJD,MAIO,IAAI,KAAKksC,mBAAT,EAA8B;AAAE,WAAKR,eAAL,IAAwB,KAAKS,kBAAL,EAAxB;AAAmD;;AAE1F,SAAKD,mBAAL,GAA2BjwC,SAA3B;AACA,SAAKoS,KAAL,GAAa,SAAb;AACD,G;;wBAED89B,kB,iCAAqB;AACnB,WAAOzmC,KAAK1F,GAAL,KAAa,KAAKksC,mBAAzB;AACD,G;;wBAEDE,e,8BAAkB;AAChB,QAAMC,YAAa3mC,KAAK1F,GAAL,KAAa,KAAK8rC,gBAArC;AACA,WAAOO,YAAY,KAAKX,eAAxB;AACD,G;;wBAEDY,a,4BAAgB;AACd,WAAO,CAAC,CAAC,KAAKJ,mBAAd;AACD,G;;wBAEDX,U,uBAAWgB,M,EAAQ;AACjB,0BAAEl/C,MAAF,CAAS,KAAKw+C,eAAd,EAA+BU,MAA/B;AACD,G;;wBAEDC,Q,uBAAW;AACT,QAAM/9B,UAAU;AACdg9B,mBAAiB,KAAKA,WADR;AAEdG,iBAAiB,KAAKA,SAFR;AAGdF,uBAAiB,KAAKY,aAAL,KAAsB,KAAKZ,eAAL,GAAuB,KAAKS,kBAAL,EAA7C,GAAwE,KAAKT,eAHhF;AAIdC,oBAAiB,KAAKW,aAAL,KAAsB,KAAKF,eAAL,KAAyB,KAAKD,kBAAL,EAA/C,GAA0E,KAAKC,eAAL;AAJ7E,KAAhB;AAMA,0BAAE/+C,MAAF,CAASohB,OAAT,EAAkB,KAAKo9B,eAAvB;AACA,WAAOp9B,OAAP;AACD,G;;wBAEDu9B,M,qBAAS;AACP,SAAKp/C,SAAL,CAAe4hB,WAAf,CAA2B,KAAKg+B,QAAL,EAA3B;AACD,G;;;+BAzGH;AACA;AACA;;kBAMqBpB,W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRrB;;AACA;;;;AACA;;;;;;AAEA;;;;;;;IAOqBqB,O;;;;wBACR;AAAE,aAAO,SAAP;AAAkB;;;AAE/B,mBAAYh/C,IAAZ,EAAkB;AAAA;;AAAA,+DAChB,uBAAMA,IAAN,CADgB;;AAEhB,UAAKi/C,mBAAL;AAFgB;AAGjB;AACD;;;;;;;;oBAMA19C,C,cAAEU,G,EAAK;AACL,QAAM4mC,OAAO,KAAKqW,SAAL,EAAb;AACA,QAAMC,eAAe,KAAKC,SAAL,CAAe,IAAf,CAArB;AACA,QAAM1+C,OAAOmoC,QAAQ,KAAKuW,SAAL,CAAevW,IAAf,CAAR,IAAgCsW,YAA7C;AACA,WAAOz+C,KAAKuB,GAAL,KAAak9C,aAAal9C,GAAb,CAAb,IAAkCA,GAAzC;AACD,G;;oBAEDi9C,S,wBAAY;AAAE,WAAO,KAAKl/C,IAAL,CAAUhB,OAAV,CAAkB+Y,QAAlB,IAA8B,gCAArC;AAA2D,G;;oBAEzEknC,mB,kCAAsB;AACpB,QAAMI,kBAAkB;AACtB,YAAM;AACJ,gBAAQ,MADJ;AAEJ,wBAAgB,cAFZ;AAGJ,oBAAY,UAHR;AAIJ,kCAA0B,iGAJtB;AAKJ,+BAAuB,uBALnB;AAMJ,iCAAyB;AANrB,OADgB;AAStB,YAAM;AACJ,gBAAQ,SADJ;AAEJ,wBAAgB,uBAFZ;AAGJ,oBAAY,YAHR;AAIJ,kCAA0B,oGAJtB;AAKJ,+BAAuB,sCALnB;AAMJ,iCAAyB;AANrB,OATgB;AAiBtB,YAAM;AACJ,gBAAQ,MADJ;AAEJ,wBAAgB,gBAFZ;AAGJ,oBAAY,eAHR;AAIJ,kCAA0B;AAJtB,OAjBgB;AAuBtB,YAAM;AACJ,gBAAQ,aADJ;AAEJ,wBAAgB,iBAFZ;AAGJ,oBAAY,WAHR;AAIJ,kCAA0B;AAJtB,OAvBgB;AA6BtB,YAAM;AACJ,gBAAQ,WADJ;AAEJ,wBAAgB,kBAFZ;AAGJ,oBAAY,WAHR;AAIJ,kCAA0B,sGAJtB;AAKJ,+BAAuB,8BALnB;AAMJ,iCAAyB;AANrB,OA7BgB;AAqCtB,YAAM;AACJ,gBAAQ,OADJ;AAEJ,wBAAgB,kBAFZ;AAGJ,oBAAY,SAHR;AAIJ,kCAA0B;AAJtB,OArCgB;AA2CtB,YAAM;AACJ,gBAAQ,cADJ;AAEJ,wBAAgB,4BAFZ;AAGJ,oBAAY,UAHR;AAIJ,kCAA0B;AAJtB,OA3CgB;AAiDtB,YAAM;AACJ,gBAAQ,OADJ;AAEJ,wBAAgB,oBAFZ;AAGJ,oBAAY,OAHR;AAIJ,kCAA0B,2EAJtB;AAKJ,+BAAuB,uBALnB;AAMJ,iCAAyB;AANrB;AAjDgB,KAAxB;;AA2DA,SAAKD,SAAL,GAAiB,sBAAEx/C,MAAF,CAAS,IAAT,EAAey/C,eAAf,EAAgC,KAAKr/C,IAAL,CAAUhB,OAAV,CAAkBsgD,OAAlB,IAA6B,EAA7D,CAAjB;AACA,SAAKF,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,QAAf,IAA2B,KAAKA,SAAL,CAAe,IAAf,CAA3B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACA,SAAKA,SAAL,CAAe,OAAf,IAA0B,KAAKA,SAAL,CAAe,IAAf,CAA1B;AACD,G;;;;;kBA1FkBJ,O;;;;;;;;;;;;;;;;;;;ACXrB;;;;;;;;;;;;;;;;;;ACAA,0IAA0I,sDAAsD,6EAA6E,eAAe,e;;;;;;;;;;;;ACC5R,cAAc,mBAAO,CAAC,scAA2O;;AAEjQ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,4GAAyD;;AAE9E;;AAEA,GAAG,KAAU,EAAE,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACff;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;IAEqB5wB,e;;;;wBACR;AAAE,aAAO,WAAP;AAAoB;;;wBAElB;AAAE,aAAO,4CAAP;AAAgC;;;AAEjD,2BAAYjvB,SAAZ,EAAuB;AAAA;;AAAA,+DACrB,8BAAMA,SAAN,CADqB;;AAErB,UAAK+N,SAAL;AAFqB;AAGtB;;4BAED5N,U,yBAAa;AACX,SAAKoG,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO0K,cAArC,EAAqD,KAAKwgB,MAA1D;AACA,SAAK3kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAO2K,cAArC,EAAqD,KAAKygB,MAA1D;AACA,SAAK7kB,QAAL,CAAc,KAAKvG,SAAnB,EAA8B,iBAAOgM,wBAArC,EAA+D,KAAK+B,SAApE;AACD,G;;4BAEDA,S,wBAAY;AACV,SAAKqvB,QAAL,GAAgB,KAAKv9B,OAAL,CAAau9B,QAAb,IAAyB,cAAzC;AACA,QAAI,KAAKv9B,OAAL,CAAaugD,SAAjB,EAA4B;AAC1B,WAAKC,QAAL,GAAgB,KAAKxgD,OAAL,CAAaugD,SAA7B;AACA,WAAKE,SAAL,GAAiB,KAAKzgD,OAAL,CAAa0gD,aAA9B;AACA,WAAK1vC,MAAL;AACD,KAJD,MAIO;AAAE,WAAKQ,GAAL,CAAS/L,MAAT;AAAmB;AAE7B,G;;4BAED4lB,M,qBAAS;AACP,QAAI,CAAC,KAAKs1B,MAAV,EACE,KAAKnvC,GAAL,CAASC,IAAT;AACH,G;;4BAED8Z,M,qBAAS;AACP,SAAK/Z,GAAL,CAASE,IAAT;AACD,G;;4BAEDV,M,qBAAS;AACP,SAAKQ,GAAL,CAASE,IAAT;AACA,QAAMkvC,kBAAkB,EAAErjB,UAAU,KAAKA,QAAjB,EAA2BijB,UAAU,KAAKA,QAA1C,EAAoDC,WAAW,KAAKA,SAApE,EAAxB;AACA,SAAKjvC,GAAL,CAAS3B,IAAT,CAAc,KAAKyB,QAAL,CAAcsvC,eAAd,CAAd;AACA,SAAKzgD,SAAL,CAAeqR,GAAf,CAAmBwS,MAAnB,CAA0B,KAAKxS,GAA/B;AACA,WAAO,IAAP;AACD,G;;;kCAnDH;AACA;AACA;;kBAQqB4d,e;;;;;;;;;;;;;;;;;;;ACVrB;;;;;;kBAEe,EAAEyxB,oBAAF,E;;;;;;;;;;;;;;;;;;ACFf;AACA;AACA;;AAEA,IAAIA,OAAO,SAAPA,IAAO,CAASxuC,OAAT,EAAkB;AAC3B,OAAKA,OAAL,GAAeA,WAAW8E,OAAOzC,QAAjC;AACA,OAAKX,UAAL;AACD,CAHD;;AAKA8sC,KAAKC,iBAAL,GAAyB;AACvB,KAAG,WADoB,EACP,GAAG,KADI,EACG,IAAI,OADP;AAEvB,MAAI,OAFmB,EAEV,IAAI,MAFM,EAEE,IAAI,KAFN;AAGvB,MAAI,WAHmB;AAIvB,MAAI,KAJmB;AAKvB,MAAI,OALmB;AAMvB,MAAI,MANmB,EAMX,IAAI,IANO,EAMD,IAAI,OANH,EAMY,IAAI,MANhB;AAOvB,MAAI,GAPmB,EAOd,IAAI,GAPU,EAOL,IAAI,GAPC,EAOI,IAAI,GAPR,EAOa,IAAI,GAPjB,EAOsB,IAAI,GAP1B,EAO+B,IAAI,GAPnC,EAOwC,IAAI,GAP5C,EAOiD,IAAI,GAPrD,EAO0D,IAAI,GAP9D;AAQvB,MAAI,GARmB,EAQd,IAAI,GARU,EAQL,IAAI,GARC,EAQI,IAAI,GARR,EAQa,IAAI,GARjB,EAQsB,IAAI,GAR1B,EAQ+B,IAAI,GARnC,EAQwC,IAAI,GAR5C,EAQiD,IAAI,GARrD,EAQ0D,IAAI,GAR9D;AASvB,MAAI,GATmB,EASd,IAAI,GATU,EASL,IAAI,GATC,EASI,IAAI,GATR,EASa,IAAI,GATjB,EASsB,IAAI,GAT1B,EAS+B,IAAI,GATnC,EASwC,IAAI,GAT5C,EASiD,IAAI,GATrD,EAS0D,IAAI,GAT9D;AAUvB,MAAI,GAVmB,EAUd,IAAI,GAVU,EAUL,IAAI,GAVC,EAUI,IAAI,GAVR,EAUa,IAAI,GAVjB,EAUsB,IAAI,GAV1B,EAU+B,KAAK,IAVpC,EAU0C,KAAK,IAV/C,EAUqD,KAAK,IAV1D;AAWvB,OAAK,IAXkB,EAWZ,KAAK,IAXO,EAWD,KAAK,IAXJ,EAWU,KAAK,IAXf,EAWqB,KAAK,IAX1B,EAWgC,KAAK,IAXrC,EAW2C,KAAK,KAXhD,EAWuD,KAAK,KAX5D,EAWmE,KAAK;AAXxE,CAAzB;;AAcAD,KAAKE,iBAAL,GAAyB,EAAzB;AACA,CAAC,YAAW;AACV,OAAI,IAAI99C,GAAR,IAAe49C,KAAKC,iBAApB,EAAuC;AACrC,QAAG9xC,OAAOrO,SAAP,CAAiBqgD,cAAjB,CAAgC58C,IAAhC,CAAqCy8C,KAAKC,iBAA1C,EAA6D79C,GAA7D,CAAH,EAAsE;AACpE49C,WAAKE,iBAAL,CAAuBF,KAAKC,iBAAL,CAAuB79C,GAAvB,CAAvB,IAAsD,CAACA,GAAvD;AACD;AACF;AACF,CAND;;AAQA49C,KAAKI,SAAL,GAAiB,CAAC,OAAD,EAAU,MAAV,EAAkB,KAAlB,CAAjB;;AAEAJ,KAAKK,aAAL,GAAsB,YAAW;AAC/B,MAAGxsC,SAASk3B,gBAAZ,EAA8B;AAC5B,WAAO,UAASv5B,OAAT,EAAkBxM,SAAlB,EAA6Bs7C,IAA7B,EAAmC;AACxC9uC,cAAQu5B,gBAAR,CAAyB/lC,SAAzB,EAAoCs7C,IAApC,EAA0C,KAA1C;AACD,KAFD;AAGD,GAJD,MAKK,IAAGzsC,SAAS0sC,WAAZ,EAAyB;AAC5B,WAAO,UAAS/uC,OAAT,EAAkBxM,SAAlB,EAA6Bs7C,IAA7B,EAAmC;AACxC9uC,cAAQ+uC,WAAR,CAAoB,OAAOv7C,SAA3B,EAAsCs7C,IAAtC;AACD,KAFD;AAGD;AACF,CAXoB,EAArB;;AAaAN,KAAKQ,eAAL,GAAwB,YAAW;AACjC,MAAG3sC,SAAS82B,mBAAZ,EAAiC;AAC/B,WAAO,UAASn5B,OAAT,EAAkBxM,SAAlB,EAA6Bs7C,IAA7B,EAAmC;AACxC9uC,cAAQm5B,mBAAR,CAA4B3lC,SAA5B,EAAuCs7C,IAAvC,EAA6C,KAA7C;AACD,KAFD;AAGD,GAJD,MAKK,IAAGzsC,SAAS4sC,WAAZ,EAAyB;AAC5B,WAAO,UAASjvC,OAAT,EAAkBxM,SAAlB,EAA6Bs7C,IAA7B,EAAmC;AACxC9uC,cAAQivC,WAAR,CAAoB,OAAOz7C,SAA3B,EAAsCs7C,IAAtC;AACD,KAFD;AAGD;AACF,CAXsB,EAAvB;;AAaAN,KAAKU,cAAL,GAAsB,UAAS9wC,MAAT,EAAiB4G,SAAjB,EAA4B;AAChD,SAAO5G,OAAO2I,OAAP,CAAe/B,SAAf,MAA8B,CAAC,CAAtC;AACD,CAFD;;AAIAwpC,KAAKW,UAAL,GAAkB,UAAS/wC,MAAT,EAAiB;AACjC,SAAOA,OAAOC,OAAP,CAAe,YAAf,EAA6B,EAA7B,EAAiCA,OAAjC,CAAyC,MAAzC,EAAiD,GAAjD,CAAP;AACD,CAFD;;AAIAmwC,KAAKY,UAAL,GAAkB,UAAShxC,MAAT,EAAiB;AACjC,SAAOA,OAAOvK,WAAP,GAAqBwK,OAArB,CAA6B,IAA7B,EAAmC,UAASC,KAAT,EAAgB;AAAE,WAAOA,MAAM3K,WAAN,EAAP;AAA6B,GAAlF,CAAP;AACD,CAFD;;AAIA66C,KAAKa,QAAL,GAAgB,UAASC,IAAT,EAAe;AAC7B,SAAOd,KAAKU,cAAL,CAAoBvyC,OAAOrO,SAAP,CAAiBmP,QAAjB,CAA0B1L,IAA1B,CAA+Bu9C,IAA/B,CAApB,EAA0D,QAA1D,CAAP;AACD,CAFD;;AAIAd,KAAKe,aAAL,GAAsB,YAAW;AAC/B,MAAGj/C,MAAMhC,SAAN,CAAgByY,OAAnB,EAA4B;AAC1B,WAAO,UAASyoC,QAAT,EAAmBC,MAAnB,EAA2B;AAChC,aAAOD,SAASzoC,OAAT,CAAiB0oC,MAAjB,MAA6B,CAAC,CAArC;AACD,KAFD;AAGD,GAJD,MAKK;AACH,WAAO,UAASD,QAAT,EAAmBC,MAAnB,EAA2B;AAChC,WAAI,IAAIv+C,IAAI,CAAZ,EAAeA,IAAIs+C,SAASp+C,MAA5B,EAAoCF,GAApC,EAAyC;AACvC,YAAGs+C,SAASt+C,CAAT,MAAgBu+C,MAAnB,EAA2B;AACzB,iBAAO,IAAP;AACD;AACF;AACD,aAAO,KAAP;AACD,KAPD;AAQD;AACF,CAhBoB,EAArB;;AAkBAjB,KAAKkB,gBAAL,GAAwB,UAASC,cAAT,EAAyB;AAC/C,MAAIC,SAAJ,EAAe1+C,CAAf;AACA0+C,cAAY,EAAZ;AACA,OAAI1+C,IAAI,CAAR,EAAWA,IAAIs9C,KAAKI,SAAL,CAAex9C,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC,QAAGs9C,KAAKU,cAAL,CAAoBS,cAApB,EAAoCnB,KAAKI,SAAL,CAAe19C,CAAf,CAApC,CAAH,EAA2D;AACzD0+C,gBAAUt9C,IAAV,CAAek8C,KAAKI,SAAL,CAAe19C,CAAf,CAAf;AACD;AACF;AACD,SAAO0+C,SAAP;AACD,CATD;;AAWApB,KAAKqB,UAAL,GAAkB,UAASF,cAAT,EAAyB;AACzC,MAAI1G,IAAJ,EAAU/3C,CAAV;AACA+3C,SAAOuF,KAAKW,UAAL,CAAgBQ,cAAhB,EAAgC1+C,KAAhC,CAAsC,GAAtC,CAAP;AACA,OAAIC,IAAI,CAAR,EAAWA,IAAI+3C,KAAK73C,MAApB,EAA4BF,GAA5B,EAAiC;AAC/B,QAAG,CAACs9C,KAAKe,aAAL,CAAmBf,KAAKI,SAAxB,EAAmC3F,KAAK/3C,CAAL,CAAnC,CAAJ,EAAiD;AAC/C,aAAO+3C,KAAK/3C,CAAL,CAAP;AACD;AACF;AACF,CARD;;AAUAs9C,KAAKsB,eAAL,GAAuB,UAASH,cAAT,EAAyB;AAC9C,MAAI3zC,MAAJ,EAAYpL,GAAZ;;AAEA,MAAG49C,KAAKU,cAAL,CAAoBS,cAApB,EAAoC,KAApC,CAAH,EAA+C;AAC7C,WAAOnB,KAAKW,UAAL,CAAgBQ,cAAhB,EAAgC1+C,KAAhC,CAAsC,GAAtC,EAA2CZ,KAA3C,CAAiD,CAAjD,EAAoD,CAApD,EAAuD4D,IAAvD,CAA4D,GAA5D,CAAP;AACD;;AAED+H,WAASwyC,KAAKkB,gBAAL,CAAsBC,cAAtB,CAAT;;AAEA/+C,QAAM49C,KAAKqB,UAAL,CAAgBF,cAAhB,CAAN;AACA,MAAG/+C,OAAO,CAAC49C,KAAKe,aAAL,CAAmBf,KAAKI,SAAxB,EAAmCh+C,GAAnC,CAAX,EAAoD;AAClDoL,WAAO1J,IAAP,CAAY1B,GAAZ;AACD;;AAED,SAAOoL,OAAO/H,IAAP,CAAY,GAAZ,CAAP;AACD,CAfD;;AAiBAu6C,KAAKuB,OAAL,GAAe,UAASC,OAAT,EAAkB;AAC/B,SAAOxB,KAAKC,iBAAL,CAAuBuB,UAAU,EAAjC,CAAP;AACD,CAFD;;AAIAxB,KAAKwB,OAAL,GAAe,UAASD,OAAT,EAAkB;AAC/B,SAAO,CAACvB,KAAKE,iBAAL,CAAuBqB,OAAvB,CAAR;AACD,CAFD;;AAIAvB,KAAKlgD,SAAL,CAAeoT,UAAf,GAA4B,YAAW;AACrC,MAAIxQ,CAAJ;AAAA,MAAO++C,OAAO,IAAd;;AAEA,OAAKC,WAAL,GAAmB,CAAC,CAApB;AACA,OAAKC,aAAL,GAAqB,EAArB;AACA,OAAIj/C,IAAI,CAAR,EAAWA,IAAIs9C,KAAKI,SAAL,CAAex9C,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC,SAAKi/C,aAAL,CAAmB3B,KAAKI,SAAL,CAAe19C,CAAf,CAAnB,IAAwC,KAAxC;AACD;;AAED,OAAKk/C,QAAL,GAAgB,EAAEC,KAAK,EAAP,EAAhB;AACA,OAAKC,MAAL,GAAc,EAAED,KAAK,EAAP,EAAd;AACA,OAAKE,WAAL,GAAmB,KAAKC,OAAL,CAAa,MAAb,CAAnB;AACA,OAAKC,SAAL,GAAiB,KAAKD,OAAL,CAAa,IAAb,CAAjB;;AAEAhC,OAAKK,aAAL,CAAmB,KAAK7uC,OAAxB,EAAiC,SAAjC,EAA4C,KAAKuwC,WAAjD;AACA/B,OAAKK,aAAL,CAAmB,KAAK7uC,OAAxB,EAAiC,OAAjC,EAA0C,KAAKywC,SAA/C;AACAjC,OAAKK,aAAL,CAAmB/pC,MAAnB,EAA2B,QAA3B,EAAqC,SAAS4rC,QAAT,GAAoB;AACvDlC,SAAKQ,eAAL,CAAqBiB,KAAKjwC,OAA1B,EAAmC,SAAnC,EAA8CiwC,KAAKM,WAAnD;AACA/B,SAAKQ,eAAL,CAAqBiB,KAAKjwC,OAA1B,EAAmC,OAAnC,EAA4CiwC,KAAKQ,SAAjD;AACAjC,SAAKQ,eAAL,CAAqBlqC,MAArB,EAA6B,QAA7B,EAAuC4rC,QAAvC;AACD,GAJD;AAKD,CArBD;;AAuBAlC,KAAKlgD,SAAL,CAAekiD,OAAf,GAAyB,UAASG,QAAT,EAAmB;AAC1C,MAAIV,OAAO,IAAX;AACA,SAAO,UAASjxC,CAAT,EAAY;AACjB,QAAI9N,CAAJ,EAAO0/C,cAAP,EAAuBC,mBAAvB;;AAEA7xC,QAAIA,KAAK8F,OAAO2D,KAAhB;;AAEAwnC,SAAKC,WAAL,GAAmBlxC,EAAEgxC,OAArB;AACA,SAAI9+C,IAAI,CAAR,EAAWA,IAAIs9C,KAAKI,SAAL,CAAex9C,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC++C,WAAKE,aAAL,CAAmB3B,KAAKI,SAAL,CAAe19C,CAAf,CAAnB,IAAwC8N,EAAEwvC,KAAKI,SAAL,CAAe19C,CAAf,IAAoB,KAAtB,CAAxC;AACD;AACD,QAAGs9C,KAAKe,aAAL,CAAmBf,KAAKI,SAAxB,EAAmCJ,KAAKuB,OAAL,CAAaE,KAAKC,WAAlB,CAAnC,CAAH,EAAuE;AACrED,WAAKE,aAAL,CAAmB3B,KAAKuB,OAAL,CAAaE,KAAKC,WAAlB,CAAnB,IAAqD,IAArD;AACD;;AAEDU,qBAAiBX,KAAK,SAASzB,KAAKY,UAAL,CAAgBuB,QAAhB,CAAd,CAAjB;;AAEA,SAAIz/C,IAAI,CAAR,EAAWA,IAAI0/C,eAAeP,GAAf,CAAmBj/C,MAAlC,EAA0CF,GAA1C,EAA+C;AAC7C,UAAI0/C,eAAeP,GAAf,CAAmBn/C,CAAnB,EAAsB8N,CAAtB,MAA6B,KAA9B,IAAwCA,EAAE8J,cAA7C,EAA6D;AAC3D9J,UAAE8J,cAAF;AACD;AACF;;AAED+nC,0BAAsBZ,KAAKY,mBAAL,EAAtB;AACA,QAAGD,eAAeC,mBAAf,CAAH,EAAwC;AACtC,WAAI3/C,IAAI,CAAR,EAAWA,IAAI0/C,eAAeC,mBAAf,EAAoCz/C,MAAnD,EAA2DF,GAA3D,EAAgE;AAC9D,YAAI0/C,eAAeC,mBAAf,EAAoC3/C,CAApC,EAAuC8N,CAAvC,MAA8C,KAA/C,IAAyDA,EAAE8J,cAA9D,EAA8E;AAC5E9J,YAAE8J,cAAF;AACD;AACF;AACF;AACF,GA7BD;AA8BD,CAhCD;;AAkCA0lC,KAAKlgD,SAAL,CAAewiD,YAAf,GAA8B,UAASH,QAAT,EAAmBI,OAAnB,EAA4BjC,IAA5B,EAAkC;AAC9D,MAAI59C,CAAJ;AAAA,MAAO+3C,IAAP;AAAA,MAAa2H,iBAAiB,KAAK,SAASpC,KAAKY,UAAL,CAAgBuB,QAAhB,CAAd,CAA9B;;AAEA,MAAGnC,KAAKa,QAAL,CAAc0B,OAAd,CAAH,EAA2B;AACzBA,cAAU,CAACA,OAAD,CAAV;AACD;;AAED,OAAI7/C,IAAI,CAAR,EAAWA,IAAI6/C,QAAQ3/C,MAAvB,EAA+BF,GAA/B,EAAoC;AAClC+3C,WAAO8H,QAAQ7/C,CAAR,CAAP;AACA+3C,WAAOuF,KAAKsB,eAAL,CAAqB7G,OAAO,EAA5B,CAAP;;AAEA,QAAG2H,eAAe3H,IAAf,CAAH,EAAyB;AACvB2H,qBAAe3H,IAAf,EAAqB32C,IAArB,CAA0Bw8C,IAA1B;AACD,KAFD,MAEO;AACL8B,qBAAe3H,IAAf,IAAuB,CAAC6F,IAAD,CAAvB;AACD;AACF;;AAED,SAAO,IAAP;AACD,CAnBD;;AAqBA;AACAN,KAAKlgD,SAAL,CAAe0iD,cAAf,GAAgC,UAASL,QAAT,EAAmBI,OAAnB,EAA4BjC,IAA5B,EAAkC;AAChE,MAAI59C,CAAJ;AAAA,MAAOyB,CAAP;AAAA,MAAUs2C,IAAV;AAAA,MAAgB2H,iBAAiB,KAAK,SAASpC,KAAKY,UAAL,CAAgBuB,QAAhB,CAAd,CAAjC;;AAEA,MAAGnC,KAAKa,QAAL,CAAc0B,OAAd,CAAH,EAA2B;AACzBA,cAAU,CAACA,OAAD,CAAV;AACD;;AAED,OAAI7/C,IAAI,CAAR,EAAWA,IAAI6/C,QAAQ3/C,MAAvB,EAA+BF,GAA/B,EAAoC;AAClC+3C,WAAO8H,QAAQ7/C,CAAR,CAAP;AACA+3C,WAAOuF,KAAKsB,eAAL,CAAqB7G,OAAO,EAA5B,CAAP;;AAEA,QAAG6F,SAAS,IAAZ,EAAkB;AAChB,aAAO8B,eAAe3H,IAAf,CAAP;AACD,KAFD,MAEO;AACL,UAAG2H,eAAe3H,IAAf,CAAH,EAAyB;AACvB,aAAIt2C,IAAI,CAAR,EAAWA,IAAIi+C,eAAe3H,IAAf,EAAqB73C,MAApC,EAA4CuB,GAA5C,EAAiD;AAC/C,cAAGmtB,OAAO8wB,eAAe3H,IAAf,EAAqBt2C,CAArB,CAAP,MAAoCmtB,OAAOgvB,IAAP,CAAvC,EAAqD;AACnD8B,2BAAe3H,IAAf,EAAqBjiC,MAArB,CAA4BrU,CAA5B,EAA+B,CAA/B;AACA;AACD;AACF;AACF;AACF;AACF;;AAED,SAAO,IAAP;AACD,CA1BD;;AA4BA67C,KAAKlgD,SAAL,CAAekE,GAAf,GAAqB,UAASy2C,IAAT,EAAe;AAClC,SAAO,KAAK+H,cAAL,CAAoB,MAApB,EAA4B/H,IAA5B,EAAkC,IAAlC,CAAP;AACD,CAFD;;AAIAuF,KAAKlgD,SAAL,CAAe2R,QAAf,GAA0B,UAAS0wC,QAAT,EAAmB1H,IAAnB,EAAyB6F,IAAzB,EAA+B;AACvD,SAAQA,SAAS,IAAT,IAAiBA,SAAS3xC,SAA3B,GAAwC,KAAK2zC,YAAL,CAAkBH,QAAlB,EAA4B1H,IAA5B,EAAkC6F,IAAlC,CAAxC,GAAkF,KAAKkC,cAAL,CAAoBL,QAApB,EAA8B1H,IAA9B,EAAoC6F,IAApC,CAAzF;AACD,CAFD;;AAIAN,KAAKlgD,SAAL,CAAeozC,IAAf,GAAsB,UAASuH,IAAT,EAAe6F,IAAf,EAAqB;AACzC,SAAO,KAAK7uC,QAAL,CAAc,MAAd,EAAsBgpC,IAAtB,EAA4B6F,IAA5B,CAAP;AACD,CAFD;;AAIAN,KAAKlgD,SAAL,CAAe2iD,EAAf,GAAoB,UAAShI,IAAT,EAAe6F,IAAf,EAAqB;AACvC,SAAO,KAAK7uC,QAAL,CAAc,IAAd,EAAoBgpC,IAApB,EAA0B6F,IAA1B,CAAP;AACD,CAFD;;AAIAN,KAAKlgD,SAAL,CAAe4iD,OAAf,GAAyB,UAASC,QAAT,EAAmB;AAC1C,MAAG,CAACA,QAAJ,EAAc;AACZ,WAAO3C,KAAKuB,OAAL,CAAa,KAAKG,WAAlB,CAAP;AACD;;AAED,SAAO,KAAKC,aAAL,CAAmBgB,QAAnB,CAAP;AACD,CAND;;AAQA3C,KAAKlgD,SAAL,CAAeuiD,mBAAf,GAAqC,YAAW;AAC9C,MAAI70C,MAAJ,EAAY9K,CAAZ;;AAEA8K,WAAS,EAAT;AACA,OAAI9K,IAAI,CAAR,EAAWA,IAAIs9C,KAAKI,SAAL,CAAex9C,MAA9B,EAAsCF,GAAtC,EAA2C;AACzC,QAAG,KAAKggD,OAAL,CAAa1C,KAAKI,SAAL,CAAe19C,CAAf,CAAb,CAAH,EAAoC;AAClC8K,aAAO1J,IAAP,CAAYk8C,KAAKI,SAAL,CAAe19C,CAAf,CAAZ;AACD;AACF;;AAED,MAAG,CAACs9C,KAAKe,aAAL,CAAmBvzC,MAAnB,EAA2B,KAAKk1C,OAAL,EAA3B,CAAJ,EAAgD;AAC9Cl1C,WAAO1J,IAAP,CAAY,KAAK4+C,OAAL,EAAZ;AACD;;AAED,SAAOl1C,OAAO/H,IAAP,CAAY,GAAZ,CAAP;AACD,CAfD;;kBAiBeu6C,I","file":"clappr.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Clappr\"] = factory();\n\telse\n\t\troot[\"Clappr\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/main.js\");\n","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /\n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.activeContainer.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.activeContainer.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n constructor(options) {\n super(options)\n const playbackDefaultOptions = { recycleVideo : true }\n const defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners(this.options.events)\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners(newEvents = {}, events = {}) {\n const hasNewEvents = Object.keys(newEvents).length > 0\n hasNewEvents && Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType, events[userEvent])\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.stopListening()\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.activeContainer.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.activeContainer.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.activeContainer.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.activeContainer.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage)\n return this\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.activeContainer.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.activeContainer.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options = {}) {\n this._registerOptionEventListeners(options.events, this.options.events)\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.activeContainer.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.activeContainer.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.activeContainer.getDuration()\n }\n}\n\nObject.assign(Player.prototype, ErrorMixin)\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nclass PlayerInfo {\n constructor() {\n this.options = {}\n this.playbackPlugins = []\n this.currentSize = { width: 0, height: 0 }\n }\n}\n\nPlayerInfo._players = {}\n\nPlayerInfo.getInstance = (playerId) => {\n return PlayerInfo._players[playerId] || (PlayerInfo._players[playerId] = new PlayerInfo())\n}\n\nexport default PlayerInfo\n","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport PlayerError from './components/error'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport MediaControl from './plugins/media_control'\nimport ClickToPausePlugin from './plugins/click_to_pause'\nimport DVRControls from './plugins/dvr_controls'\nimport Favicon from './plugins/favicon'\nimport Log from './plugins/log'\nimport Poster from './plugins/poster'\nimport SpinnerThreeBouncePlugin from './plugins/spinner_three_bounce'\nimport WaterMarkPlugin from './plugins/watermark'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n PlayerError,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n ClickToPausePlugin,\n DVRControls,\n Favicon,\n Log,\n Poster,\n SpinnerThreeBouncePlugin,\n WaterMarkPlugin,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n","// Copyright 2015 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Browser from '../../components/browser'\n\nimport flashHTML from './public/flash.html'\nimport './public/flash.scss'\n\nconst IE_CLASSID = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'\n\nexport default class BaseFlashPlayback extends Playback {\n get tagName() { return 'object' }\n get swfPath() { return '' }\n get wmode() { return 'transparent' }\n get template() { return template(flashHTML) }\n get attributes() {\n let type = 'application/x-shockwave-flash'\n\n if (Browser.isLegacyIE)\n type = ''\n\n\n return {\n class: 'clappr-flash-playback',\n type: type,\n width: '100%',\n height: '100%',\n data: this.swfPath,\n 'data-flash-playback': this.name\n }\n }\n\n setElement(element) {\n this.$el = element\n this.el = element[0]\n }\n\n render() {\n this.$el.attr('data', this.swfPath)\n this.$el.html(this.template({\n cid: this.cid,\n swfPath: this.swfPath,\n baseUrl: this.baseUrl,\n playbackId: this.uniqueId,\n wmode: this.wmode,\n callbackName: `window.Clappr.flashlsCallbacks.${this.cid}` })\n )\n\n if (Browser.isIE) {\n this.$('embed').remove()\n\n if (Browser.isLegacyIE)\n this.$el.attr('classid', IE_CLASSID)\n\n }\n\n this.el.id = this.cid\n\n return this\n }\n}\n","export default require('./base_flash_playback')\n","module.exports = \" \\\">\\n \\n \\n \\n \\n \\n \\\">\\n \\n &callback=<%= callbackName %>\\\">\\n\\\"\\n type=\\\"application/x-shockwave-flash\\\"\\n disabled=\\\"disabled\\\"\\n tabindex=\\\"-1\\\"\\n enablecontextmenu=\\\"false\\\"\\n allowScriptAccess=\\\"always\\\"\\n quality=\\\"autohigh\\\"\\n pluginspage=\\\"http://www.macromedia.com/go/getflashplayer\\\"\\n wmode=\\\"<%= wmode %>\\\"\\n swliveconnect=\\\"true\\\"\\n allowfullscreen=\\\"false\\\"\\n bgcolor=\\\"#000000\\\"\\n FlashVars=\\\"playbackId=<%= playbackId %>&callback=<%= callbackName %>\\\"\\n data=\\\"<%= swfPath %>\\\"\\n src=\\\"<%= swfPath %>\\\"\\n width=\\\"100%\\\"\\n height=\\\"100%\\\">\\n \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./flash.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./flash.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./flash.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { seekStringToSeconds } from '../../base/utils'\n\nimport BaseFlashPlayback from '../../playbacks/base_flash_playback'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport $ from 'clappr-zepto'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport flashSwf from './public/Player.swf'\n\nconst MAX_ATTEMPTS = 60\n\nexport default class Flash extends BaseFlashPlayback {\n get name() { return 'flash' }\n get swfPath() { return template(flashSwf)({ baseUrl: this._baseUrl }) }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this._currentState === 'ENDED'\n }\n\n /**\n * Determine if the playback is buffering.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return !!this._bufferingState && this._currentState !== 'ENDED'\n }\n\n constructor(...args) {\n super(...args)\n this._src = this.options.src\n this._baseUrl = this.options.baseUrl\n this._autoPlay = this.options.autoPlay\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume']\n this.settings.seekEnabled = true\n this._isReadyState = false\n this._addListeners()\n }\n\n\n _bootstrap() {\n if (this.el.playerPlay) {\n this.el.width = '100%'\n this.el.height = '100%'\n if (this._currentState === 'PLAYING') { this._firstPlay() } else {\n this._currentState = 'IDLE'\n this._autoPlay && this.play()\n }\n $('
').insertAfter(this.$el)\n if (this.getDuration() > 0)\n this._metadataLoaded()\n else\n Mediator.once(this.uniqueId + ':timeupdate', this._metadataLoaded, this)\n\n } else {\n this._attempts = this._attempts || 0\n if (++this._attempts <= MAX_ATTEMPTS)\n setTimeout(() => this._bootstrap(), 50)\n else\n this.trigger(Events.PLAYBACK_ERROR, { message: 'Max number of attempts reached' }, this.name)\n\n }\n }\n\n _metadataLoaded() {\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE, this.name)\n }\n\n getPlaybackType() {\n return Playback.VOD\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n _updateTime() {\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.getPosition(), total: this.el.getDuration() }, this.name)\n }\n\n _addListeners() {\n Mediator.on(this.uniqueId + ':progress', this._progress, this)\n Mediator.on(this.uniqueId + ':timeupdate', this._updateTime, this)\n Mediator.on(this.uniqueId + ':statechanged', this._checkState, this)\n Mediator.on(this.uniqueId + ':flashready', this._bootstrap, this)\n }\n\n stopListening() {\n super.stopListening()\n Mediator.off(this.uniqueId + ':progress')\n Mediator.off(this.uniqueId + ':timeupdate')\n Mediator.off(this.uniqueId + ':statechanged')\n Mediator.off(this.uniqueId + ':flashready')\n }\n\n _checkState() {\n if (this._isIdle || this._currentState === 'PAUSED') { return } else if (this._currentState !== 'PLAYING_BUFFERING' && this.el.getState() === 'PLAYING_BUFFERING') {\n this._bufferingState = true\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n this._currentState = 'PLAYING_BUFFERING'\n } else if (this.el.getState() === 'PLAYING') {\n this._bufferingState = false\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n this._currentState = 'PLAYING'\n } else if (this.el.getState() === 'IDLE') { this._currentState = 'IDLE' } else if (this.el.getState() === 'ENDED') {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: this.el.getDuration() }, this.name)\n this._currentState = 'ENDED'\n this._isIdle = true\n }\n }\n\n _progress() {\n if (this._currentState !== 'IDLE' && this._currentState !== 'ENDED') {\n this.trigger(Events.PLAYBACK_PROGRESS,{\n start: 0,\n current: this.el.getBytesLoaded(),\n total: this.el.getBytesTotal()\n })\n }\n }\n\n _firstPlay() {\n if (this.el.playerPlay) {\n this._isIdle = false\n this.el.playerPlay(this._src)\n this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this._checkInitialSeek())\n this._currentState = 'PLAYING'\n } else { this.listenToOnce(this, Events.PLAYBACK_READY, this._firstPlay) }\n\n }\n\n _checkInitialSeek() {\n let seekTime = seekStringToSeconds(window.location.href)\n if (seekTime !== 0)\n this.seekSeconds(seekTime)\n\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n if (this._currentState === 'PAUSED' || this._currentState === 'PLAYING_BUFFERING') {\n this._currentState = 'PLAYING'\n this.el.playerResume()\n this.trigger(Events.PLAYBACK_PLAY, this.name)\n } else if (this._currentState !== 'PLAYING') {\n this._firstPlay()\n this.trigger(Events.PLAYBACK_PLAY, this.name)\n }\n }\n\n volume(value) {\n if (this.isReady)\n this.el.playerVolume(value)\n else\n this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.volume(value))\n\n }\n\n pause() {\n this._currentState = 'PAUSED'\n this.el.playerPause()\n this.trigger(Events.PLAYBACK_PAUSE, this.name)\n }\n\n stop() {\n this.el.playerStop()\n this.trigger(Events.PLAYBACK_STOP)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: 0 }, this.name)\n }\n\n isPlaying() {\n return !!(this.isReady && this._currentState.indexOf('PLAYING') > -1)\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n getDuration() {\n return this.el.getDuration()\n }\n\n seekPercentage(percentage) {\n if (this.el.getDuration() > 0) {\n let seekSeconds = this.el.getDuration() * (percentage / 100)\n this.seek(seekSeconds)\n } else { this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.seekPercentage(percentage)) }\n\n }\n\n seek(time) {\n if (this.isReady && this.el.playerSeek) {\n this.el.playerSeek(time)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: time, total: this.el.getDuration() }, this.name)\n if (this._currentState === 'PAUSED')\n this.el.playerPause()\n\n } else { this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.seek(time)) }\n\n }\n\n destroy() {\n clearInterval(this.bootstrapId)\n super.stopListening()\n this.$el.remove()\n }\n}\n\nFlash.canPlay = function(resource) {\n if (!Browser.hasFlash || !resource || resource.constructor !== String) { return false } else {\n const resourceParts = resource.split('?')[0].match(/.*\\.(.*)$/) || []\n return resourceParts.length > 1 && !Browser.isMobile && resourceParts[1].toLowerCase().match(/^(mp4|mov|f4v|3gpp|3gp)$/)\n\n }\n}\n","import Flash from './flash'\nexport default Flash\n","module.exports = \"<%=baseUrl%>/4b76590b32dab62bc95c1b7951efae78.swf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseFlashPlayback from '../../playbacks/base_flash_playback'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Mediator from '../../components/mediator'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport HLSEvents from './flashls_events'\nimport hlsSwf from './public/HLSPlayer.swf'\nimport $ from 'clappr-zepto'\n\n\nconst MAX_ATTEMPTS = 60\nconst AUTO = -1\n\nexport default class FlasHLS extends BaseFlashPlayback {\n get name() { return 'flashls' }\n get swfPath() { return template(hlsSwf)({ baseUrl: this._baseUrl }) }\n\n get levels() { return this._levels || [] }\n get currentLevel() {\n if (this._currentLevel === null || this._currentLevel === undefined)\n return AUTO\n else\n return this._currentLevel //0 is a valid level ID\n\n }\n set currentLevel(id) {\n this._currentLevel = id\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START)\n this.el.playerSetCurrentLevel(id)\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this._hasEnded\n }\n\n /**\n * Determine if the playback is buffering.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return !!this._bufferingState && !this._hasEnded\n }\n\n constructor(...args) {\n super(...args)\n this._src = this.options.src\n this._baseUrl = this.options.baseUrl\n this._initHlsParameters(this.options)\n // TODO can this be private?\n this.highDefinition = false\n this._autoPlay = this.options.autoPlay\n this._loop = this.options.loop\n this._defaultSettings = {\n left: ['playstop'],\n default: ['seekbar'],\n right: ['fullscreen', 'volume', 'hd-indicator'],\n seekEnabled: false\n }\n this.settings = $.extend({}, this._defaultSettings)\n this._playbackType = Playback.LIVE\n this._hasEnded = false\n this._addListeners()\n }\n\n _initHlsParameters(options) {\n this._autoStartLoad = (options.autoStartLoad === undefined) ? true : options.autoStartLoad\n this._capLevelToStage = (options.capLevelToStage === undefined) ? false : options.capLevelToStage\n this._maxLevelCappingMode = (options.maxLevelCappingMode === undefined) ? 'downscale' : options.maxLevelCappingMode\n this._minBufferLength = (options.minBufferLength === undefined) ? -1 : options.minBufferLength\n this._minBufferLengthCapping = (options.minBufferLengthCapping === undefined) ? -1 : options.minBufferLengthCapping\n this._maxBufferLength = (options.maxBufferLength === undefined) ? 120 : options.maxBufferLength\n this._maxBackBufferLength = (options.maxBackBufferLength === undefined) ? 30 : options.maxBackBufferLength\n this._lowBufferLength = (options.lowBufferLength === undefined) ? 3 : options.lowBufferLength\n this._mediaTimePeriod = (options.mediaTimePeriod === undefined) ? 100 : options.mediaTimePeriod\n this._fpsDroppedMonitoringPeriod = (options.fpsDroppedMonitoringPeriod === undefined) ? 5000 : options.fpsDroppedMonitoringPeriod\n this._fpsDroppedMonitoringThreshold = (options.fpsDroppedMonitoringThreshold === undefined) ? 0.2 : options.fpsDroppedMonitoringThreshold\n this._capLevelonFPSDrop = (options.capLevelonFPSDrop === undefined) ? false : options.capLevelonFPSDrop\n this._smoothAutoSwitchonFPSDrop = (options.smoothAutoSwitchonFPSDrop === undefined) ? this.capLevelonFPSDrop : options.smoothAutoSwitchonFPSDrop\n this._switchDownOnLevelError = (options.switchDownOnLevelError === undefined) ? true : options.switchDownOnLevelError\n this._seekMode = (options.seekMode === undefined) ? 'ACCURATE' : options.seekMode\n this._keyLoadMaxRetry = (options.keyLoadMaxRetry === undefined) ? 3 : options.keyLoadMaxRetry\n this._keyLoadMaxRetryTimeout = (options.keyLoadMaxRetryTimeout === undefined) ? 64000 : options.keyLoadMaxRetryTimeout\n this._fragmentLoadMaxRetry = (options.fragmentLoadMaxRetry === undefined) ? 3 : options.fragmentLoadMaxRetry\n this._fragmentLoadMaxRetryTimeout = (options.fragmentLoadMaxRetryTimeout === undefined) ? 4000 : options.fragmentLoadMaxRetryTimeout\n this._fragmentLoadSkipAfterMaxRetry = (options.fragmentLoadSkipAfterMaxRetry === undefined) ? true : options.fragmentLoadSkipAfterMaxRetry\n this._maxSkippedFragments = (options.maxSkippedFragments === undefined) ? 5 : options.maxSkippedFragments\n this._flushLiveURLCache = (options.flushLiveURLCache === undefined) ? false : options.flushLiveURLCache\n this._initialLiveManifestSize = (options.initialLiveManifestSize === undefined) ? 1 : options.initialLiveManifestSize\n this._manifestLoadMaxRetry = (options.manifestLoadMaxRetry === undefined) ? 3 : options.manifestLoadMaxRetry\n this._manifestLoadMaxRetryTimeout = (options.manifestLoadMaxRetryTimeout === undefined) ? 64000 : options.manifestLoadMaxRetryTimeout\n this._manifestRedundantLoadmaxRetry = (options.manifestRedundantLoadmaxRetry === undefined) ? 3 : options.manifestRedundantLoadmaxRetry\n this._startFromBitrate = (options.startFromBitrate === undefined) ? -1 : options.startFromBitrate\n this._startFromLevel = (options.startFromLevel === undefined) ? -1 : options.startFromLevel\n this._autoStartMaxDuration = (options.autoStartMaxDuration === undefined) ? -1 : options.autoStartMaxDuration\n this._seekFromLevel = (options.seekFromLevel === undefined) ? -1 : options.seekFromLevel\n this._useHardwareVideoDecoder = (options.useHardwareVideoDecoder === undefined) ? false : options.useHardwareVideoDecoder\n this._hlsLogEnabled = (options.hlsLogEnabled === undefined) ? true : options.hlsLogEnabled\n this._logDebug = (options.logDebug === undefined) ? false : options.logDebug\n this._logDebug2 = (options.logDebug2 === undefined) ? false : options.logDebug2\n this._logWarn = (options.logWarn === undefined) ? true : options.logWarn\n this._logError = (options.logError === undefined) ? true : options.logError\n this._hlsMinimumDvrSize = (options.hlsMinimumDvrSize === undefined) ? 60 : options.hlsMinimumDvrSize\n }\n\n _addListeners() {\n Mediator.on(this.cid + ':flashready', () => this._bootstrap())\n Mediator.on(this.cid + ':timeupdate', (timeMetrics) => this._updateTime(timeMetrics))\n Mediator.on(this.cid + ':playbackstate', (state) => this._setPlaybackState(state))\n Mediator.on(this.cid + ':levelchanged', (level) => this._levelChanged(level))\n Mediator.on(this.cid + ':error', (code, url, message) => this._flashPlaybackError(code, url, message))\n Mediator.on(this.cid + ':fragmentloaded',(loadmetrics) => this._onFragmentLoaded(loadmetrics))\n Mediator.on(this.cid + ':levelendlist', (level) => this._onLevelEndlist(level))\n }\n\n stopListening() {\n super.stopListening()\n Mediator.off(this.cid + ':flashready')\n Mediator.off(this.cid + ':timeupdate')\n Mediator.off(this.cid + ':playbackstate')\n Mediator.off(this.cid + ':levelchanged')\n Mediator.off(this.cid + ':playbackerror')\n Mediator.off(this.cid + ':fragmentloaded')\n Mediator.off(this.cid + ':manifestloaded')\n Mediator.off(this.cid + ':levelendlist')\n }\n\n _bootstrap() {\n if (this.el.playerLoad) {\n this.el.width = '100%'\n this.el.height = '100%'\n this._isReadyState = true\n this._srcLoaded = false\n this._currentState = 'IDLE'\n this._setFlashSettings()\n this._updatePlaybackType()\n if (this._autoPlay || this._shouldPlayOnManifestLoaded)\n this.play()\n\n this.trigger(Events.PLAYBACK_READY, this.name)\n } else {\n this._bootstrapAttempts = this._bootstrapAttempts || 0\n if (++this._bootstrapAttempts <= MAX_ATTEMPTS) {\n setTimeout(() => this._bootstrap(), 50)\n } else {\n const formattedError = this.createError({\n code: 'playerLoadFail_maxNumberAttemptsReached',\n description: `${this.name} error: Max number of attempts reached`,\n level: PlayerError.Levels.FATAL,\n raw: {},\n })\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n }\n }\n\n _setFlashSettings() {\n this.el.playerSetAutoStartLoad(this._autoStartLoad)\n this.el.playerSetCapLevelToStage(this._capLevelToStage)\n this.el.playerSetMaxLevelCappingMode(this._maxLevelCappingMode)\n this.el.playerSetMinBufferLength(this._minBufferLength)\n this.el.playerSetMinBufferLengthCapping(this._minBufferLengthCapping)\n this.el.playerSetMaxBufferLength(this._maxBufferLength)\n this.el.playerSetMaxBackBufferLength(this._maxBackBufferLength)\n this.el.playerSetLowBufferLength(this._lowBufferLength)\n this.el.playerSetMediaTimePeriod(this._mediaTimePeriod)\n this.el.playerSetFpsDroppedMonitoringPeriod(this._fpsDroppedMonitoringPeriod)\n this.el.playerSetFpsDroppedMonitoringThreshold(this._fpsDroppedMonitoringThreshold)\n this.el.playerSetCapLevelonFPSDrop(this._capLevelonFPSDrop)\n this.el.playerSetSmoothAutoSwitchonFPSDrop(this._smoothAutoSwitchonFPSDrop)\n this.el.playerSetSwitchDownOnLevelError(this._switchDownOnLevelError)\n this.el.playerSetSeekMode(this._seekMode)\n this.el.playerSetKeyLoadMaxRetry(this._keyLoadMaxRetry)\n this.el.playerSetKeyLoadMaxRetryTimeout(this._keyLoadMaxRetryTimeout)\n this.el.playerSetFragmentLoadMaxRetry(this._fragmentLoadMaxRetry)\n this.el.playerSetFragmentLoadMaxRetryTimeout(this._fragmentLoadMaxRetryTimeout)\n this.el.playerSetFragmentLoadSkipAfterMaxRetry(this._fragmentLoadSkipAfterMaxRetry)\n this.el.playerSetMaxSkippedFragments(this._maxSkippedFragments)\n this.el.playerSetFlushLiveURLCache(this._flushLiveURLCache)\n this.el.playerSetInitialLiveManifestSize(this._initialLiveManifestSize)\n this.el.playerSetManifestLoadMaxRetry(this._manifestLoadMaxRetry)\n this.el.playerSetManifestLoadMaxRetryTimeout(this._manifestLoadMaxRetryTimeout)\n this.el.playerSetManifestRedundantLoadmaxRetry(this._manifestRedundantLoadmaxRetry)\n this.el.playerSetStartFromBitrate(this._startFromBitrate)\n this.el.playerSetStartFromLevel(this._startFromLevel)\n this.el.playerSetAutoStartMaxDuration(this._autoStartMaxDuration)\n this.el.playerSetSeekFromLevel(this._seekFromLevel)\n this.el.playerSetUseHardwareVideoDecoder(this._useHardwareVideoDecoder)\n this.el.playerSetLogInfo(this._hlsLogEnabled)\n this.el.playerSetLogDebug(this._logDebug)\n this.el.playerSetLogDebug2(this._logDebug2)\n this.el.playerSetLogWarn(this._logWarn)\n this.el.playerSetLogError(this._logError)\n }\n\n setAutoStartLoad(autoStartLoad) {\n this._autoStartLoad = autoStartLoad\n this.el.playerSetAutoStartLoad(this._autoStartLoad)\n }\n\n setCapLevelToStage(capLevelToStage) {\n this._capLevelToStage = capLevelToStage\n this.el.playerSetCapLevelToStage(this._capLevelToStage)\n }\n\n setMaxLevelCappingMode(maxLevelCappingMode) {\n this._maxLevelCappingMode = maxLevelCappingMode\n this.el.playerSetMaxLevelCappingMode(this._maxLevelCappingMode)\n }\n\n setSetMinBufferLength(minBufferLength) {\n this._minBufferLength = minBufferLength\n this.el.playerSetMinBufferLength(this._minBufferLength)\n }\n\n setMinBufferLengthCapping(minBufferLengthCapping) {\n this._minBufferLengthCapping = minBufferLengthCapping\n this.el.playerSetMinBufferLengthCapping(this._minBufferLengthCapping)\n }\n\n setMaxBufferLength(maxBufferLength) {\n this._maxBufferLength = maxBufferLength\n this.el.playerSetMaxBufferLength(this._maxBufferLength)\n }\n\n setMaxBackBufferLength(maxBackBufferLength) {\n this._maxBackBufferLength = maxBackBufferLength\n this.el.playerSetMaxBackBufferLength(this._maxBackBufferLength)\n }\n\n setLowBufferLength(lowBufferLength) {\n this._lowBufferLength = lowBufferLength\n this.el.playerSetLowBufferLength(this._lowBufferLength)\n }\n\n setMediaTimePeriod(mediaTimePeriod) {\n this._mediaTimePeriod = mediaTimePeriod\n this.el.playerSetMediaTimePeriod(this._mediaTimePeriod)\n }\n\n setFpsDroppedMonitoringPeriod(fpsDroppedMonitoringPeriod) {\n this._fpsDroppedMonitoringPeriod = fpsDroppedMonitoringPeriod\n this.el.playerSetFpsDroppedMonitoringPeriod(this._fpsDroppedMonitoringPeriod)\n }\n\n setFpsDroppedMonitoringThreshold(fpsDroppedMonitoringThreshold) {\n this._fpsDroppedMonitoringThreshold = fpsDroppedMonitoringThreshold\n this.el.playerSetFpsDroppedMonitoringThreshold(this._fpsDroppedMonitoringThreshold)\n }\n\n setCapLevelonFPSDrop(capLevelonFPSDrop) {\n this._capLevelonFPSDrop = capLevelonFPSDrop\n this.el.playerSetCapLevelonFPSDrop(this._capLevelonFPSDrop)\n }\n\n setSmoothAutoSwitchonFPSDrop(smoothAutoSwitchonFPSDrop) {\n this._smoothAutoSwitchonFPSDrop = smoothAutoSwitchonFPSDrop\n this.el.playerSetSmoothAutoSwitchonFPSDrop(this._smoothAutoSwitchonFPSDrop)\n }\n\n setSwitchDownOnLevelError(switchDownOnLevelError) {\n this._switchDownOnLevelError = switchDownOnLevelError\n this.el.playerSetSwitchDownOnLevelError(this._switchDownOnLevelError)\n }\n\n setSeekMode(seekMode) {\n this._seekMode = seekMode\n this.el.playerSetSeekMode(this._seekMode)\n }\n\n setKeyLoadMaxRetry(keyLoadMaxRetry) {\n this._keyLoadMaxRetry = keyLoadMaxRetry\n this.el.playerSetKeyLoadMaxRetry(this._keyLoadMaxRetry)\n }\n\n setKeyLoadMaxRetryTimeout(keyLoadMaxRetryTimeout) {\n this._keyLoadMaxRetryTimeout = keyLoadMaxRetryTimeout\n this.el.playerSetKeyLoadMaxRetryTimeout(this._keyLoadMaxRetryTimeout)\n }\n\n setFragmentLoadMaxRetry(fragmentLoadMaxRetry) {\n this._fragmentLoadMaxRetry = fragmentLoadMaxRetry\n this.el.playerSetFragmentLoadMaxRetry(this._fragmentLoadMaxRetry)\n }\n\n setFragmentLoadMaxRetryTimeout(fragmentLoadMaxRetryTimeout) {\n this._fragmentLoadMaxRetryTimeout = fragmentLoadMaxRetryTimeout\n this.el.playerSetFragmentLoadMaxRetryTimeout(this._fragmentLoadMaxRetryTimeout)\n }\n\n setFragmentLoadSkipAfterMaxRetry(fragmentLoadSkipAfterMaxRetry) {\n this._fragmentLoadSkipAfterMaxRetry = fragmentLoadSkipAfterMaxRetry\n this.el.playerSetFragmentLoadSkipAfterMaxRetry(this._fragmentLoadSkipAfterMaxRetry)\n }\n\n setMaxSkippedFragments(maxSkippedFragments) {\n this._maxSkippedFragments = maxSkippedFragments\n this.el.playerSetMaxSkippedFragments(this._maxSkippedFragments)\n }\n\n setFlushLiveURLCache(flushLiveURLCache) {\n this._flushLiveURLCache = flushLiveURLCache\n this.el.playerSetFlushLiveURLCache(this._flushLiveURLCache)\n }\n\n setInitialLiveManifestSize(initialLiveManifestSize) {\n this._initialLiveManifestSize = initialLiveManifestSize\n this.el.playerSetInitialLiveManifestSize(this._initialLiveManifestSize)\n }\n\n setManifestLoadMaxRetry(manifestLoadMaxRetry) {\n this._manifestLoadMaxRetry = manifestLoadMaxRetry\n this.el.playerSetManifestLoadMaxRetry(this._manifestLoadMaxRetry)\n }\n\n setManifestLoadMaxRetryTimeout(manifestLoadMaxRetryTimeout) {\n this._manifestLoadMaxRetryTimeout = manifestLoadMaxRetryTimeout\n this.el.playerSetManifestLoadMaxRetryTimeout(this._manifestLoadMaxRetryTimeout)\n }\n\n setManifestRedundantLoadmaxRetry(manifestRedundantLoadmaxRetry) {\n this._manifestRedundantLoadmaxRetry = manifestRedundantLoadmaxRetry\n this.el.playerSetManifestRedundantLoadmaxRetry(this._manifestRedundantLoadmaxRetry)\n }\n\n setStartFromBitrate(startFromBitrate) {\n this._startFromBitrate = startFromBitrate\n this.el.playerSetStartFromBitrate(this._startFromBitrate)\n }\n\n setStartFromLevel(startFromLevel) {\n this._startFromLevel = startFromLevel\n this.el.playerSetStartFromLevel(this._startFromLevel)\n }\n\n setAutoStartMaxDuration(autoStartMaxDuration) {\n this._autoStartMaxDuration = autoStartMaxDuration\n this.el.playerSetAutoStartMaxDuration(this._autoStartMaxDuration)\n }\n\n setSeekFromLevel(seekFromLevel) {\n this._seekFromLevel = seekFromLevel\n this.el.playerSetSeekFromLevel(this._seekFromLevel)\n }\n\n setUseHardwareVideoDecoder(useHardwareVideoDecoder) {\n this._useHardwareVideoDecoder = useHardwareVideoDecoder\n this.el.playerSetUseHardwareVideoDecoder(this._useHardwareVideoDecoder)\n }\n\n setSetLogInfo(hlsLogEnabled) {\n this._hlsLogEnabled = hlsLogEnabled\n this.el.playerSetLogInfo(this._hlsLogEnabled)\n }\n\n setLogDebug(logDebug) {\n this._logDebug = logDebug\n this.el.playerSetLogDebug(this._logDebug)\n }\n\n setLogDebug2(logDebug2) {\n this._logDebug2 = logDebug2\n this.el.playerSetLogDebug2(this._logDebug2)\n }\n\n setLogWarn(logWarn) {\n this._logWarn = logWarn\n this.el.playerSetLogWarn(this._logWarn)\n }\n\n setLogError(logError) {\n this._logError = logError\n this.el.playerSetLogError(this._logError)\n }\n\n _levelChanged(level) {\n const currentLevel = this.el.getLevels()[level]\n if (currentLevel) {\n this.highDefinition = (currentLevel.height >= 720 || (currentLevel.bitrate / 1000) >= 2000)\n this.trigger(Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinition)\n\n if (!this._levels || this._levels.length === 0) this._fillLevels()\n\n this.trigger(Events.PLAYBACK_BITRATE, {\n height: currentLevel.height,\n width: currentLevel.width,\n bandwidth: currentLevel.bitrate,\n bitrate: currentLevel.bitrate,\n level: level\n })\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END)\n }\n }\n\n _updateTime(timeMetrics) {\n if (this._currentState === 'IDLE')\n return\n\n\n const duration = this._normalizeDuration(timeMetrics.duration)\n let position = Math.min(Math.max(timeMetrics.position, 0), duration)\n const previousDVRStatus = this._dvrEnabled\n const livePlayback = (this._playbackType === Playback.LIVE)\n this._dvrEnabled = (livePlayback && duration > this._hlsMinimumDvrSize)\n\n if (duration === 100 || livePlayback === undefined)\n return\n\n\n if (this._dvrEnabled !== previousDVRStatus) {\n this._updateSettings()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE, this.name)\n }\n\n if (livePlayback && !this._dvrEnabled)\n position = duration\n\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: position, total: duration }, this.name)\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n if (this._currentState === 'PAUSED')\n this.el.playerResume()\n else if (!this._srcLoaded && this._currentState !== 'PLAYING')\n this._firstPlay()\n else\n this.el.playerPlay()\n\n }\n\n getPlaybackType() {\n return this._playbackType? this._playbackType: null\n }\n\n getCurrentTime() {\n return this.el.getPosition()\n }\n\n getCurrentLevelIndex() {\n return this._currentLevel\n }\n\n getCurrentLevel() {\n return this.levels[this.currentLevel]\n }\n\n getCurrentBitrate() {\n return this.levels[this.currentLevel].bitrate\n }\n\n setCurrentLevel(level) {\n this.currentLevel = level\n }\n\n isHighDefinitionInUse() {\n return this.highDefinition\n }\n\n getLevels() {\n return this.levels\n }\n\n _setPlaybackState(state) {\n if (['PLAYING_BUFFERING', 'PAUSED_BUFFERING'].indexOf(state) >= 0) {\n this._bufferingState = true\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n this._updateCurrentState(state)\n } else if (['PLAYING', 'PAUSED'].indexOf(state) >= 0) {\n if (['PLAYING_BUFFERING', 'PAUSED_BUFFERING', 'IDLE'].indexOf(this._currentState) >= 0) {\n this._bufferingState = false\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n }\n this._updateCurrentState(state)\n } else if (state === 'IDLE') {\n this._srcLoaded = false\n if (this._loop && ['PLAYING_BUFFERING', 'PLAYING'].indexOf(this._currentState) >= 0) {\n this.play()\n this.seek(0)\n } else {\n this._updateCurrentState(state)\n this._hasEnded = true\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: this.getDuration() }, this.name)\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n }\n }\n\n _updateCurrentState(state) {\n this._currentState = state\n if (state !== 'IDLE')\n this._hasEnded = false\n\n this._updatePlaybackType()\n if (state === 'PLAYING')\n this.trigger(Events.PLAYBACK_PLAY, this.name)\n else if (state === 'PAUSED')\n this.trigger(Events.PLAYBACK_PAUSE, this.name)\n\n }\n\n _updatePlaybackType() {\n this._playbackType = this.el.getType()\n if (this._playbackType) {\n this._playbackType = this._playbackType.toLowerCase()\n if (this._playbackType === Playback.VOD)\n this._startReportingProgress()\n else\n this._stopReportingProgress()\n\n }\n this.trigger(Events.PLAYBACK_PLAYBACKSTATE, { type: this._playbackType })\n }\n\n _startReportingProgress() {\n if (!this._reportingProgress)\n this._reportingProgress = true\n\n }\n\n _stopReportingProgress() {\n this._reportingProgress = false\n }\n\n _onFragmentLoaded(loadmetrics) {\n this.trigger(Events.PLAYBACK_FRAGMENT_LOADED, loadmetrics)\n if (this._reportingProgress && this.getCurrentTime()) {\n const buffered = this.getCurrentTime() + this.el.getbufferLength()\n this.trigger(Events.PLAYBACK_PROGRESS, {\n start: this.getCurrentTime(),\n current: buffered,\n total: this.el.getDuration()\n })\n }\n }\n\n _onLevelEndlist() {\n this._updatePlaybackType()\n }\n\n _firstPlay() {\n this._shouldPlayOnManifestLoaded = true\n if (this.el.playerLoad) {\n Mediator.once(this.cid + ':manifestloaded', (duration, loadmetrics) => this._manifestLoaded(duration, loadmetrics))\n this._setFlashSettings() //ensure flushLiveURLCache will work (#327)\n this.el.playerLoad(this._src)\n this._srcLoaded = true\n }\n }\n\n volume(value) {\n if (this.isReady)\n this.el.playerVolume(value)\n else\n this.listenToOnce(this, Events.PLAYBACK_BUFFERFULL, () => this.volume(value))\n\n }\n\n pause() {\n if (this._playbackType !== Playback.LIVE || this._dvrEnabled) {\n this.el.playerPause()\n if (this._playbackType === Playback.LIVE && this._dvrEnabled)\n this._updateDvr(true)\n\n }\n }\n\n stop() {\n this._srcLoaded = false\n this.el.playerStop()\n this.trigger(Events.PLAYBACK_STOP)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 0, total: 0 }, this.name)\n }\n\n isPlaying() {\n if (this._currentState)\n return !!(this._currentState.match(/playing/i))\n\n return false\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n getDuration() {\n return this._normalizeDuration(this.el.getDuration())\n }\n\n _normalizeDuration(duration) {\n if (this._playbackType === Playback.LIVE) {\n // estimate 10 seconds of buffer time for live streams for seek positions\n duration = Math.max(0, duration - 10)\n }\n return duration\n }\n\n seekPercentage(percentage) {\n const duration = this.el.getDuration()\n let time = 0\n if (percentage > 0)\n time = duration * percentage / 100\n\n this.seek(time)\n }\n\n seek(time) {\n const duration = this.getDuration()\n if (this._playbackType === Playback.LIVE) {\n // seek operations to a time within 3 seconds from live stream will position playhead back to live\n const dvrInUse = duration - time > 3\n this._updateDvr(dvrInUse)\n }\n this.el.playerSeek(time)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: time, total: duration }, this.name)\n }\n\n _updateDvr(dvrInUse) {\n const previousDvrInUse = !!this._dvrInUse\n this._dvrInUse = dvrInUse\n if (this._dvrInUse !== previousDvrInUse) {\n this._updateSettings()\n this.trigger(Events.PLAYBACK_DVR, this._dvrInUse)\n this.trigger(Events.PLAYBACK_STATS_ADD, { 'dvr': this._dvrInUse })\n }\n }\n\n _flashPlaybackError(code, url, message) {\n const error = {\n code,\n description: message,\n level: PlayerError.Levels.FATAL,\n raw: { code, url, message },\n }\n const formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n _manifestLoaded(duration, loadmetrics) {\n if (this._shouldPlayOnManifestLoaded) {\n this._shouldPlayOnManifestLoaded = false\n // this method initialises the player (and starts playback)\n // this needs to happen before PLAYBACK_LOADEDMETADATA is fired\n // as the user may call seek() in a LOADEDMETADATA listener.\n /// when playerPlay() is called the player seeks to 0\n this.el.playerPlay()\n }\n\n this._fillLevels()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: duration, data: loadmetrics })\n }\n\n _fillLevels() {\n const levels = this.el.getLevels()\n const levelsLength = levels.length\n this._levels = []\n\n for (let index = 0 ; index < levelsLength ; index++)\n this._levels.push({ id: index, label: `${levels[index].height}p`, level: levels[index] })\n\n this.trigger(Events.PLAYBACK_LEVELS_AVAILABLE, this._levels)\n }\n\n destroy() {\n this.stopListening()\n this.$el.remove()\n }\n\n _updateSettings() {\n this.settings = $.extend({}, this._defaultSettings)\n if (this._playbackType === Playback.VOD || this._dvrInUse) {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = true\n } else if (this._dvrEnabled) {\n this.settings.left = ['playpause']\n this.settings.seekEnabled = true\n } else { this.settings.seekEnabled = false }\n\n }\n\n get dvrEnabled() {\n return !!this._dvrEnabled\n }\n\n _createCallbacks() {\n if (!window.Clappr)\n window.Clappr = {}\n\n if (!window.Clappr.flashlsCallbacks)\n window.Clappr.flashlsCallbacks = {}\n\n this.flashlsEvents = new HLSEvents(this.cid)\n window.Clappr.flashlsCallbacks[this.cid] = (eventName, args) => {\n this.flashlsEvents[eventName].apply(this.flashlsEvents, args)\n }\n }\n\n render() {\n super.render()\n this._createCallbacks()\n return this\n }\n}\n\nFlasHLS.canPlay = function(resource, mimeType) {\n const resourceParts = resource.split('?')[0].match(/.*\\.(.*)$/) || []\n return Browser.hasFlash &&\n ((resourceParts.length > 1 && resourceParts[1].toLowerCase() === 'm3u8') ||\n mimeType === 'application/x-mpegURL' || mimeType === 'application/vnd.apple.mpegurl')\n}\n","import Mediator from '../../components/mediator'\n\nexport default class HLSEvents {\n constructor(instanceId) {\n this.instanceId = instanceId\n }\n ready() {\n Mediator.trigger(`${this.instanceId}:flashready`)\n }\n videoSize(width, height) {\n Mediator.trigger(`${this.instanceId}:videosizechanged`, width, height)\n }\n complete() {\n Mediator.trigger(`${this.instanceId}:complete`)\n }\n error(code, url, message) {\n Mediator.trigger(`${this.instanceId}:error`, code, url, message)\n }\n manifest(duration, loadmetrics) {\n Mediator.trigger(`${this.instanceId}:manifestloaded`, duration, loadmetrics)\n }\n audioLevelLoaded(loadmetrics) {\n Mediator.trigger(`${this.instanceId}:audiolevelloaded`, loadmetrics)\n }\n levelLoaded(loadmetrics) {\n Mediator.trigger(`${this.instanceId}:levelloaded`, loadmetrics)\n }\n levelEndlist(level) {\n Mediator.trigger(`${this.instanceId}:levelendlist`, level)\n }\n fragmentLoaded(loadmetrics) {\n Mediator.trigger(`${this.instanceId}:fragmentloaded`, loadmetrics)\n }\n fragmentPlaying(playmetrics) {\n Mediator.trigger(`${this.instanceId}:fragmentplaying`, playmetrics)\n }\n position(timemetrics) {\n Mediator.trigger(`${this.instanceId}:timeupdate`, timemetrics)\n }\n state(newState) {\n Mediator.trigger(`${this.instanceId}:playbackstate`, newState)\n }\n seekState(newState) {\n Mediator.trigger(`${this.instanceId}:seekstate`, newState)\n }\n switch(newLevel) {\n Mediator.trigger(`${this.instanceId}:levelchanged`, newLevel)\n }\n audioTracksListChange(trackList) {\n Mediator.trigger(`${this.instanceId}:audiotracklistchanged`, trackList)\n }\n audioTrackChange(trackId) {\n Mediator.trigger(`${this.instanceId}:audiotrackchanged`, trackId)\n }\n}\n\n","import FlasHLS from './flashls'\nexport default FlasHLS\n","module.exports = \"<%=baseUrl%>/8fa12a459188502b9f0d39b8a67d9e6c.swf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport HLSJS from 'hls.js'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport { now, assign, listContainsIgnoreCase } from '../../base/utils'\nimport Log from '../../plugins/log'\nimport PlayerError from '../../components/error'\n\nconst AUTO = -1\n\nexport default class HLS extends HTML5VideoPlayback {\n get name() { return 'hls' }\n\n get levels() { return this._levels || [] }\n\n get currentLevel() {\n if (this._currentLevel === null || this._currentLevel === undefined)\n return AUTO\n else\n return this._currentLevel //0 is a valid level ID\n\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n set currentLevel(id) {\n this._currentLevel = id\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START)\n if (this.options.playback.hlsUseNextLevel)\n this._hls.nextLevel = this._currentLevel\n else\n this._hls.currentLevel = this._currentLevel\n }\n\n get _startTime() {\n if (this._playbackType === Playback.LIVE && this._playlistType !== 'EVENT')\n return this._extrapolatedStartTime\n\n return this._playableRegionStartTime\n }\n\n get _now() {\n return now()\n }\n\n // the time in the video element which should represent the start of the sliding window\n // extrapolated to increase in real time (instead of jumping as the early segments are removed)\n get _extrapolatedStartTime() {\n if (!this._localStartTimeCorrelation)\n return this._playableRegionStartTime\n\n let corr = this._localStartTimeCorrelation\n let timePassed = this._now - corr.local\n let extrapolatedWindowStartTime = (corr.remote + timePassed) / 1000\n // cap at the end of the extrapolated window duration\n return Math.min(extrapolatedWindowStartTime, this._playableRegionStartTime + this._extrapolatedWindowDuration)\n }\n\n // the time in the video element which should represent the end of the content\n // extrapolated to increase in real time (instead of jumping as segments are added)\n get _extrapolatedEndTime() {\n let actualEndTime = this._playableRegionStartTime + this._playableRegionDuration\n if (!this._localEndTimeCorrelation)\n return actualEndTime\n\n let corr = this._localEndTimeCorrelation\n let timePassed = this._now - corr.local\n let extrapolatedEndTime = (corr.remote + timePassed) / 1000\n return Math.max(actualEndTime - this._extrapolatedWindowDuration, Math.min(extrapolatedEndTime, actualEndTime))\n }\n\n get _duration() {\n return this._extrapolatedEndTime - this._startTime\n }\n\n // Returns the duration (seconds) of the window that the extrapolated start time is allowed\n // to move in before being capped.\n // The extrapolated start time should never reach the cap at the end of the window as the\n // window should slide as chunks are removed from the start.\n // This also applies to the extrapolated end time in the same way.\n //\n // If chunks aren't being removed for some reason that the start time will reach and remain fixed at\n // playableRegionStartTime + extrapolatedWindowDuration\n //\n // <-- window duration -->\n // I.e playableRegionStartTime |-----------------------|\n // | --> . . .\n // . --> | --> . .\n // . . --> | --> .\n // . . . --> |\n // . . . .\n // extrapolatedStartTime\n get _extrapolatedWindowDuration() {\n if (this._segmentTargetDuration === null)\n return 0\n\n return this._extrapolatedWindowNumSegments * this._segmentTargetDuration\n }\n\n static get HLSJS() {\n return HLSJS\n }\n\n constructor(...args) {\n super(...args)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback = { ...this.options, ...this.options.playback }\n this._minDvrSize = typeof (this.options.hlsMinimumDvrSize) === 'undefined' ? 60 : this.options.hlsMinimumDvrSize\n // The size of the start time extrapolation window measured as a multiple of segments.\n // Should be 2 or higher, or 0 to disable. Should only need to be increased above 2 if more than one segment is\n // removed from the start of the playlist at a time. E.g if the playlist is cached for 10 seconds and new chunks are\n // added/removed every 5.\n this._extrapolatedWindowNumSegments = !this.options.playback || typeof (this.options.playback.extrapolatedWindowNumSegments) === 'undefined' ? 2 : this.options.playback.extrapolatedWindowNumSegments\n\n this._playbackType = Playback.VOD\n this._lastTimeUpdate = { current: 0, total: 0 }\n this._lastDuration = null\n // for hls streams which have dvr with a sliding window,\n // the content at the start of the playlist is removed as new\n // content is appended at the end.\n // this means the actual playable start time will increase as the\n // start content is deleted\n // For streams with dvr where the entire recording is kept from the\n // beginning this should stay as 0\n this._playableRegionStartTime = 0\n // {local, remote} remote is the time in the video element that should represent 0\n // local is the system time when the 'remote' measurment took place\n this._localStartTimeCorrelation = null\n // {local, remote} remote is the time in the video element that should represents the end\n // local is the system time when the 'remote' measurment took place\n this._localEndTimeCorrelation = null\n // if content is removed from the beginning then this empty area should\n // be ignored. \"playableRegionDuration\" excludes the empty area\n this._playableRegionDuration = 0\n // #EXT-X-PROGRAM-DATE-TIME\n this._programDateTime = 0\n // true when the actual duration is longer than hlsjs's live sync point\n // when this is false playableRegionDuration will be the actual duration\n // when this is true playableRegionDuration will exclude the time after the sync point\n this._durationExcludesAfterLiveSyncPoint = false\n // #EXT-X-TARGETDURATION\n this._segmentTargetDuration = null\n // #EXT-X-PLAYLIST-TYPE\n this._playlistType = null\n this._recoverAttemptsRemaining = this.options.hlsRecoverAttempts || 16\n }\n\n _setup() {\n this._ccIsSetup = false\n this._ccTracksUpdated = false\n this._hls = new HLSJS(assign({}, this.options.playback.hlsjsConfig))\n this._hls.on(HLSJS.Events.MEDIA_ATTACHED, () => this._hls.loadSource(this.options.src))\n this._hls.on(HLSJS.Events.LEVEL_LOADED, (evt, data) => this._updatePlaybackType(evt, data))\n this._hls.on(HLSJS.Events.LEVEL_UPDATED, (evt, data) => this._onLevelUpdated(evt, data))\n this._hls.on(HLSJS.Events.LEVEL_SWITCHING, (evt,data) => this._onLevelSwitch(evt, data))\n this._hls.on(HLSJS.Events.FRAG_LOADED, (evt, data) => this._onFragmentLoaded(evt, data))\n this._hls.on(HLSJS.Events.ERROR, (evt, data) => this._onHLSJSError(evt, data))\n this._hls.on(HLSJS.Events.SUBTITLE_TRACK_LOADED, (evt, data) => this._onSubtitleLoaded(evt, data))\n this._hls.on(HLSJS.Events.SUBTITLE_TRACKS_UPDATED, () => this._ccTracksUpdated = true)\n this._hls.attachMedia(this.el)\n }\n\n render() {\n this._ready()\n return super.render()\n }\n\n _ready() {\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _recover(evt, data, error) {\n if (!this._recoveredDecodingError) {\n this._recoveredDecodingError = true\n this._hls.recoverMediaError()\n } else if (!this._recoveredAudioCodecError) {\n this._recoveredAudioCodecError = true\n this._hls.swapAudioCodec()\n this._hls.recoverMediaError()\n } else {\n Log.error('hlsjs: failed to recover', { evt, data })\n error.level = PlayerError.Levels.FATAL\n const formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n }\n }\n\n // override\n _setupSrc(srcUrl) { // eslint-disable-line no-unused-vars\n // this playback manages the src on the video element itself\n }\n\n _startTimeUpdateTimer() {\n if (this._timeUpdateTimer) return\n\n this._timeUpdateTimer = setInterval(() => {\n this._onDurationChange()\n this._onTimeUpdate()\n }, 100)\n }\n\n _stopTimeUpdateTimer() {\n if (!this._timeUpdateTimer) return\n\n clearInterval(this._timeUpdateTimer)\n this._timeUpdateTimer = null\n }\n\n getProgramDateTime() {\n return this._programDateTime\n }\n // the duration on the video element itself should not be used\n // as this does not necesarily represent the duration of the stream\n // https://github.com/clappr/clappr/issues/668#issuecomment-157036678\n getDuration() {\n return this._duration\n }\n\n getCurrentTime() {\n // e.g. can be < 0 if user pauses near the start\n // eventually they will then be kicked to the end by hlsjs if they run out of buffer\n // before the official start time\n return Math.max(0, this.el.currentTime - this._startTime)\n }\n\n // the time that \"0\" now represents relative to when playback started\n // for a stream with a sliding window this will increase as content is\n // removed from the beginning\n getStartTimeOffset() {\n return this._startTime\n }\n\n seekPercentage(percentage) {\n let seekTo = this._duration\n if (percentage > 0)\n seekTo = this._duration * (percentage / 100)\n\n this.seek(seekTo)\n }\n\n seek(time) {\n if (time < 0) {\n Log.warn('Attempt to seek to a negative time. Resetting to live point. Use seekToLivePoint() to seek to the live point.')\n time = this.getDuration()\n }\n // assume live if time within 3 seconds of end of stream\n this.dvrEnabled && this._updateDvr(time < this.getDuration()-3)\n time += this._startTime\n super.seek(time)\n }\n\n seekToLivePoint() {\n this.seek(this.getDuration())\n }\n\n _updateDvr(status) {\n this.trigger(Events.PLAYBACK_DVR, status)\n this.trigger(Events.PLAYBACK_STATS_ADD, { 'dvr': status })\n }\n\n _updateSettings() {\n if (this._playbackType === Playback.VOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else if (this.dvrEnabled)\n this.settings.left = ['playpause']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n _onHLSJSError(evt, data) {\n const error = {\n code: `${data.type}_${data.details}`,\n description: `${this.name} error: type: ${data.type}, details: ${data.details}`,\n raw: data,\n }\n let formattedError\n if (data.response) error.description += `, response: ${JSON.stringify(data.response)}`\n // only report/handle errors if they are fatal\n // hlsjs should automatically handle non fatal errors\n if (data.fatal) {\n if (this._recoverAttemptsRemaining > 0) {\n this._recoverAttemptsRemaining -= 1\n switch (data.type) {\n case HLSJS.ErrorTypes.NETWORK_ERROR:\n switch (data.details) {\n // The following network errors cannot be recovered with HLS.startLoad()\n // For more details, see https://github.com/video-dev/hls.js/blob/master/doc/design.md#error-detection-and-handling\n // For \"level load\" fatal errors, see https://github.com/video-dev/hls.js/issues/1138\n case HLSJS.ErrorDetails.MANIFEST_LOAD_ERROR:\n case HLSJS.ErrorDetails.MANIFEST_LOAD_TIMEOUT:\n case HLSJS.ErrorDetails.MANIFEST_PARSING_ERROR:\n case HLSJS.ErrorDetails.LEVEL_LOAD_ERROR:\n case HLSJS.ErrorDetails.LEVEL_LOAD_TIMEOUT:\n Log.error('hlsjs: unrecoverable network fatal error.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n break\n default:\n Log.warn('hlsjs: trying to recover from network error.', { evt, data })\n error.level = PlayerError.Levels.WARN\n this.createError(error)\n this._hls.startLoad()\n break\n }\n break\n case HLSJS.ErrorTypes.MEDIA_ERROR:\n Log.warn('hlsjs: trying to recover from media error.', { evt, data })\n error.level = PlayerError.Levels.WARN\n this.createError(error)\n this._recover(evt, data, error)\n break\n default:\n Log.error('hlsjs: could not recover from error.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n break\n }\n } else {\n Log.error('hlsjs: could not recover from error after maximum number of attempts.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n }\n } else {\n // Transforms HLSJS.ErrorDetails.KEY_LOAD_ERROR non-fatal error to\n // playback fatal error if triggerFatalErrorOnResourceDenied playback\n // option is set. HLSJS.ErrorTypes.KEY_SYSTEM_ERROR are fatal errors\n // and therefore already handled.\n if (this.options.playback.triggerFatalErrorOnResourceDenied && this._keyIsDenied(data)) {\n Log.error('hlsjs: could not load decrypt key.', { evt, data })\n formattedError = this.createError(error)\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n this.stop()\n return\n }\n\n error.level = PlayerError.Levels.WARN\n this.createError(error)\n Log.warn('hlsjs: non-fatal error occurred', { evt, data })\n }\n }\n\n _keyIsDenied(data) {\n return data.type === HLSJS.ErrorTypes.NETWORK_ERROR\n && data.details === HLSJS.ErrorDetails.KEY_LOAD_ERROR\n && data.response\n && data.response.code >= 400\n }\n\n _onTimeUpdate() {\n let update = { current: this.getCurrentTime(), total: this.getDuration(), firstFragDateTime: this.getProgramDateTime() }\n let isSame = this._lastTimeUpdate && (\n update.current === this._lastTimeUpdate.current &&\n update.total === this._lastTimeUpdate.total)\n if (isSame)\n return\n\n this._lastTimeUpdate = update\n this.trigger(Events.PLAYBACK_TIMEUPDATE, update, this.name)\n }\n\n _onDurationChange() {\n let duration = this.getDuration()\n if (this._lastDuration === duration)\n return\n\n this._lastDuration = duration\n super._onDurationChange()\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, {\n // for a stream with sliding window dvr something that is buffered my slide off the start of the timeline\n start: Math.max(0, this.el.buffered.start(i) - this._playableRegionStartTime),\n end: Math.max(0, this.el.buffered.end(i) - this._playableRegionStartTime)\n }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.getDuration()\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n play() {\n if (!this._hls)\n this._setup()\n\n super.play()\n this._startTimeUpdateTimer()\n }\n\n pause() {\n if (!this._hls)\n return\n\n super.pause()\n if (this.dvrEnabled)\n this._updateDvr(true)\n\n }\n\n stop() {\n this._stopTimeUpdateTimer()\n if (this._hls) {\n super.stop()\n this._hls.destroy()\n delete this._hls\n }\n }\n\n destroy() {\n this._stopTimeUpdateTimer()\n if (this._hls) {\n this._hls.destroy()\n delete this._hls\n }\n super.destroy()\n }\n\n _updatePlaybackType(evt, data) {\n this._playbackType = data.details.live ? Playback.LIVE : Playback.VOD\n this._onLevelUpdated(evt, data)\n\n // Live stream subtitle tracks detection hack (may not immediately available)\n if (this._ccTracksUpdated && this._playbackType === Playback.LIVE && this.hasClosedCaptionsTracks)\n this._onSubtitleLoaded()\n\n }\n\n _fillLevels() {\n this._levels = this._hls.levels.map((level, index) => {\n return { id: index, level: level, label: `${level.bitrate/1000}Kbps` }\n })\n this.trigger(Events.PLAYBACK_LEVELS_AVAILABLE, this._levels)\n }\n\n _onLevelUpdated(evt, data) {\n this._segmentTargetDuration = data.details.targetduration\n this._playlistType = data.details.type || null\n\n let startTimeChanged = false\n let durationChanged = false\n let fragments = data.details.fragments\n let previousPlayableRegionStartTime = this._playableRegionStartTime\n let previousPlayableRegionDuration = this._playableRegionDuration\n\n if (fragments.length === 0)\n return\n\n\n // #EXT-X-PROGRAM-DATE-TIME\n if (fragments[0].rawProgramDateTime)\n this._programDateTime = fragments[0].rawProgramDateTime\n\n\n if (this._playableRegionStartTime !== fragments[0].start) {\n startTimeChanged = true\n this._playableRegionStartTime = fragments[0].start\n }\n\n if (startTimeChanged) {\n if (!this._localStartTimeCorrelation) {\n // set the correlation to map to middle of the extrapolation window\n this._localStartTimeCorrelation = {\n local: this._now,\n remote: (fragments[0].start + (this._extrapolatedWindowDuration/2)) * 1000\n }\n } else {\n // check if the correlation still works\n let corr = this._localStartTimeCorrelation\n let timePassed = this._now - corr.local\n // this should point to a time within the extrapolation window\n let startTime = (corr.remote + timePassed) / 1000\n if (startTime < fragments[0].start) {\n // our start time is now earlier than the first chunk\n // (maybe the chunk was removed early)\n // reset correlation so that it sits at the beginning of the first available chunk\n this._localStartTimeCorrelation = {\n local: this._now,\n remote: fragments[0].start * 1000\n }\n } else if (startTime > previousPlayableRegionStartTime + this._extrapolatedWindowDuration) {\n // start time was past the end of the old extrapolation window (so would have been capped)\n // see if now that time would be inside the window, and if it would be set the correlation\n // so that it resumes from the time it was at at the end of the old window\n // update the correlation so that the time starts counting again from the value it's on now\n this._localStartTimeCorrelation = {\n local: this._now,\n remote: Math.max(fragments[0].start, previousPlayableRegionStartTime + this._extrapolatedWindowDuration) * 1000\n }\n }\n }\n }\n\n let newDuration = data.details.totalduration\n // if it's a live stream then shorten the duration to remove access\n // to the area after hlsjs's live sync point\n // seeks to areas after this point sometimes have issues\n if (this._playbackType === Playback.LIVE) {\n let fragmentTargetDuration = data.details.targetduration\n let hlsjsConfig = this.options.playback.hlsjsConfig || {}\n let liveSyncDurationCount = hlsjsConfig.liveSyncDurationCount || HLSJS.DefaultConfig.liveSyncDurationCount\n let hiddenAreaDuration = fragmentTargetDuration * liveSyncDurationCount\n if (hiddenAreaDuration <= newDuration) {\n newDuration -= hiddenAreaDuration\n this._durationExcludesAfterLiveSyncPoint = true\n } else { this._durationExcludesAfterLiveSyncPoint = false }\n\n }\n\n if (newDuration !== this._playableRegionDuration) {\n durationChanged = true\n this._playableRegionDuration = newDuration\n }\n\n // Note the end time is not the playableRegionDuration\n // The end time will always increase even if content is removed from the beginning\n let endTime = fragments[0].start + newDuration\n let previousEndTime = previousPlayableRegionStartTime + previousPlayableRegionDuration\n let endTimeChanged = endTime !== previousEndTime\n if (endTimeChanged) {\n if (!this._localEndTimeCorrelation) {\n // set the correlation to map to the end\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: endTime * 1000\n }\n } else {\n // check if the correlation still works\n let corr = this._localEndTimeCorrelation\n let timePassed = this._now - corr.local\n // this should point to a time within the extrapolation window from the end\n let extrapolatedEndTime = (corr.remote + timePassed) / 1000\n if (extrapolatedEndTime > endTime) {\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: endTime * 1000\n }\n } else if (extrapolatedEndTime < endTime - this._extrapolatedWindowDuration) {\n // our extrapolated end time is now earlier than the extrapolation window from the actual end time\n // (maybe a chunk became available early)\n // reset correlation so that it sits at the beginning of the extrapolation window from the end time\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: (endTime - this._extrapolatedWindowDuration) * 1000\n }\n } else if (extrapolatedEndTime > previousEndTime) {\n // end time was past the old end time (so would have been capped)\n // set the correlation so that it resumes from the time it was at at the end of the old window\n this._localEndTimeCorrelation = {\n local: this._now,\n remote: previousEndTime * 1000\n }\n }\n }\n }\n\n // now that the values have been updated call any methods that use on them so they get the updated values\n // immediately\n durationChanged && this._onDurationChange()\n startTimeChanged && this._onProgress()\n }\n\n _onFragmentLoaded(evt, data) {\n this.trigger(Events.PLAYBACK_FRAGMENT_LOADED, data)\n }\n\n _onSubtitleLoaded() {\n // This event may be triggered multiple times\n // Setup CC only once (disable CC by default)\n if (!this._ccIsSetup) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this._playbackType === Playback.LIVE ? -1 : this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this._ccIsSetup = true\n }\n }\n\n _onLevelSwitch(evt, data) {\n if (!this.levels.length)\n this._fillLevels()\n\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END)\n this.trigger(Events.PLAYBACK_LEVEL_SWITCH, data)\n let currentLevel = this._hls.levels[data.level]\n if (currentLevel) {\n // TODO should highDefinition be private and maybe have a read only accessor if it's used somewhere\n this.highDefinition = (currentLevel.height >= 720 || (currentLevel.bitrate / 1000) >= 2000)\n this.trigger(Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinition)\n this.trigger(Events.PLAYBACK_BITRATE, {\n height: currentLevel.height,\n width: currentLevel.width,\n bandwidth: currentLevel.bitrate,\n bitrate: currentLevel.bitrate,\n level: data.level\n })\n }\n }\n\n get dvrEnabled() {\n // enabled when:\n // - the duration does not include content after hlsjs's live sync point\n // - the playable region duration is longer than the configured duration to enable dvr after\n // - the playback type is LIVE.\n return (this._durationExcludesAfterLiveSyncPoint && this._duration >= this._minDvrSize && this.getPlaybackType() === Playback.LIVE)\n }\n\n getPlaybackType() {\n return this._playbackType\n }\n\n isSeekEnabled() {\n return (this._playbackType === Playback.VOD || this.dvrEnabled)\n }\n}\n\nHLS.canPlay = function(resource, mimeType) {\n const resourceParts = resource.split('?')[0].match(/.*\\.(.*)$/) || []\n const isHls = ((resourceParts.length > 1 && resourceParts[1].toLowerCase() === 'm3u8') || listContainsIgnoreCase(mimeType, ['application/vnd.apple.mpegurl', 'application/x-mpegURL']))\n\n return !!(HLSJS.isSupported() && isHls)\n}\n","import HLS from './hls'\nexport default HLS\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, seekStringToSeconds, DomRecycler, canAutoPlayMedia } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport Events from '../../base/events'\nimport Log from '../../plugins/log'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\nconst UNKNOWN_ERROR = { code: 'unknown', message: 'unknown' }\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n this.options.autoPlay && this.attemptAutoPlay()\n }\n\n configure(options) {\n super.configure(options)\n this.el.loop = !!options.loop\n }\n\n // See Playback.attemptAutoPlay()\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => {\n error && Log.warn(this.name, 'autoplay error.', { result, error })\n\n // https://github.com/clappr/clappr/issues/1076\n result && process.nextTick(() => !this._destroyed && this.play())\n })\n }\n\n // See Playback.canAutoPlay()\n canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay)\n cb(true, null)\n\n let opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false, // Known issue: mediacontrols may asynchronously mute video\n }\n\n // Use current video element if recycling feature enabled with mobile devices\n if (Browser.isMobile && DomRecycler.options.recycleVideo)\n opts.element = this.el\n\n // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n canAutoPlayMedia(cb, opts)\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n if (!this.isPlaying()) {\n super.consent()\n this.el.load()\n }\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n this.el.volume = value / 100\n }\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return this.el.muted === true || this.el.volume === 0\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n const { code, message } = this.el.error || UNKNOWN_ERROR\n const isUnknownError = code === UNKNOWN_ERROR.code\n\n const formattedError = this.createError({\n code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n })\n\n if (isUnknownError)\n Log.warn(this.name, 'HTML5 unknown error: ', formattedError)\n else\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n super.destroy()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n","import HTML5Video from './html5_video'\nexport default HTML5Video\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n \\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n","import HTMLImg from './html_img'\nexport default HTMLImg\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import NoOp from './no_op'\nexport default NoOp\n","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for (let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n","module.exports = \" \\n<%=message%>
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n","import ClickToPausePlugin from './click_to_pause'\nexport default ClickToPausePlugin\n","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport ccIcon from '../../icons/09-cc.svg'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(ccIcon)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n","module.exports = \"\\\"> \\n
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n","import DVRControls from './dvr_controls'\nexport default DVRControls\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","module.exports = \"<%= live %>
\\n\\\"><%= backToLive %> \\n\";","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && this.core.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n","import Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport PlayerError from '../../components/error/'\n\nimport reloadIcon from '../../icons/10-reload.svg'\nimport templateHtml from './public/error_screen.html'\nimport './public/error_screen.scss'\n\nexport default class ErrorScreen extends UICorePlugin {\n get name() { return 'error_screen' }\n get template() { return template(templateHtml) }\n get container() { return this.core.getCurrentContainer() }\n get attributes() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': '',\n }\n }\n\n constructor(core) {\n super(core)\n\n if (this.options.disableErrorScreen) return this.disable()\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged)\n }\n\n bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload')\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this))\n }\n\n reload() {\n this.listenToOnce(this.core, Events.CORE_READY, () => this.container.play())\n this.core.load(this.options.sources, this.options.mimeType)\n this.unbindReload()\n }\n\n unbindReload() {\n this.reloadButton && this.reloadButton.off('click')\n }\n\n onContainerChanged() {\n this.err = null\n this.unbindReload()\n this.hide()\n }\n\n onError(err = {}) {\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err\n this.container.disableMediaControl()\n this.container.stop()\n this.show()\n }\n }\n\n show() {\n this.render()\n this.$el.show()\n }\n\n hide() {\n this.$el.hide()\n }\n\n render() {\n if (!this.err) return\n\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon,\n }))\n\n this.core.$el.append(this.el)\n\n this.bindReload()\n\n return this\n }\n}\n","import ErrorScreen from './error_screen'\nexport default ErrorScreen\n","module.exports = \"\\n <% if (icon) { %>\\n
<%= icon %>
\\n <% } %>\\n
<%= title %>
\\n
<%= message %>
\\n
Error code: <%= code %>
\\n
<%= reloadIcon %>
\\n
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.core.activeContainer && this.containerChanged()\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.activeContainer\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $(' ')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $(' ')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(playIcon)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(pauseIcon)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n","import Favicon from './favicon.js'\nexport default Favicon\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady() {\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n","import Log from './log'\nexport default Log\n","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n","import MediaControl from './media_control'\nexport default MediaControl\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\n\nimport Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\n\nimport $ from 'clappr-zepto'\n\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\nimport stopIcon from '../../icons/03-stop.svg'\nimport volumeIcon from '../../icons/04-volume.svg'\nimport volumeMuteIcon from '../../icons/05-mute.svg'\nimport fullscreenIcon from '../../icons/06-expand.svg'\nimport exitFullscreenIcon from '../../icons/07-shrink.svg'\nimport hdIcon from '../../icons/08-hd.svg'\n\nexport default class MediaControl extends UICorePlugin {\n get name() { return 'media_control' }\n get disabled() {\n let playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP\n return this.userDisabled || playbackIsNOOP\n }\n\n get container() { return this.core && this.core.activeContainer }\n\n get playback() { return this.core && this.core.activePlayback }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(core) {\n super(core)\n this.persistConfig = this.options.persistConfig\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n this.kibo = new Kibo(this.options.focusElement)\n this.bindKeyEvents()\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n } else {\n this.settings = {}\n }\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n getExternalInterface() {\n return {\n setVolume: this.setVolume,\n getVolume: () => this.volume,\n }\n }\n\n bindEvents() {\n this.stopListening()\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged)\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show)\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay))\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindContainerEvents()\n }\n\n bindContainerEvents() {\n if (!this.container) return\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.unbindKeyEvents()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.bindKeyEvents()\n this.show()\n }\n\n play() {\n this.container && this.container.play()\n }\n\n pause() {\n this.container && this.container.pause()\n }\n\n stop() {\n this.container && this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.playback && this.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return\n\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) {\n this.$volumeIcon.append(volumeIcon)\n } else {\n this.$volumeIcon.append(volumeMuteIcon)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon)\n this.$playStopToggle.append(stopIcon)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n Browser.isMobile && this.show()\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n let icon = this.core.isFullscreen() ? exitFullscreenIcon : fullscreenIcon\n this.$fullscreenToggle.append(icon)\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320')\n }\n\n togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play()\n return false\n }\n\n togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play()\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n event && event.preventDefault()\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n event && event.preventDefault()\n }\n\n stopDrag(event) {\n this.draggingSeekBar && this.seek(event)\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n this.setVolume(this.muted ? 100 : 0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container && this.container.isReady) {\n this.container.setVolume(value)\n } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container)\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady())\n else\n setWhenContainerReady()\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.core.toggleFullscreen()\n this.resetUserKeepVisible()\n }\n\n onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null\n this.bindEvents()\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n // set the new container to match the volume of the last one\n this.setInitialVolume()\n this.changeTogglePlay()\n this.bindContainerEvents()\n this.settingsUpdate()\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n this.container && this.container.mediaControlDisabled && this.disable()\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout)\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse()))\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container && this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled) return\n\n const timeout = 2000\n let mousePointerMoved = event && (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY)\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n const showing = true\n this.updateCursorStyle(showing)\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false) return\n\n let hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible\n let hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n const showing = false\n this.updateCursorStyle(showing)\n }\n }\n\n updateCursorStyle(showing) {\n if (showing)\n this.core.$el.removeClass('nocursor')\n else if (this.core.isFullscreen())\n this.core.$el.addClass('nocursor')\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container && this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(playIcon)\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon)\n $layer.find('button.media-control-button[data-stop]').append(stopIcon)\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.$volumeIcon.append(volumeIcon)\n this.$fullscreenToggle.append(fullscreenIcon)\n this.$hdIndicator.append(hdIcon)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n // not changed since last update\n if (this.displayedSeekBarPercentage === value) return\n\n this.displayedSeekBarPercentage = value\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, callback) {\n this.kibo.down(key, () => {\n this.show()\n return callback()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement)\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => {\n this.bindKeyAndShow(i, () => {\n this.settings.seekEnabled && this.container && this.container.seekPercentage(i * 10)\n })\n })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor)\n }\n\n destroy() {\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\n super.destroy()\n }\n\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n // Check if chromeless mode or if configure is called with new source(s)\n if (this.options.chromeless || options.source || options.sources)\n this.disable()\n else\n this.enable()\n\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = this.options.hideMediaControlDelay || 2000\n this.settings && this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n\n if (this.container) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n this.disabled && this.hide()\n }\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n !this.settings.seekEnabled && this.$seekBarContainer.addClass('seek-disabled')\n !Browser.isMobile && !this.options.disableKeyboardShortcuts && this.bindKeyEvents()\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.core.$el.append(this.el)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n","module.exports = \"<%=baseUrl%>/a8c874b93b3d848f39a71260c57e3863.cur\";","module.exports = \"
\\n\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PosterPlugin from './poster'\nexport default PosterPlugin\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport PlayerError from '../../components/error/error'\nimport posterHTML from './public/poster.html'\nimport playIcon from '../../icons/01-play.svg'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.showPlayButton()\n }\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction))\n this.showPlayButton()\n else\n this.hidePlayButton()\n }\n\n showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return\n\n this.$playButton.show()\n this.$el.addClass('clickable')\n }\n\n hidePlayButton() {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n\n clicked() {\n // Let \"click_to_pause\" plugin handle click event if media has started playing\n if (! this.hasStartedPlaying) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.updatePlayButton(showPlayButton)\n this.updatePoster()\n }\n\n updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster()\n else this.hidePoster()\n }\n\n showPoster() {\n this.container.disableMediaControl()\n this.$el.show()\n }\n\n hidePoster() {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(playIcon)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import SeekTime from './seek_time'\nexport default SeekTime\n","module.exports = \" \\n \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n","import SpinnerThreeBouncePlugin from './spinner_three_bounce'\nexport default SpinnerThreeBouncePlugin\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n","import StatsPlugin from './stats'\nexport default StatsPlugin\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const fallbackLang = this._messages['en']\n const i18n = lang && this._messages[lang] || fallbackLang\n return i18n[key] || fallbackLang[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.',\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.',\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.',\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.',\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.',\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.',\n },\n 'ar': {\n 'live': 'مباشر',\n 'back_to_live': 'الرجوع إلى المباشر',\n 'disabled': 'معطّل',\n 'playback_not_supported': 'المتصفح الذي تستخدمه لا يدعم تشغيل هذا الفيديو. الرجاء إستخدام متصفح آخر.',\n 'default_error_title': 'غير قادر الى التشغيل.',\n 'default_error_message': 'حدثت مشكلة أثناء تحميل الفيديو.',\n },\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n this._messages['ar-IQ'] = this._messages['ar']\n }\n}\n","import WaterMarkPlugin from './watermark'\nexport default WaterMarkPlugin\n","module.exports = \"\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n","import Kibo from './kibo'\n\nexport default { Kibo }\n","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/clappr.min.js b/dist/clappr.min.js
index 2680c40d2..4821708b7 100644
--- a/dist/clappr.min.js
+++ b/dist/clappr.min.js
@@ -1 +1 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Clappr=e():t.Clappr=e()}(window,function(){return e={},f.m=d=[function(t,e,r){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,r){"use strict";e.__esModule=!0;var i,n=r(39),a=(i=n)&&i.__esModule?i:{default:i};e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,a.default)(e))&&"function"!=typeof e?t:e}},function(t,e,r){"use strict";e.__esModule=!0;var i=o(r(135)),n=o(r(77)),a=o(r(39));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,a.default)(e)));t.prototype=(0,n.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(i.default?(0,i.default)(t,e):t.__proto__=e)}},function(t,e,r){"use strict";e.__esModule=!0;var i,n=r(76),a=(i=n)&&i.__esModule?i:{default:i};function o(t,e){for(var r=0;r")},M.garbage=function(t){this.options.recycleVideo&&"VIDEO"===t[0].tagName.toUpperCase()&&(t.children().remove(),D.push(t))},M);function M(){(0,s.default)(this,M)}x.options={recycleVideo:!1};var N=e.DoubleEventHandler=(F.prototype.handle=function(t,e,r){var i=!(2]*>/,Xe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Ye=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ze=/^(?:body|html)$/i,$e=/([A-Z])/g,_e=["val","css","html","text","data","width","height","offset"],bf=Se.createElement("table"),cf=Se.createElement("tr"),df={tr:Se.createElement("tbody"),tbody:bf,thead:bf,tfoot:bf,td:cf,th:cf,"*":Se.createElement("div")},ef=/complete|loaded|interactive/,ff=/^[\w-]*$/,hf=(gf={}).toString,jf={},mf=Se.createElement("div"),nf={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},of=Array.isArray||function(t){return t instanceof Array},jf.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var r=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(r)return r.call(t,e);var i,n=t.parentNode,a=!n;return a&&(n=mf).appendChild(t),i=~jf.qsa(n,e).indexOf(t),a&&mf.removeChild(t),i},kf=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},lf=function(r){return Qe.call(r,function(t,e){return r.indexOf(t)==e})},jf.fragment=function(t,e,r){var i,n,a;return Xe.test(t)&&(i=Me(Se.createElement(RegExp.$1))),i||(t.replace&&(t=t.replace(Ye,"<$1>$2>")),e===Ke&&(e=We.test(t)&&RegExp.$1),e in df||(e="*"),(a=df[e]).innerHTML=""+t,i=Me.each(Re.call(a.childNodes),function(){a.removeChild(this)})),uf(r)&&(n=Me(i),Me.each(r,function(t,e){-1<_e.indexOf(t)?n[t](e):n.attr(t,e)})),i},jf.Z=function(t,e){return new Df(t,e)},jf.isZ=function(t){return t instanceof jf.Z},jf.init=function(t,e){var r;if(!t)return jf.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&We.test(t))r=jf.fragment(t,RegExp.$1,e),t=null;else{if(e!==Ke)return Me(e).find(t);r=jf.qsa(Se,t)}else{if(qf(t))return Me(Se).ready(t);if(jf.isZ(t))return t;if(of(t))r=function(t){return Qe.call(t,function(t){return null!=t})}(t);else if(tf(t))r=[t],t=null;else if(We.test(t))r=jf.fragment(t.trim(),RegExp.$1,e),t=null;else{if(e!==Ke)return Me(e).find(t);r=jf.qsa(Se,t)}}return jf.Z(r,t)},(Me=function(t,e){return jf.init(t,e)}).extend=function(e){var r,t=Re.call(arguments,1);return"boolean"==typeof e&&(r=e,e=t.shift()),t.forEach(function(t){!function t(e,r,i){for(Le in r)i&&(uf(r[Le])||of(r[Le]))?(uf(r[Le])&&!uf(e[Le])&&(e[Le]={}),of(r[Le])&&!of(e[Le])&&(e[Le]=[]),t(e[Le],r[Le],i)):r[Le]!==Ke&&(e[Le]=r[Le])}(e,t,r)}),e},jf.qsa=function(t,e){var r,i="#"==e[0],n=!i&&"."==e[0],a=i||n?e.slice(1):e,o=ff.test(a);return t.getElementById&&o&&i?(r=t.getElementById(a))?[r]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:Re.call(o&&!i&&t.getElementsByClassName?n?t.getElementsByClassName(a):t.getElementsByTagName(e):t.querySelectorAll(e))},Me.contains=Se.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},Me.type=pf,Me.isFunction=qf,Me.isWindow=rf,Me.isArray=of,Me.isPlainObject=uf,Me.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},Me.isNumeric=function(t){var e=Number(t),r=typeof t;return null!=t&&"boolean"!=r&&("string"!=r||t.length)&&!isNaN(e)&&isFinite(e)||!1},Me.inArray=function(t,e,r){return Oe.indexOf.call(e,t,r)},Me.camelCase=kf,Me.trim=function(t){return null==t?"":String.prototype.trim.call(t)},Me.uuid=0,Me.support={},Me.expr={},Me.noop=function(){},Me.map=function(t,e){var r,i,n,a=[];if(vf(t))for(i=0;i)<[^<]*)*<\/script>/gi,Ok=/^(?:text|application)\/javascript/i,Pk=/^(?:text|application)\/xml/i,Qk="application/json",Rk="text/html",Sk=/^\s*$/,Tk=Kk.createElement("a");function Vk(t,e,r,i){if(t.global)return function(t,e,r){var i=Ik.Event(e);return Ik(t).trigger(i,r),!i.isDefaultPrevented()}(e||Kk,r,i)}function Yk(t,e){var r=e.context;if(!1===e.beforeSend.call(r,t,e)||!1===Vk(e,r,"ajaxBeforeSend",[t,e]))return!1;Vk(e,r,"ajaxSend",[t,e])}function Zk(t,e,r,i){var n=r.context,a="success";r.success.call(n,t,a,e),i&&i.resolveWith(n,[t,a,e]),Vk(r,n,"ajaxSuccess",[e,r,t]),_k(a,e,r)}function $k(t,e,r,i,n){var a=i.context;i.error.call(a,r,e,t),n&&n.rejectWith(a,[r,e,t]),Vk(i,a,"ajaxError",[r,i,t||e]),_k(e,r,i)}function _k(t,e,r){var i=r.context;r.complete.call(i,e,t),Vk(r,i,"ajaxComplete",[e,r]),function(t){t.global&&!--Ik.active&&Vk(t,null,"ajaxStop")}(r)}function bl(){}function dl(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function fl(t,e,r,i){return Ik.isFunction(e)&&(i=r,r=e,e=void 0),Ik.isFunction(r)||(i=r,r=void 0),{url:t,data:e,success:r,dataType:i}}Tk.href=window.location.href,Ik.active=0,Ik.ajaxJSONP=function(r,i){if(!("type"in r))return Ik.ajax(r);function t(t){Ik(s).triggerHandler("error",t||"abort")}var n,a,e=r.jsonpCallback,o=(Ik.isFunction(e)?e():e)||"Zepto"+Jk++,s=Kk.createElement("script"),l=window[o],u={abort:t};return i&&i.promise(u),Ik(s).on("load error",function(t,e){clearTimeout(a),Ik(s).off().remove(),"error"!=t.type&&n?Zk(n[0],u,r,i):$k(null,e||"error",u,r,i),window[o]=l,n&&Ik.isFunction(l)&&l(n[0]),l=n=void 0}),!1===Yk(u,r)?t("abort"):(window[o]=function(){n=arguments},s.src=r.url.replace(/\?(.+)=\?/,"?$1="+o),Kk.head.appendChild(s),0").html(t.replace(Nk,"")).find(i):t),s&&s.apply(n,arguments)},Ik.ajax(o),this};var gl=encodeURIComponent;Ik.param=function(t,e){var r=[];return r.add=function(t,e){Ik.isFunction(e)&&(e=e()),null==e&&(e=""),this.push(gl(t)+"="+gl(e))},function r(i,t,n,a){var o,s=Ik.isArray(t),l=Ik.isPlainObject(t);Ik.each(t,function(t,e){o=Ik.type(e),a&&(t=n?a:a+"["+(l||"object"==o||"array"==o?t:"")+"]"),!a&&s?i.add(e.name,e.value):"array"==o||!n&&"object"==o?r(i,e,n,t):i.add(t,e)})}(r,t,e),r.join("&").replace(/%20/g,"+")}}(Je),(_m=Je).Callbacks=function(i){i=_m.extend({},i);var e,r,n,a,o,s,l=[],u=!i.once&&[],d=function(t){for(e=i.memory&&t,r=!0,s=a||0,a=0,o=l.length,n=!0;l&&s/,Sq="Zepto"+ +new Date,Lq.qsa=function(a,o){return Tq(o,function(t,r,i){try{var e;!t&&r?t="*":Rq.test(t)&&(e=Kq(a).addClass(Sq),t="."+Sq+" "+t);var n=Mq(a,t)}catch(t){throw console.error("error performing selector: %o",o),t}finally{e&&e.removeClass(Sq)}return r?Lq.uniq(Kq.map(n,function(t,e){return r.call(t,e,n,i)})):n})},Lq.matches=function(i,t){return Tq(t,function(t,e,r){return(!t||Nq(i,t))&&(!e||e.call(i,null,r)===i)})},He.exports=Je},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});function n(t){return null===t?"":(""+t).replace(o,function(t){return a[t]})}function i(a,t){var e,r=new RegExp([(l.escape||u).source,(l.interpolate||u).source,(l.evaluate||u).source].join("|")+"|$","g"),o=0,s="__p+='";a.replace(r,function(t,e,r,i,n){return s+=a.slice(o,n).replace(c,function(t){return"\\"+d[t]}),e&&(s+="'+\n((__t=("+e+"))==null?'':escapeExpr(__t))+\n'"),r&&(s+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),i&&(s+="';\n"+i+"\n__p+='"),o=n+t.length,t}),s+="';\n",l.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n//# sourceURL=/microtemplates/source["+f+++"]";try{e=new Function(l.variable||"obj","escapeExpr",s)}catch(t){throw t.source=s,t}if(t)return e(t,n);function i(t){return e.call(this,t,n)}return i.source="function("+(l.variable||"obj")+"){\n"+s+"}",i}var l={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},u=/(.)^/,d={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},c=/\\|'|\r|\n|\t|\u2028|\u2029/g,a={"&":"&","<":"<",">":">",'"':""","'":"'"},o=new RegExp("[&<>\"']","g"),f=0;i.settings=l,e.default=i,t.exports=e.default},function(t,e){t.exports=function(r){var o=[];return o.toString=function(){return this.map(function(t){var e=function(t,e){var r=t[1]||"",i=t[3];if(!i)return r;if(e&&"function"==typeof btoa){var n=function(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}(i),a=i.sources.map(function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"});return[r].concat(a).concat([n]).join("\n")}return[r].join("\n")}(t,r);return t[2]?"@media "+t[2]+"{"+e+"}":e}).join("")},o.i=function(t,e){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i=e.length?{value:void 0,done:!0}:(t=i(e,r),this._i+=t.length,{value:t,done:!1})})},function(t,e){t.exports=!0},function(t,e,i){function n(){}var a=i(21),o=i(116),s=i(51),l=i(49)("IE_PROTO"),u="prototype",d=function(){var t,e=i(67)("iframe"),r=s.length;for(e.style.display="none",i(117).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("\n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.activeContainer.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.activeContainer.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n constructor(options) {\n super(options)\n const playbackDefaultOptions = { recycleVideo : true }\n const defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners(this.options.events)\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners(newEvents = {}, events = {}) {\n const hasNewEvents = Object.keys(newEvents).length > 0\n hasNewEvents && Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType, events[userEvent])\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.stopListening()\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.activeContainer.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.activeContainer.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.activeContainer.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.activeContainer.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage)\n return this\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.activeContainer.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.activeContainer.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options = {}) {\n this._registerOptionEventListeners(options.events, this.options.events)\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.activeContainer.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.activeContainer.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.activeContainer.getDuration()\n }\n}\n\nObject.assign(Player.prototype, ErrorMixin)\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};","module.exports = require('./_global').document && document.documentElement;","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","module.exports = function(){ /* empty */ };","module.exports = function(done, value){\n return {value: value, done: !!done};\n};","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');","require('./_wks-define')('observable');","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n","import $ from 'clappr-zepto'\nimport BROWSER_DATA from './browser_data'\nimport OS_DATA from './os_data'\n\nconst Browser = {}\n\nconst hasLocalstorage = function() {\n try {\n localStorage.setItem('clappr', 'clappr')\n localStorage.removeItem('clappr')\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasFlash = function() {\n try {\n const fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')\n return !!fo\n } catch (e) {\n return !!(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&\n navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin)\n }\n}\n\nexport const getBrowserInfo = function(ua) {\n let parts = ua.match(/\\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [],\n extra\n if (/trident/i.test(parts[1])) {\n extra = /\\brv[ :]+(\\d+)/g.exec(ua) || []\n return {\n name: 'IE',\n version: parseInt(extra[1] || '')\n }\n } else if (parts[1] === 'Chrome') {\n extra = ua.match(/\\bOPR\\/(\\d+)/)\n if (extra != null) return { name: 'Opera', version: parseInt(extra[1]) }\n\n extra = ua.match(/\\bEdge\\/(\\d+)/)\n if (extra != null) return { name: 'Edge', version: parseInt(extra[1]) }\n\n } else if (/android/i.test(ua) && (extra = ua.match(/version\\/(\\d+)/i))) {\n parts.splice(1, 1, 'Android WebView')\n parts.splice(2, 1, extra[1])\n }\n parts = parts[2] ? [parts[1], parts[2]] : [navigator.appName, navigator.appVersion, '-?']\n\n return {\n name: parts[0],\n version: parseInt(parts[1])\n }\n}\n\n// Get browser data\nexport const getBrowserData = function() {\n let browserObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let browser of BROWSER_DATA) {\n let browserRegExp = new RegExp(browser.identifier.toLowerCase())\n let browserRegExpResult = browserRegExp.exec(userAgent)\n\n if (browserRegExpResult != null && browserRegExpResult[1]) {\n browserObject.name = browser.name\n browserObject.group = browser.group\n\n // Check version\n if (browser.versionIdentifier) {\n let versionRegExp = new RegExp(browser.versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setBrowserVersion(versionRegExpResult[1], browserObject)\n\n } else {\n setBrowserVersion(browserRegExpResult[1], browserObject)\n }\n break\n }\n }\n return browserObject\n}\n\n// Set browser version\nconst setBrowserVersion = function(version, browserObject) {\n let splitVersion = version.split('.', 2)\n browserObject.fullVersion = version\n\n // Major version\n if (splitVersion[0]) browserObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion[1]) browserObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Get OS data\nexport const getOsData = function() {\n let osObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let os of OS_DATA) {\n let osRegExp = new RegExp(os.identifier.toLowerCase())\n let osRegExpResult = osRegExp.exec(userAgent)\n\n if (osRegExpResult != null) {\n osObject.name = os.name\n osObject.group = os.group\n\n // Version defined\n if (os.version) {\n setOsVersion(os.version, (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n // Version detected\n } else if (osRegExpResult[1]) {\n setOsVersion(osRegExpResult[1], (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n // Version identifier\n } else if (os.versionIdentifier) {\n let versionRegExp = new RegExp(os.versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setOsVersion(versionRegExpResult[1], (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n }\n break\n }\n }\n return osObject\n}\n\n// Set OS version\nconst setOsVersion = function(version, separator, osObject) {\n let finalSeparator = separator.substr(0, 1) == '[' ? new RegExp(separator, 'g') : separator\n const splitVersion = version.split(finalSeparator, 2)\n\n if (separator != '.') version = version.replace(new RegExp(separator, 'g'), '.')\n\n osObject.fullVersion = version\n\n // Major version\n if (splitVersion && splitVersion[0])\n osObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion && splitVersion[1])\n osObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Set viewport size\nexport const getViewportSize = function() {\n let viewportObject = {}\n\n viewportObject.width = $(window).width()\n viewportObject.height = $(window).height()\n\n return viewportObject\n}\n\n// Set viewport orientation\nconst setViewportOrientation = function() {\n switch (window.orientation) {\n case -90:\n case 90:\n Browser.viewport.orientation = 'landscape'\n break\n default:\n Browser.viewport.orientation = 'portrait'\n break\n }\n}\n\nexport const getDevice = function(ua) {\n let platformRegExp = /\\((iP(?:hone|ad|od))?(?:[^;]*; ){0,2}([^)]+(?=\\)))/\n let matches = platformRegExp.exec(ua)\n let device = matches && (matches[1] || matches[2]) || ''\n return device\n}\n\nconst browserInfo = getBrowserInfo(navigator.userAgent)\n\nBrowser.isEdge = /edge/i.test(navigator.userAgent)\nBrowser.isChrome = /chrome|CriOS/i.test(navigator.userAgent) && !Browser.isEdge\nBrowser.isSafari = /safari/i.test(navigator.userAgent) && !Browser.isChrome && !Browser.isEdge\nBrowser.isFirefox = /firefox/i.test(navigator.userAgent)\nBrowser.isLegacyIE = !!(window.ActiveXObject)\nBrowser.isIE = Browser.isLegacyIE || /trident.*rv:1\\d/i.test(navigator.userAgent)\nBrowser.isIE11 = /trident.*rv:11/i.test(navigator.userAgent)\nBrowser.isChromecast = Browser.isChrome && /CrKey/i.test(navigator.userAgent)\nBrowser.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent)\nBrowser.isiOS = /iPad|iPhone|iPod/i.test(navigator.userAgent)\nBrowser.isAndroid = /Android/i.test(navigator.userAgent)\nBrowser.isWindowsPhone = /Windows Phone/i.test(navigator.userAgent)\nBrowser.isWin8App = /MSAppHost/i.test(navigator.userAgent)\nBrowser.isWiiU = /WiiU/i.test(navigator.userAgent)\nBrowser.isPS4 = /PlayStation 4/i.test(navigator.userAgent)\nBrowser.hasLocalstorage = hasLocalstorage()\nBrowser.hasFlash = hasFlash()\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.name instead.\n*/\nBrowser.name = browserInfo.name\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.fullVersion instead.\n*/\nBrowser.version = browserInfo.version\n\nBrowser.userAgent = navigator.userAgent\nBrowser.data = getBrowserData()\nBrowser.os = getOsData()\nBrowser.viewport = getViewportSize()\nBrowser.device = getDevice(Browser.userAgent)\ntypeof window.orientation !== 'undefined' && setViewportOrientation()\n\nexport default Browser\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');","var anObject = require('./_an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst BROWSER_DATA = [{\n name: 'Chromium',\n group: 'Chrome',\n identifier: 'Chromium/([0-9\\.]*)'\n}, {\n name: 'Chrome Mobile',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*) Mobile',\n versionIdentifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome for iOS',\n group: 'Chrome',\n identifier: 'CriOS/([0-9\\.]*)'\n}, {\n name: 'Android Browser',\n group: 'Chrome',\n identifier: 'CrMo/([0-9\\.]*)'\n}, {\n name: 'Firefox',\n group: 'Firefox',\n identifier: 'Firefox/([0-9\\.]*)'\n}, {\n name: 'Opera Mini',\n group: 'Opera',\n identifier: 'Opera Mini/([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera ([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}, {\n name: 'IEMobile',\n group: 'Explorer',\n identifier: 'IEMobile/([0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'MSIE ([a-zA-Z0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'Trident/([0-9\\.]*)',\n versionIdentifier: 'rv:([0-9\\.]*)'\n}, {\n name: 'Spartan',\n group: 'Spartan',\n identifier: 'Edge/([0-9\\.]*)',\n versionIdentifier: 'Edge/([0-9\\.]*)'\n}, {\n name: 'Safari',\n group: 'Safari',\n identifier: 'Safari/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}]\n\nexport default BROWSER_DATA\n","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst OS_DATA = [{\n name: 'Windows 2000',\n group: 'Windows',\n identifier: 'Windows NT 5.0',\n version: '5.0'\n}, {\n name: 'Windows XP',\n group: 'Windows',\n identifier: 'Windows NT 5.1',\n version: '5.1'\n}, {\n name: 'Windows Vista',\n group: 'Windows',\n identifier: 'Windows NT 6.0',\n version: '6.0'\n}, {\n name: 'Windows 7',\n group: 'Windows',\n identifier: 'Windows NT 6.1',\n version: '7.0'\n}, {\n name: 'Windows 8',\n group: 'Windows',\n identifier: 'Windows NT 6.2',\n version: '8.0'\n}, {\n name: 'Windows 8.1',\n group: 'Windows',\n identifier: 'Windows NT 6.3',\n version: '8.1'\n}, {\n name: 'Windows 10',\n group: 'Windows',\n identifier: 'Windows NT 10.0',\n version: '10.0'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone ([0-9\\.]*)'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone OS ([0-9\\.]*)'\n}, {\n name: 'Windows',\n group: 'Windows',\n identifier: 'Windows'\n}, {\n name: 'Chrome OS',\n group: 'Chrome OS',\n identifier: 'CrOS'\n}, {\n name: 'Android',\n group: 'Android',\n identifier: 'Android',\n versionIdentifier: 'Android ([a-zA-Z0-9\\.-]*)'\n}, {\n name: 'iPad',\n group: 'iOS',\n identifier: 'iPad',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPod',\n group: 'iOS',\n identifier: 'iPod',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPhone',\n group: 'iOS',\n identifier: 'iPhone OS',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X High Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])13([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])12([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X El Capitan',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])11([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Yosemite',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])10([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mavericks',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])9([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mountain Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])8([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])7([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Snow Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])6([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])5([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Tiger',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])4([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Panther',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])3([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Jaguar',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])2([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Puma',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])1([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Cheetah',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])0([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS',\n group: 'Mac OS',\n identifier: 'Mac OS'\n}, {\n name: 'Ubuntu',\n group: 'Linux',\n identifier: 'Ubuntu',\n versionIdentifier: 'Ubuntu/([0-9\\.]*)'\n}, {\n name: 'Debian',\n group: 'Linux',\n identifier: 'Debian'\n}, {\n name: 'Gentoo',\n group: 'Linux',\n identifier: 'Gentoo'\n}, {\n name: 'Linux',\n group: 'Linux',\n identifier: 'Linux'\n}, {\n name: 'BlackBerry',\n group: 'BlackBerry',\n identifier: 'BlackBerry'\n}]\n\nexport default OS_DATA\n","// https://github.com/mathiasbynens/small\nexport const mp4 = 'data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE='\n\nexport default {\n mp4: mp4,\n}\n","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n","import CoreFactory from './core_factory'\nexport default CoreFactory\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin)\n this.core[key] = externalFunctions[key].bind(plugin)\n }\n\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Styler from '../../base/styler'\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\nimport PlayerError from '../../components/error'\nimport ErrorMixin from '../../base/error_mixin'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'onMouseMove',\n 'mouseleave': 'onMouseLeave'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n /**\n * @deprecated\n * This property currently exists for retrocompatibility reasons.\n * If you want to access the media control instance, use the method getPlugin('media_control').\n */\n get mediaControl() {\n return this.getPlugin('media_control') || this.dummyMediaControl\n }\n\n get dummyMediaControl() {\n if (this._dummyMediaControl) return this._dummyMediaControl\n this._dummyMediaControl = new UICorePlugin(this)\n return this._dummyMediaControl\n }\n\n /**\n * gets the active container reference.\n * @property activeContainer\n * @type {Object}\n */\n get activeContainer() {\n return this._activeContainer\n }\n\n /**\n * sets the active container reference and trigger a event with the new reference.\n * @property activeContainer\n * @type {Object}\n */\n set activeContainer(container) {\n this._activeContainer = container\n this.trigger(Events.CORE_ACTIVE_CONTAINER_CHANGED, this._activeContainer)\n }\n\n /**\n * gets the active playback reference.\n * @property activePlayback\n * @type {Object}\n */\n get activePlayback() {\n return this.activeContainer && this.activeContainer.playback\n }\n\n constructor(options) {\n super(options)\n this.playerError = new PlayerError(options, this)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo\n DomRecycler.configure({ recycleVideo })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n, this.playerError)\n this.prepareContainers()\n }\n\n prepareContainers() {\n this.containerFactory.createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n Fullscreen.isFullscreen() ? this.setFullscreen() : this.setPlayerSize()\n }\n\n setFullscreen() {\n if (!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.playerInfo.computedSize = newSize\n this.firstResize = false\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.trigger(Events.CORE_RESIZE, newSize)\n }\n }\n\n disableResizeObserver() {\n this.resizeObserverInterval && clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.options.sources = sources\n this.containers.forEach((container) => container.destroy())\n this.containerFactory.options = $.extend(this.options, { sources })\n this.prepareContainers()\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n this.stopListening()\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n }\n\n handleWindowResize(event) {\n const orientation = (window.innerWidth > window.innerHeight) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n setupContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.forEach(this.setupContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.activeContainer = containers[0]\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.forEach((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.setupContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current container reference, use the activeContainer getter.\n */\n getCurrentContainer() {\n return this.activeContainer\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current playback reference, use the activePlayback getter.\n */\n getCurrentPlayback() {\n return this.activePlayback\n }\n\n getPlaybackType() {\n return this.activeContainer && this.activeContainer.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(Browser.isiOS ? this.activeContainer.el : this.el)\n !Browser.isiOS && this.$el.addClass('fullscreen')\n } else {\n Fullscreen.cancelFullscreen()\n !Browser.isiOS && this.$el.removeClass('fullscreen nocursor')\n }\n }\n\n onMouseMove(event) {\n this.trigger(Events.CORE_MOUSE_MOVE, event)\n }\n\n onMouseLeave(event) {\n this.trigger(Events.CORE_MOUSE_LEAVE, event)\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n\n const sources = options.source || options.sources\n sources && this.load(sources, options.mimeType || this.options.mimeType)\n\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n this.containers.forEach((container) => container.configure(this.options))\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\nObject.assign(Core.prototype, ErrorMixin)\n","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n this.playerError = playerError\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n, this.playerError)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n, this.playerError)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport ErrorMixin from '../../base/error_mixin'\nimport { DoubleEventHandler } from '../../base/utils'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'touchend': 'dblTap',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.playerError = playerError\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.dblTapHandler = new DoubleEventHandler(500)\n this.clickTimer = null\n this.clickDelay = 200 // FIXME: could be a player option\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.onProgress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(error) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, error, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n onProgress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n // The event is delayed because it can be canceled by a double-click event\n // An example of use is to prevent playback from pausing when switching to full screen\n this.clickTimer = setTimeout(() => {\n this.clickTimer && this.trigger(Events.CONTAINER_CLICK, this, this.name)\n }, this.clickDelay)\n }\n }\n\n cancelClicked() {\n clearTimeout(this.clickTimer)\n this.clickTimer = null\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.cancelClicked()\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n }\n }\n\n dblTap(evt) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.dblTapHandler.handle(evt, () => {\n this.cancelClicked()\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n })\n }\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.playback.configure(this.options)\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\nObject.assign(Container.prototype, ErrorMixin)\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".container[data-container] {\\n position: absolute;\\n background-color: black;\\n height: 100%;\\n width: 100%; }\\n .container[data-container] .chromeless {\\n cursor: default; }\\n\\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-player] {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n position: relative;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-style: normal;\\n font-weight: normal;\\n text-align: center;\\n overflow: hidden;\\n font-size: 100%;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-shadow: 0 0 0;\\n box-sizing: border-box; }\\n [data-player] div, [data-player] span, [data-player] applet, [data-player] object, [data-player] iframe,\\n [data-player] h1, [data-player] h2, [data-player] h3, [data-player] h4, [data-player] h5, [data-player] h6, [data-player] p, [data-player] blockquote, [data-player] pre,\\n [data-player] a, [data-player] abbr, [data-player] acronym, [data-player] address, [data-player] big, [data-player] cite, [data-player] code,\\n [data-player] del, [data-player] dfn, [data-player] em, [data-player] img, [data-player] ins, [data-player] kbd, [data-player] q, [data-player] s, [data-player] samp,\\n [data-player] small, [data-player] strike, [data-player] strong, [data-player] sub, [data-player] sup, [data-player] tt, [data-player] var,\\n [data-player] b, [data-player] u, [data-player] i, [data-player] center,\\n [data-player] dl, [data-player] dt, [data-player] dd, [data-player] ol, [data-player] ul, [data-player] li,\\n [data-player] fieldset, [data-player] form, [data-player] label, [data-player] legend,\\n [data-player] table, [data-player] caption, [data-player] tbody, [data-player] tfoot, [data-player] thead, [data-player] tr, [data-player] th, [data-player] td,\\n [data-player] article, [data-player] aside, [data-player] canvas, [data-player] details, [data-player] embed,\\n [data-player] figure, [data-player] figcaption, [data-player] footer, [data-player] header, [data-player] hgroup,\\n [data-player] menu, [data-player] nav, [data-player] output, [data-player] ruby, [data-player] section, [data-player] summary,\\n [data-player] time, [data-player] mark, [data-player] audio, [data-player] video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font: inherit;\\n font-size: 100%;\\n vertical-align: baseline; }\\n [data-player] table {\\n border-collapse: collapse;\\n border-spacing: 0; }\\n [data-player] caption, [data-player] th, [data-player] td {\\n text-align: left;\\n font-weight: normal;\\n vertical-align: middle; }\\n [data-player] q, [data-player] blockquote {\\n quotes: none; }\\n [data-player] q:before, [data-player] q:after, [data-player] blockquote:before, [data-player] blockquote:after {\\n content: \\\"\\\";\\n content: none; }\\n [data-player] a img {\\n border: none; }\\n [data-player]:focus {\\n outline: 0; }\\n [data-player] * {\\n max-width: none;\\n box-sizing: inherit;\\n float: none; }\\n [data-player] div {\\n display: block; }\\n [data-player].fullscreen {\\n width: 100% !important;\\n height: 100% !important;\\n top: 0;\\n left: 0; }\\n [data-player].nocursor {\\n cursor: none; }\\n\\n.clappr-style {\\n display: none !important; }\\n\", \"\"]);\n\n// exports\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: local(\\\"Roboto\\\"), local(\\\"Roboto-Regular\\\"), url(\" + escape(require(\"./Roboto.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\", \"\"]);\n\n// exports\n","module.exports = \"<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport PlayerInfo from '../player_info'\n\n/* Playback Plugins */\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport FlashVideoPlayback from '../../playbacks/flash'\nimport HTML5AudioPlayback from '../../playbacks/html5_audio'\nimport FlasHLSVideoPlayback from '../../playbacks/flashls'\nimport HLSVideoPlayback from '../../playbacks/hls'\nimport HTMLImgPlayback from '../../playbacks/html_img'\nimport NoOp from '../../playbacks/no_op'\n\n/* Container Plugins */\nimport SpinnerThreeBouncePlugin from '../../plugins/spinner_three_bounce'\nimport StatsPlugin from '../../plugins/stats'\nimport WaterMarkPlugin from '../../plugins/watermark'\nimport PosterPlugin from '../../plugins/poster'\nimport GoogleAnalyticsPlugin from '../../plugins/google_analytics'\nimport ClickToPausePlugin from '../../plugins/click_to_pause'\n\n/* Core Plugins */\nimport MediaControl from '../../plugins/media_control'\nimport DVRControls from '../../plugins/dvr_controls'\nimport ClosedCaptions from '../../plugins/closed_captions'\nimport Favicon from '../../plugins/favicon'\nimport SeekTime from '../../plugins/seek_time'\nimport SourcesPlugin from '../../plugins/sources'\nimport EndVideo from '../../plugins/end_video'\nimport Strings from '../../plugins/strings'\nimport ErrorScreen from '../../plugins/error_screen'\n\n/**\n * It keeps a list of the default plugins (playback, container, core) and it merges external plugins with its internals.\n * @class Loader\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class Loader extends BaseObject {\n /**\n * builds the loader\n * @method constructor\n * @param {Object} externalPlugins the external plugins\n * @param {Number} playerId you can embed multiple instances of clappr, therefore this is the unique id of each one.\n */\n constructor(externalPlugins = [], playerId = 0, useOnlyPlainHtml5Plugins = PLAIN_HTML5_ONLY) {\n super()\n this.playerId = playerId\n this.playbackPlugins = []\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HLSVideoPlayback,\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTML5VideoPlayback,\n HTML5AudioPlayback,\n ]\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n FlashVideoPlayback,\n FlasHLSVideoPlayback\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTMLImgPlayback,\n NoOp\n ]\n\n this.containerPlugins = [SpinnerThreeBouncePlugin, WaterMarkPlugin, PosterPlugin, StatsPlugin, GoogleAnalyticsPlugin, ClickToPausePlugin]\n this.corePlugins = [MediaControl, DVRControls, ClosedCaptions, Favicon, SeekTime, SourcesPlugin, EndVideo, ErrorScreen, Strings]\n\n if (!Array.isArray(externalPlugins))\n this.validateExternalPluginsType(externalPlugins)\n\n this.addExternalPlugins(externalPlugins)\n }\n\n /**\n * groups by type the external plugins that were passed through `options.plugins` it they're on a flat array\n * @method addExternalPlugins\n * @private\n * @param {Object} an config object or an array of plugins\n * @return {Object} plugins the config object with the plugins separated by type\n */\n groupPluginsByType(plugins) {\n if (Array.isArray(plugins)) {\n plugins = plugins.reduce(function(memo, plugin) {\n memo[plugin.type] || (memo[plugin.type] = [])\n memo[plugin.type].push(plugin)\n return memo\n }, {})\n }\n return plugins\n }\n\n removeDups(list) {\n const groupUp = (plugins, plugin) => {\n plugins[plugin.prototype.name] && delete plugins[plugin.prototype.name]\n plugins[plugin.prototype.name] = plugin\n return plugins\n }\n const pluginsMap = list.reduceRight(groupUp, Object.create(null))\n\n const plugins = []\n for (let key in pluginsMap)\n plugins.unshift(pluginsMap[key])\n\n return plugins\n }\n\n /**\n * adds all the external plugins that were passed through `options.plugins`\n * @method addExternalPlugins\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n addExternalPlugins(plugins) {\n plugins = this.groupPluginsByType(plugins)\n if (plugins.playback)\n this.playbackPlugins = this.removeDups(plugins.playback.concat(this.playbackPlugins))\n\n if (plugins.container)\n this.containerPlugins = this.removeDups(plugins.container.concat(this.containerPlugins))\n\n if (plugins.core)\n this.corePlugins = this.removeDups(plugins.core.concat(this.corePlugins))\n\n\n PlayerInfo.getInstance(this.playerId).playbackPlugins = this.playbackPlugins\n }\n\n /**\n * validate if the external plugins that were passed through `options.plugins` are associated to the correct type\n * @method validateExternalPluginsType\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n validateExternalPluginsType(plugins) {\n const plugintypes = ['playback', 'container', 'core']\n plugintypes.forEach((type) => {\n (plugins[type] || []).forEach((el) => {\n const errorMessage = 'external ' + el.type + ' plugin on ' + type + ' array'\n if (el.type !== type) throw new ReferenceError(errorMessage)\n })\n })\n }\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, seekStringToSeconds, DomRecycler, canAutoPlayMedia } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport Events from '../../base/events'\nimport Log from '../../plugins/log'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\nconst UNKNOWN_ERROR = { code: 'unknown', message: 'unknown' }\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n this.options.autoPlay && this.attemptAutoPlay()\n }\n\n configure(options) {\n super.configure(options)\n this.el.loop = !!options.loop\n }\n\n // See Playback.attemptAutoPlay()\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => {\n error && Log.warn(this.name, 'autoplay error.', { result, error })\n\n // https://github.com/clappr/clappr/issues/1076\n result && process.nextTick(() => !this._destroyed && this.play())\n })\n }\n\n // See Playback.canAutoPlay()\n canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay)\n cb(true, null)\n\n let opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false, // Known issue: mediacontrols may asynchronously mute video\n }\n\n // Use current video element if recycling feature enabled with mobile devices\n if (Browser.isMobile && DomRecycler.options.recycleVideo)\n opts.element = this.el\n\n // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n canAutoPlayMedia(cb, opts)\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n if (!this.isPlaying()) {\n super.consent()\n this.el.load()\n }\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n this.el.volume = value / 100\n }\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return this.el.muted === true || this.el.volume === 0\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n const { code, message } = this.el.error || UNKNOWN_ERROR\n const isUnknownError = code === UNKNOWN_ERROR.code\n\n const formattedError = this.createError({\n code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n })\n\n if (isUnknownError)\n Log.warn(this.name, 'HTML5 unknown error: ', formattedError)\n else\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n super.destroy()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n \\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html5-video] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n display: block; }\\n\", \"\"]);\n\n// exports\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html-img] {\\n max-width: 100%;\\n max-height: 100%; }\\n\", \"\"]);\n\n// exports\n","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for (let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n","module.exports = \" \\n<%=message%>
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-no-op] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n\\n[data-no-op] p[data-no-op-msg] {\\n position: absolute;\\n text-align: center;\\n font-size: 25px;\\n left: 0;\\n right: 0;\\n color: white;\\n padding: 10px;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n max-height: 100%;\\n overflow: auto; }\\n\\n[data-no-op] canvas[data-no-op-canvas] {\\n background-color: #777;\\n height: 100%;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-three-bounce[data-spinner] {\\n position: absolute;\\n margin: 0 auto;\\n width: 70px;\\n text-align: center;\\n z-index: 999;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%); }\\n .spinner-three-bounce[data-spinner] > div {\\n width: 18px;\\n height: 18px;\\n background-color: #FFFFFF;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: bouncedelay 1.4s infinite ease-in-out;\\n animation: bouncedelay 1.4s infinite ease-in-out;\\n /* Prevent first frame from flickering when animation starts */\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both; }\\n .spinner-three-bounce[data-spinner] [data-bounce1] {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s; }\\n .spinner-three-bounce[data-spinner] [data-bounce2] {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s; }\\n\\n@-webkit-keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\\n@keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\", \"\"]);\n\n// exports\n","import StatsPlugin from './stats'\nexport default StatsPlugin\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n","module.exports = \"\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".clappr-watermark[data-watermark] {\\n position: absolute;\\n min-width: 70px;\\n max-width: 200px;\\n width: 12%;\\n text-align: center;\\n z-index: 10; }\\n\\n.clappr-watermark[data-watermark] a {\\n outline: none;\\n cursor: pointer; }\\n\\n.clappr-watermark[data-watermark] img {\\n max-width: 100%; }\\n\\n.clappr-watermark[data-watermark-bottom-left] {\\n bottom: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-bottom-right] {\\n bottom: 10px;\\n right: 42px; }\\n\\n.clappr-watermark[data-watermark-top-left] {\\n top: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-top-right] {\\n top: 10px;\\n right: 37px; }\\n\", \"\"]);\n\n// exports\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport PlayerError from '../../components/error/error'\nimport posterHTML from './public/poster.html'\nimport playIcon from '../../icons/01-play.svg'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.showPlayButton()\n }\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction))\n this.showPlayButton()\n else\n this.hidePlayButton()\n }\n\n showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return\n\n this.$playButton.show()\n this.$el.addClass('clickable')\n }\n\n hidePlayButton() {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n\n clicked() {\n // Let \"click_to_pause\" plugin handle click event if media has started playing\n if (! this.hasStartedPlaying) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.updatePlayButton(showPlayButton)\n this.updatePoster()\n }\n\n updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster()\n else this.hidePoster()\n }\n\n showPoster() {\n this.container.disableMediaControl()\n this.$el.show()\n }\n\n hidePoster() {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(playIcon)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".player-poster[data-poster] {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n z-index: 998;\\n top: 0;\\n left: 0;\\n background-color: #000;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: 50% 50%; }\\n .player-poster[data-poster].clickable {\\n cursor: pointer; }\\n .player-poster[data-poster]:hover .play-wrapper[data-poster] {\\n opacity: 1; }\\n .player-poster[data-poster] .play-wrapper[data-poster] {\\n width: 100%;\\n height: 25%;\\n margin: 0 auto;\\n opacity: 0.75;\\n transition: opacity 0.1s ease; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg {\\n height: 100%; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg path {\\n fill: #fff; }\\n\", \"\"]);\n\n// exports\n","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady() {\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\n\nimport Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\n\nimport $ from 'clappr-zepto'\n\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\nimport stopIcon from '../../icons/03-stop.svg'\nimport volumeIcon from '../../icons/04-volume.svg'\nimport volumeMuteIcon from '../../icons/05-mute.svg'\nimport fullscreenIcon from '../../icons/06-expand.svg'\nimport exitFullscreenIcon from '../../icons/07-shrink.svg'\nimport hdIcon from '../../icons/08-hd.svg'\n\nexport default class MediaControl extends UICorePlugin {\n get name() { return 'media_control' }\n get disabled() {\n let playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP\n return this.userDisabled || playbackIsNOOP\n }\n\n get container() { return this.core && this.core.activeContainer }\n\n get playback() { return this.core && this.core.activePlayback }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(core) {\n super(core)\n this.persistConfig = this.options.persistConfig\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n this.kibo = new Kibo(this.options.focusElement)\n this.bindKeyEvents()\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n } else {\n this.settings = {}\n }\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n getExternalInterface() {\n return {\n setVolume: this.setVolume,\n getVolume: () => this.volume,\n }\n }\n\n bindEvents() {\n this.stopListening()\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged)\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show)\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay))\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindContainerEvents()\n }\n\n bindContainerEvents() {\n if (!this.container) return\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.unbindKeyEvents()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.bindKeyEvents()\n this.show()\n }\n\n play() {\n this.container && this.container.play()\n }\n\n pause() {\n this.container && this.container.pause()\n }\n\n stop() {\n this.container && this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.playback && this.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return\n\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) {\n this.$volumeIcon.append(volumeIcon)\n } else {\n this.$volumeIcon.append(volumeMuteIcon)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon)\n this.$playStopToggle.append(stopIcon)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n Browser.isMobile && this.show()\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n let icon = Fullscreen.isFullscreen() ? exitFullscreenIcon : fullscreenIcon\n this.$fullscreenToggle.append(icon)\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320')\n }\n\n togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play()\n return false\n }\n\n togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play()\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n event && event.preventDefault()\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n event && event.preventDefault()\n }\n\n stopDrag(event) {\n this.draggingSeekBar && this.seek(event)\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n this.setVolume(this.muted ? 100 : 0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container && this.container.isReady) {\n this.container.setVolume(value)\n } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container)\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady())\n else\n setWhenContainerReady()\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.core.toggleFullscreen()\n this.resetUserKeepVisible()\n }\n\n onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null\n this.bindEvents()\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n // set the new container to match the volume of the last one\n this.setInitialVolume()\n this.changeTogglePlay()\n this.bindContainerEvents()\n this.settingsUpdate()\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n this.container && this.container.mediaControlDisabled && this.disable()\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout)\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse()))\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container && this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled) return\n\n const timeout = 2000\n let mousePointerMoved = event && (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY)\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n const showing = true\n this.updateCursorStyle(showing)\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false) return\n\n let hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible\n let hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n const showing = false\n this.updateCursorStyle(showing)\n }\n }\n\n updateCursorStyle(showing) {\n if (showing)\n this.core.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.core.$el.addClass('nocursor')\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container && this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(playIcon)\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon)\n $layer.find('button.media-control-button[data-stop]').append(stopIcon)\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.$volumeIcon.append(volumeIcon)\n this.$fullscreenToggle.append(fullscreenIcon)\n this.$hdIndicator.append(hdIcon)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n // not changed since last update\n if (this.displayedSeekBarPercentage === value) return\n\n this.displayedSeekBarPercentage = value\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, callback) {\n this.kibo.down(key, () => {\n this.show()\n return callback()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement)\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => {\n this.bindKeyAndShow(i, () => {\n this.settings.seekEnabled && this.container && this.container.seekPercentage(i * 10)\n })\n })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor)\n }\n\n destroy() {\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\n super.destroy()\n }\n\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure() {\n this.options.chromeless ? this.disable() : this.enable()\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = this.options.hideMediaControlDelay || 2000\n this.settings && this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n\n if (this.container) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n this.disabled && this.hide()\n }\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n !this.settings.seekEnabled && this.$seekBarContainer.addClass('seek-disabled')\n !Browser.isMobile && !this.options.disableKeyboardShortcuts && this.bindKeyEvents()\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.core.$el.append(this.el)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","var core = require('../../modules/_core')\n , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".media-control-notransition {\\n transition: none !important; }\\n\\n.media-control[data-media-control] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n pointer-events: none; }\\n .media-control[data-media-control].dragging {\\n pointer-events: auto;\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control].dragging * {\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control] .media-control-background[data-background] {\\n position: absolute;\\n height: 40%;\\n width: 100%;\\n bottom: 0;\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\\n transition: opacity 0.6s ease-out; }\\n .media-control[data-media-control] .media-control-icon {\\n line-height: 0;\\n letter-spacing: 0;\\n speak: none;\\n color: #fff;\\n opacity: 0.5;\\n vertical-align: middle;\\n text-align: left;\\n transition: all 0.1s ease; }\\n .media-control[data-media-control] .media-control-icon:hover {\\n color: white;\\n opacity: 0.75;\\n text-shadow: rgba(255, 255, 255, 0.8) 0 0 5px; }\\n .media-control[data-media-control].media-control-hide .media-control-background[data-background] {\\n opacity: 0; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] {\\n bottom: -50px; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] {\\n position: absolute;\\n bottom: 7px;\\n width: 100%;\\n height: 32px;\\n font-size: 0;\\n vertical-align: middle;\\n pointer-events: auto;\\n transition: bottom 0.4s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n left: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control] {\\n height: 100%;\\n text-align: center;\\n line-height: 32px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n right: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button {\\n background-color: transparent;\\n border: 0;\\n margin: 0 6px;\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n width: 32px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg {\\n width: 100%;\\n height: 22px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus {\\n outline: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen] {\\n float: right;\\n background-color: transparent;\\n border: 0;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator] {\\n background-color: transparent;\\n border: 0;\\n cursor: default;\\n display: none;\\n float: right;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled {\\n display: block;\\n opacity: 1.0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position], .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n display: inline-block;\\n font-size: 10px;\\n color: white;\\n cursor: default;\\n line-height: 32px;\\n position: relative; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position] {\\n margin: 0 6px 0 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n color: rgba(255, 255, 255, 0.5);\\n margin-right: 6px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] {\\n position: absolute;\\n top: -20px;\\n left: 0;\\n display: inline-block;\\n vertical-align: middle;\\n width: 100%;\\n height: 25px;\\n cursor: pointer; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] {\\n width: 100%;\\n height: 1px;\\n position: relative;\\n top: 12px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled {\\n cursor: default; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 2px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] {\\n float: right;\\n display: inline-block;\\n height: 32px;\\n cursor: pointer;\\n margin: 0 6px;\\n box-sizing: border-box; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] {\\n float: left;\\n bottom: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] {\\n background-color: transparent;\\n border: 0;\\n box-sizing: content-box;\\n width: 32px;\\n height: 32px;\\n opacity: 0.5; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover {\\n opacity: 0.75; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg {\\n height: 24px;\\n position: relative;\\n top: 3px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg {\\n margin-left: 2px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] {\\n float: left;\\n position: relative;\\n overflow: hidden;\\n top: 6px;\\n width: 42px;\\n height: 18px;\\n padding: 3px 0;\\n transition: width .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] {\\n height: 1px;\\n position: relative;\\n top: 7px;\\n margin: 0 3px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 0px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume] {\\n float: left;\\n width: 4px;\\n padding-left: 2px;\\n height: 12px;\\n opacity: 0.5;\\n box-shadow: inset 2px 0 0 white;\\n transition: -webkit-transform .2s ease-out;\\n transition: transform .2s ease-out;\\n transition: transform .2s ease-out, -webkit-transform .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill {\\n box-shadow: inset 2px 0 0 #fff;\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:nth-of-type(1) {\\n padding-left: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover {\\n -webkit-transform: scaleY(1.5);\\n transform: scaleY(1.5); }\\n .media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide {\\n width: 0;\\n height: 12px;\\n top: 9px;\\n padding: 0; }\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\n\\n\";","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n","module.exports = \"<%= live %>
\\n\\\"><%= backToLive %> \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dvr-controls[data-dvr-controls] {\\n display: inline-block;\\n float: left;\\n color: #fff;\\n line-height: 32px;\\n font-size: 10px;\\n font-weight: bold;\\n margin-left: 6px; }\\n .dvr-controls[data-dvr-controls] .live-info {\\n cursor: default;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase; }\\n .dvr-controls[data-dvr-controls] .live-info:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #ff0101; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled {\\n opacity: 0.3; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled:before {\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button {\\n cursor: pointer;\\n outline: none;\\n display: none;\\n border: 0;\\n color: #fff;\\n background-color: transparent;\\n height: 32px;\\n padding: 0;\\n opacity: 0.7;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase;\\n transition: all 0.1s ease; }\\n .dvr-controls[data-dvr-controls] .live-button:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button:hover {\\n opacity: 1;\\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-info {\\n display: none; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-button {\\n display: block; }\\n\\n.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #005aff; }\\n\\n.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #ff0101; }\\n\", \"\"]);\n\n// exports\n","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport ccIcon from '../../icons/09-cc.svg'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(ccIcon)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n","module.exports = \" \"","module.exports = \"\\\"> \\n\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".cc-controls[data-cc-controls] {\\n float: right;\\n position: relative;\\n display: none; }\\n .cc-controls[data-cc-controls].available {\\n display: block; }\\n .cc-controls[data-cc-controls] .cc-button {\\n padding: 6px !important; }\\n .cc-controls[data-cc-controls] .cc-button.enabled {\\n display: block;\\n opacity: 1.0; }\\n .cc-controls[data-cc-controls] .cc-button.enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .cc-controls[data-cc-controls] > ul {\\n list-style-type: none;\\n position: absolute;\\n bottom: 25px;\\n border: 1px solid black;\\n display: none;\\n background-color: #e6e6e6; }\\n .cc-controls[data-cc-controls] li {\\n font-size: 10px; }\\n .cc-controls[data-cc-controls] li[data-title] {\\n background-color: #c3c2c2;\\n padding: 5px; }\\n .cc-controls[data-cc-controls] li a {\\n color: #444;\\n padding: 2px 10px;\\n display: block;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li a:hover {\\n background-color: #555;\\n color: white; }\\n .cc-controls[data-cc-controls] li a:hover a {\\n color: white;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li.current a {\\n color: #f00; }\\n\", \"\"]);\n\n// exports\n","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.core.activeContainer && this.containerChanged()\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.activeContainer\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $(' ')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $(' ')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(playIcon)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(pauseIcon)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n","import SeekTime from './seek_time'\nexport default SeekTime\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n","module.exports = \" \\n \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".seek-time[data-seek-time] {\\n position: absolute;\\n white-space: nowrap;\\n height: 20px;\\n line-height: 20px;\\n font-size: 0;\\n left: -100%;\\n bottom: 55px;\\n background-color: rgba(2, 2, 2, 0.5);\\n z-index: 9999;\\n transition: opacity 0.1s ease; }\\n .seek-time[data-seek-time].hidden[data-seek-time] {\\n opacity: 0; }\\n .seek-time[data-seek-time] [data-seek-time] {\\n display: inline-block;\\n color: white;\\n font-size: 10px;\\n padding-left: 7px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration] {\\n display: inline-block;\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 10px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n\", \"\"]);\n\n// exports\n","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\nimport { Fullscreen } from '../base/utils'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && Fullscreen.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const fallbackLang = this._messages['en']\n const i18n = lang && this._messages[lang] || fallbackLang\n return i18n[key] || fallbackLang[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.',\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.',\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.',\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.',\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.',\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.',\n },\n 'ar': {\n 'live': 'مباشر',\n 'back_to_live': 'الرجوع إلى المباشر',\n 'disabled': 'معطّل',\n 'playback_not_supported': 'المتصفح الذي تستخدمه لا يدعم تشغيل هذا الفيديو. الرجاء إستخدام متصفح آخر.',\n 'default_error_title': 'غير قادر الى التشغيل.',\n 'default_error_message': 'حدثت مشكلة أثناء تحميل الفيديو.',\n },\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n this._messages['ar-IQ'] = this._messages['ar']\n }\n}\n","import ErrorScreen from './error_screen'\nexport default ErrorScreen\n","import Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport PlayerError from '../../components/error/'\n\nimport reloadIcon from '../../icons/10-reload.svg'\nimport templateHtml from './public/error_screen.html'\nimport './public/error_screen.scss'\n\nexport default class ErrorScreen extends UICorePlugin {\n get name() { return 'error_screen' }\n get template() { return template(templateHtml) }\n get container() { return this.core.getCurrentContainer() }\n get attributes() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': '',\n }\n }\n\n constructor(core) {\n super(core)\n\n if (this.options.disableErrorScreen) return this.disable()\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged)\n }\n\n bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload')\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this))\n }\n\n reload() {\n this.listenToOnce(this.core, Events.CORE_READY, () => this.container.play())\n this.core.load(this.options.sources, this.options.mimeType)\n this.unbindReload()\n }\n\n unbindReload() {\n this.reloadButton && this.reloadButton.off('click')\n }\n\n onContainerChanged() {\n this.err = null\n this.unbindReload()\n this.hide()\n }\n\n onError(err = {}) {\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err\n this.container.disableMediaControl()\n this.container.stop()\n this.show()\n }\n }\n\n show() {\n this.render()\n this.$el.show()\n }\n\n hide() {\n this.$el.hide()\n }\n\n render() {\n if (!this.err) return\n\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon,\n }))\n\n this.core.$el.append(this.el)\n\n this.bindReload()\n\n return this\n }\n}\n","module.exports = \" \"","module.exports = \"\\n <% if (icon) { %>\\n
<%= icon %>
\\n <% } %>\\n
<%= title %>
\\n
<%= message %>
\\n
Error code: <%= code %>
\\n
<%= reloadIcon %>
\\n
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div.player-error-screen {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n color: #CCCACA;\\n position: absolute;\\n top: 0;\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 2000;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n div.player-error-screen__content[data-error-screen] {\\n font-size: 14px;\\n color: #CCCACA;\\n margin-top: 45px; }\\n div.player-error-screen__title[data-error-screen] {\\n font-weight: bold;\\n line-height: 30px;\\n font-size: 18px; }\\n div.player-error-screen__message[data-error-screen] {\\n width: 90%;\\n margin: 0 auto; }\\n div.player-error-screen__code[data-error-screen] {\\n font-size: 13px;\\n margin-top: 15px; }\\n div.player-error-screen__reload {\\n cursor: pointer;\\n width: 30px;\\n margin: 15px auto 0; }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://Clappr/webpack/universalModuleDefinition","webpack://Clappr/webpack/bootstrap","webpack://Clappr/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://Clappr/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://Clappr/./node_modules/babel-runtime/helpers/inherits.js","webpack://Clappr/./node_modules/babel-runtime/helpers/createClass.js","webpack://Clappr/./src/base/events.js","webpack://Clappr/./src/base/utils.js","webpack://Clappr/./node_modules/clappr-zepto/zepto.js","webpack://Clappr/./node_modules/core-js/library/modules/_core.js","webpack://Clappr/./node_modules/css-loader/lib/css-base.js","webpack://Clappr/./node_modules/style-loader/lib/addStyles.js","webpack://Clappr/./src/base/template.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks.js","webpack://Clappr/./src/base/playback.js","webpack://Clappr/./src/base/base_object.js","webpack://Clappr/./node_modules/core-js/library/modules/_export.js","webpack://Clappr/./node_modules/core-js/library/modules/_global.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dp.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-iobject.js","webpack://Clappr/./src/base/error_mixin.js","webpack://Clappr/./node_modules/core-js/library/modules/_an-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_descriptors.js","webpack://Clappr/./node_modules/core-js/library/modules/_has.js","webpack://Clappr/./src/base/ui_core_plugin.js","webpack://Clappr/./src/base/void.js","webpack://Clappr/./node_modules/core-js/library/modules/_hide.js","webpack://Clappr/./node_modules/core-js/library/modules/_fails.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys.js","webpack://Clappr/./src/components/browser/index.js","webpack://Clappr/./src/base/ui_object.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_property-desc.js","webpack://Clappr/./node_modules/core-js/library/modules/_iterators.js","webpack://Clappr/./src/plugins/log/index.js","webpack://Clappr/./src/components/error/index.js","webpack://Clappr/./src/base/core_plugin.js","webpack://Clappr/./node_modules/core-js/library/modules/_uid.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-pie.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-object.js","webpack://Clappr/./node_modules/babel-runtime/helpers/typeof.js","webpack://Clappr/./src/components/player_info.js","webpack://Clappr/./src/base/ui_container_plugin.js","webpack://Clappr/./src/base/container_plugin.js","webpack://Clappr/./node_modules/core-js/library/modules/_ctx.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-primitive.js","webpack://Clappr/./node_modules/core-js/library/modules/_cof.js","webpack://Clappr/./node_modules/core-js/library/modules/_defined.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-integer.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared-key.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gops.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/keys.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_library.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopd.js","webpack://Clappr/./src/vendor/index.js","webpack://Clappr/./src/components/mediator.js","webpack://Clappr/./src/playbacks/html5_video/index.js","webpack://Clappr/./node_modules/node-libs-browser/node_modules/process/browser.js","webpack://Clappr/./src/icons/01-play.svg","webpack://Clappr/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_dom-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://Clappr/./node_modules/core-js/library/modules/_iobject.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-length.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-sap.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_redefine.js","webpack://Clappr/./node_modules/core-js/library/modules/web.dom.iterable.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/create.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://Clappr/./src/components/core/index.js","webpack://Clappr/./src/base/styler.js","webpack://Clappr/./src/components/error/error.js","webpack://Clappr/./src/components/container/index.js","webpack://Clappr/./node_modules/css-loader/lib/url/escape.js","webpack://Clappr/./src/components/loader/index.js","webpack://Clappr/./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack://Clappr/./node_modules/babel-runtime/core-js/array/from.js","webpack://Clappr/./src/playbacks/html5_audio/index.js","webpack://Clappr/./src/playbacks/html_img/index.js","webpack://Clappr/./src/playbacks/no_op/index.js","webpack://Clappr/./src/plugins/spinner_three_bounce/index.js","webpack://Clappr/./src/plugins/watermark/index.js","webpack://Clappr/./src/plugins/poster/index.js","webpack://Clappr/./src/plugins/click_to_pause/index.js","webpack://Clappr/./src/plugins/media_control/index.js","webpack://Clappr/./src/plugins/media_control/public/closed-hand.cur","webpack://Clappr/./src/icons/02-pause.svg","webpack://Clappr/./src/plugins/dvr_controls/index.js","webpack://Clappr/./src/plugins/favicon/index.js","webpack://Clappr/./src/main.js","webpack://Clappr/./src/components/player.js","webpack://Clappr/./node_modules/core-js/library/fn/object/assign.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_a-function.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_array-includes.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-index.js","webpack://Clappr/./node_modules/core-js/library/fn/object/keys.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_string-at.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dps.js","webpack://Clappr/./node_modules/core-js/library/modules/_html.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gpo.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-step.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/index.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.symbol.js","webpack://Clappr/./node_modules/core-js/library/modules/_meta.js","webpack://Clappr/./node_modules/core-js/library/modules/_keyof.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://Clappr/./node_modules/core-js/library/fn/object/define-property.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.define-property.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-proto.js","webpack://Clappr/./node_modules/core-js/library/fn/object/create.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.create.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack://Clappr/./src/base/polyfills.js","webpack://Clappr/./src/components/browser/browser.js","webpack://Clappr/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://Clappr/./node_modules/core-js/library/fn/get-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_classof.js","webpack://Clappr/./src/components/browser/browser_data.js","webpack://Clappr/./src/components/browser/os_data.js","webpack://Clappr/./src/base/media.js","webpack://Clappr/./src/plugins/log/log.js","webpack://Clappr/./src/vendor/kibo.js","webpack://Clappr/./src/components/core_factory/index.js","webpack://Clappr/./src/components/core_factory/core_factory.js","webpack://Clappr/./src/components/core/core.js","webpack://Clappr/./src/components/container_factory/index.js","webpack://Clappr/./src/components/container_factory/container_factory.js","webpack://Clappr/./src/components/container/container.js","webpack://Clappr/./src/components/container/public/style.scss?075b","webpack://Clappr/./src/components/container/public/style.scss","webpack://Clappr/./node_modules/style-loader/lib/urls.js","webpack://Clappr/./src/components/core/public/style.scss?7375","webpack://Clappr/./src/components/core/public/style.scss","webpack://Clappr/./src/components/core/public/fonts.css","webpack://Clappr/./src/components/core/public/Roboto.ttf","webpack://Clappr/./src/components/loader/loader.js","webpack://Clappr/./node_modules/core-js/library/fn/array/from.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.from.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-call.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array-iter.js","webpack://Clappr/./node_modules/core-js/library/modules/_create-property.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-detect.js","webpack://Clappr/./src/playbacks/html5_video/html5_video.js","webpack://Clappr/./src/playbacks/html5_video/public/tracks.html","webpack://Clappr/./src/playbacks/html5_video/public/style.scss?2a3b","webpack://Clappr/./src/playbacks/html5_video/public/style.scss","webpack://Clappr/./src/playbacks/html5_audio/html5_audio.js","webpack://Clappr/./src/playbacks/html_img/html_img.js","webpack://Clappr/./src/playbacks/html_img/public/style.scss?ab98","webpack://Clappr/./src/playbacks/html_img/public/style.scss","webpack://Clappr/./src/playbacks/no_op/no_op.js","webpack://Clappr/./src/playbacks/no_op/public/error.html","webpack://Clappr/./src/playbacks/no_op/public/style.scss?c7ee","webpack://Clappr/./src/playbacks/no_op/public/style.scss","webpack://Clappr/./src/plugins/spinner_three_bounce/spinner_three_bounce.js","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.html","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss?ec8c","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss","webpack://Clappr/./src/plugins/stats/index.js","webpack://Clappr/./src/plugins/stats/stats.js","webpack://Clappr/./src/plugins/watermark/watermark.js","webpack://Clappr/./src/plugins/watermark/public/watermark.html","webpack://Clappr/./src/plugins/watermark/public/watermark.scss?ef86","webpack://Clappr/./src/plugins/watermark/public/watermark.scss","webpack://Clappr/./src/plugins/poster/poster.js","webpack://Clappr/./src/plugins/poster/public/poster.html","webpack://Clappr/./src/plugins/poster/public/poster.scss?638d","webpack://Clappr/./src/plugins/poster/public/poster.scss","webpack://Clappr/./src/plugins/google_analytics/index.js","webpack://Clappr/./src/plugins/google_analytics/google_analytics.js","webpack://Clappr/./src/plugins/click_to_pause/click_to_pause.js","webpack://Clappr/./src/plugins/media_control/media_control.js","webpack://Clappr/./node_modules/babel-runtime/core-js/json/stringify.js","webpack://Clappr/./node_modules/core-js/library/fn/json/stringify.js","webpack://Clappr/./src/plugins/media_control/public/media-control.scss?f597","webpack://Clappr/./src/plugins/media_control/public/media-control.scss","webpack://Clappr/./src/plugins/media_control/public/media-control.html","webpack://Clappr/./src/icons/03-stop.svg","webpack://Clappr/./src/icons/04-volume.svg","webpack://Clappr/./src/icons/05-mute.svg","webpack://Clappr/./src/icons/06-expand.svg","webpack://Clappr/./src/icons/07-shrink.svg","webpack://Clappr/./src/icons/08-hd.svg","webpack://Clappr/./src/plugins/dvr_controls/dvr_controls.js","webpack://Clappr/./src/plugins/dvr_controls/public/index.html","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss?12b3","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss","webpack://Clappr/./src/plugins/closed_captions/index.js","webpack://Clappr/./src/plugins/closed_captions/closed_captions.js","webpack://Clappr/./src/icons/09-cc.svg","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.html","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss?0946","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss","webpack://Clappr/./src/plugins/favicon/favicon.js","webpack://Clappr/./src/plugins/seek_time/index.js","webpack://Clappr/./src/plugins/seek_time/seek_time.js","webpack://Clappr/./src/plugins/seek_time/public/seek_time.html","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss?a475","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss","webpack://Clappr/./src/plugins/sources.js","webpack://Clappr/./src/plugins/end_video.js","webpack://Clappr/./src/plugins/strings.js","webpack://Clappr/./src/plugins/error_screen/index.js","webpack://Clappr/./src/plugins/error_screen/error_screen.js","webpack://Clappr/./src/icons/10-reload.svg","webpack://Clappr/./src/plugins/error_screen/public/error_screen.html","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss?65c2","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","default","instance","Constructor","TypeError","obj","_typeof2","_typeof3","self","ReferenceError","_setPrototypeOf2","_interopRequireDefault","_create2","subClass","superClass","constructor","writable","configurable","__proto__","_defineProperty","_defineProperty2","defineProperties","target","props","length","descriptor","protoProps","staticProps","_utils","slice","Array","eventSplitter","eventsApi","action","rest","apply","concat","test","names","split","triggerEvents","events","args","klass","ev","a1","a2","a3","run","callback","ctx","exception","_log2","error","Events","on","context","this","_events","push","once","_this","off","arguments","retain","j","k","_keys2","_callback","trigger","debug","allEvents","all","stopListening","listeningTo","_listeningTo","remove","id","_listenId","register","eventName","Custom","toUpperCase","trim","toLowerCase","map","index","join","listAvailableCustomEvents","filter","listenMethods","listenTo","listenToOnce","forEach","method","uniqueId","PLAYER_READY","PLAYER_RESIZE","PLAYER_FULLSCREEN","PLAYER_PLAY","PLAYER_PAUSE","PLAYER_STOP","PLAYER_ENDED","PLAYER_SEEK","PLAYER_ERROR","ERROR","PLAYER_TIMEUPDATE","PLAYER_VOLUMEUPDATE","PLAYER_SUBTITLE_AVAILABLE","PLAYBACK_PROGRESS","PLAYBACK_TIMEUPDATE","PLAYBACK_READY","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","PLAYBACK_SETTINGSUPDATE","PLAYBACK_LOADEDMETADATA","PLAYBACK_HIGHDEFINITIONUPDATE","PLAYBACK_BITRATE","PLAYBACK_LEVELS_AVAILABLE","PLAYBACK_LEVEL_SWITCH_START","PLAYBACK_LEVEL_SWITCH_END","PLAYBACK_PLAYBACKSTATE","PLAYBACK_DVR","PLAYBACK_MEDIACONTROL_DISABLE","PLAYBACK_MEDIACONTROL_ENABLE","PLAYBACK_ENDED","PLAYBACK_PLAY_INTENT","PLAYBACK_PLAY","PLAYBACK_PAUSE","PLAYBACK_SEEK","PLAYBACK_SEEKED","PLAYBACK_STOP","PLAYBACK_ERROR","PLAYBACK_STATS_ADD","PLAYBACK_FRAGMENT_LOADED","PLAYBACK_LEVEL_SWITCH","PLAYBACK_SUBTITLE_AVAILABLE","PLAYBACK_SUBTITLE_CHANGED","CORE_CONTAINERS_CREATED","CORE_ACTIVE_CONTAINER_CHANGED","CORE_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_RESIZE","CORE_SCREEN_ORIENTATION_CHANGED","CORE_MOUSE_MOVE","CORE_MOUSE_LEAVE","CONTAINER_PLAYBACKSTATE","CONTAINER_PLAYBACKDVRSTATECHANGED","CONTAINER_BITRATE","CONTAINER_STATS_REPORT","CONTAINER_DESTROYED","CONTAINER_READY","CONTAINER_ERROR","CONTAINER_LOADEDMETADATA","CONTAINER_SUBTITLE_AVAILABLE","CONTAINER_SUBTITLE_CHANGED","CONTAINER_TIMEUPDATE","CONTAINER_PROGRESS","CONTAINER_PLAY","CONTAINER_STOP","CONTAINER_PAUSE","CONTAINER_ENDED","CONTAINER_CLICK","CONTAINER_DBLCLICK","CONTAINER_CONTEXTMENU","CONTAINER_MOUSE_ENTER","CONTAINER_MOUSE_LEAVE","CONTAINER_SEEK","CONTAINER_SEEKED","CONTAINER_VOLUME","CONTAINER_FULLSCREEN","CONTAINER_STATE_BUFFERING","CONTAINER_STATE_BUFFERFULL","CONTAINER_SETTINGSUPDATE","CONTAINER_HIGHDEFINITIONUPDATE","CONTAINER_MEDIACONTROL_SHOW","CONTAINER_MEDIACONTROL_HIDE","CONTAINER_MEDIACONTROL_DISABLE","CONTAINER_MEDIACONTROL_ENABLE","CONTAINER_STATS_ADD","CONTAINER_OPTIONS_CHANGE","MEDIACONTROL_RENDERED","MEDIACONTROL_FULLSCREEN","MEDIACONTROL_SHOW","MEDIACONTROL_HIDE","MEDIACONTROL_MOUSEMOVE_SEEKBAR","MEDIACONTROL_MOUSELEAVE_SEEKBAR","MEDIACONTROL_PLAYING","MEDIACONTROL_NOTPLAYING","MEDIACONTROL_CONTAINERCHANGED","MEDIACONTROL_OPTIONS_CHANGE","assign","extend","formatTime","seekStringToSeconds","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","listContainsIgnoreCase","item","items","undefined","find","itemEach","canAutoPlayMedia","source","prop","propDescriptor","_getOwnPropertyDescriptor2","parent","properties","Surrogate","_parent","_classCallCheck3","_len","_key","_possibleConstructorReturn3","initialize","_inherits3","time","paddedHours","isFinite","seconds","parseInt","minutes","hours","days","out","Fullscreen","getFullscreenElement","document","webkitFullscreenElement","webkitIsFullScreen","mozFullScreen","msFullscreenElement","requestFullscreen","el","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","querySelector","webkitEnterFullScreen","cancelFullscreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Config","_defaultConfig","volume","parse","_defaultValueFor","e","_createKeyspace","domain","restore","_browser2","hasLocalstorage","localStorage","persist","QueryString","paramsString","match","pl","search","decode","decodeURIComponent","replace","params","exec","query","location","substring","_urlParams","hash","_hashParams","paramName","seekString","hashParams","parts","factor","h","suffix","idsCounter","prefix","parseFloat","scripts","getElementsByTagName","src","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","navigator","language","performance","Date","arr","indexOf","splice","cb","options","element","_assign2","inline","muted","timeout","type","_media2","mp4","createElement","setAttribute","promise","play","timeoutId","setResult","Error","result","then","catch","err","videoStack","DomRecycler","configure","_clapprZepto2","recycleVideo","shift","garbage","$el","tagName","children","DoubleEventHandler","delay","lastTime","handle","event","prevented","currentTime","getTime","diffTime","preventDefault","Media","$","Zepto","classList","camelize","uniq","emptyArray","elementDisplay","classCache","cssNumber","column-count","columns","font-weight","line-height","opacity","z-index","zoom","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","table","tableRow","containers","tr","tbody","thead","tfoot","td","th","*","readyRE","simpleSelectorRE","class2type","toString","zepto","tempParent","propMap","tabindex","readonly","for","class","maxlength","cellspacing","cellpadding","rowspan","colspan","usemap","frameborder","contenteditable","isArray","String","isFunction","isWindow","isDocument","nodeType","DOCUMENT_NODE","isObject","isPlainObject","getPrototypeOf","likeArray","dasherize","str","classRE","RegExp","maybeAddPx","childNodes","node","Z","dom","selector","len","filtered","nodes","funcArg","arg","idx","payload","removeAttribute","className","svg","baseVal","deserializeValue","parseJSON","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","parentNode","temp","appendChild","qsa","removeChild","chr","array","fragment","html","container","$1","innerHTML","each","attr","isZ","init","ready","deep","found","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","querySelectorAll","contains","documentElement","isEmptyObject","isNumeric","val","num","Number","isNaN","inArray","elem","camelCase","uuid","support","expr","noop","elements","values","grep","JSON","reduce","sort","toArray","readyState","body","addEventListener","size","every","not","add","is","excludes","has","eq","first","last","$this","some","closest","collection","_","parents","ancestors","pluck","contents","contentDocument","siblings","child","empty","show","nodeName","display","style","getComputedStyle","getPropertyValue","replaceWith","newContent","before","wrap","structure","func","clone","wrapAll","cloneNode","append","wrapInner","unwrap","hide","css","toggle","setting","prev","next","originHtml","text","newText","textContent","getAttribute","removeAttr","attribute","removeProp","data","attrName","multiple","selected","offset","coordinates","coords","parentOffset","offsetParent","top","left","getBoundingClientRect","pageXOffset","pageYOffset","width","Math","round","height","computedStyle","removeProperty","cssText","hasClass","addClass","cls","removeClass","toggleClass","when","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","position","detach","dimension","dimensionProperty","operator","operatorIndex","inside","argType","copyByClone","nextSibling","firstChild","parentInDocument","insertBefore","traverseNode","fun","ownerDocument","defaultView","jsonpID","rscript","scriptTypeRE","xmlTypeRE","jsonType","htmlType","blankRE","originAnchor","triggerGlobal","settings","global","Event","isDefaultPrevented","triggerAndReturn","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","success","resolveWith","ajaxComplete","ajaxError","rejectWith","status","complete","active","ajaxStop","appendQuery","url","parseArguments","dataType","href","ajaxJSONP","ajax","responseData","abortTimeout","_callbackName","jsonpCallback","callbackName","script","originalCallback","abort","errorType","triggerHandler","head","ajaxSettings","XMLHttpRequest","accepts","json","xml","crossDomain","processData","cache","dataFilter","urlAnchor","hashIndex","Deferred","ajaxStart","protocol","host","param","traditional","serializeData","hasPlaceholder","jsonp","mime","headers","setHeader","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","getResponseHeader","responseType","response","responseText","ajaxDataFilter","eval","responseXML","statusText","async","open","username","password","xhrFields","send","post","getJSON","load","escape","encodeURIComponent","serialize","scope","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","list","stack","fire","stopOnFalse","disable","start","unique","disabled","lock","locked","fireWith","tuples","state","always","done","fail","fns","defer","tuple","returned","resolve","reject","progress","notify","stateString","sub","progressValues","progressContexts","resolveContexts","resolveValues","remain","updateFn","notifyWith","_zid","isString","handlers","specialEvents","focusinSupported","focus","blur","hover","mouseenter","mouseleave","zid","findHandlers","matcher","handler","sel","eventCapture","captureSetting","del","realEvent","delegator","capture","set","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","_args","stopPropagation","removeEventListener","click","mousedown","mouseup","mousemove","proxyFn","unshift","unbind","one","returnTrue","returnFalse","ignoreProperties","eventMethods","stopImmediatePropagation","predicate","sourceMethod","timeStamp","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","dispatchEvent","createEvent","bubbles","initEvent","nativeGetComputedStyle","pseudoElement","oldQsa","oldMatches","visible","filters","hidden","checked","filterRe","childRe","classTag","process","taggedParent","console","core","version","__e","useSourceMap","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","stringify","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","memo","stylesInDom","isOldIE","atob","getElement","styleTarget","HTMLIFrameElement","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","addStyle","listToStyles","newStyles","base","part","media","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","removeStyleElement","createStyleElement","attrs","addAttrs","keys","update","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","styleSheet","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","replacement","Boolean","cssNode","evaluate","interpolate","noMatch","escapes","'","\\","\r","\n","\t","
","
","escaper","htmlEntities","&","<",">","\"","entityRe","escapeExpr","string","counter","tmpl","render","variable","Function","template","store","uid","USE_SYMBOL","Playback","i18n","playerError","_UIObject","_i18n","_consented","consent","pause","stop","seek","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","_options","attemptAutoPlay","_this2","canAutoPlay","closedCaptionsTracks","trackId","_error_mixin2","canPlay","VOD","AOD","LIVE","BaseObject","_Events","$export","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","C","a","b","virtual","R","U","__g","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","IObject","defined","it","ErrorMixin","createError","useCodePrefix","origin","prefixedCode","code","defaultError","description","level","_error2","Levels","FATAL","raw","errorData","UI","defaultUI","title","message","warn","UICorePlugin","enabled","bindEvents","getExternalInterface","enable","createDesc","$keys","enumBugKeys","_browser","delegateEventSplitter","UIObject","_BaseObject","cid","_ensureElement","delegateEvents","destroy","undelegateEvents","setElement","attributes","bitmap","_log","_error","CorePlugin","px","random","propertyIsEnumerable","_iterator2","_symbol2","_typeof","PlayerInfo","playbackPlugins","currentSize","_players","getInstance","playerId","UIContainerPlugin","ContainerPlugin","aFunction","that","valueOf","ceil","floor","shared","getOwnPropertySymbols","$at","iterated","_t","_i","point","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","write","lt","close","Properties","def","TAG","tag","stat","LIBRARY","wksExt","$Symbol","charAt","pIE","toIObject","gOPD","getOwnPropertyDescriptor","_kibo","Kibo","Mediator","opts","_html5_video","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask","arrayIndexOf","cof","toInteger","min","fails","KEY","exp","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","TO_STRING_TAG","collections","Collection","hiddenKeys","getOwnPropertyNames","classof","getIteratorMethod","_core","Styler","getStyleFor","baseUrl","_template2","PlayerError","WARN","INFO","_events2","_container","_loader","_from","_from2","arr2","_html5_audio","_html_img","_no_op","_spinner_three_bounce","_watermark","_poster","_click_to_pause","_media_control","_dvr_controls","_favicon","Player","Browser","MediaControl","Container","Core","Loader","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","ClickToPausePlugin","DVRControls","Favicon","Log","Poster","SpinnerThreeBouncePlugin","WaterMarkPlugin","Vendor","VERSION","defaultOptions","persistConfig","allowUserInteraction","isMobile","playback","_normalizeSources","chromeless","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","_core_factory2","playerInfo","_player_info2","parentId","setParentId","attachTo","loader","_loader2","plugins","activeContainer","ended","buffering","_ready","onReady","onResize","onPlay","onPause","onStop","onEnded","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","parentElement","_addEventListeners","isReady","_onReady","_containerChanged","_onFullscreenChange","_onResize","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","newEvents","userEvent","eventType","eventsMapping","eventFunction","fullscreen","getCurrentTime","timeProgress","resize","autoPlay","getCurrentPlayback","mute","_mutedVolume","getVolume","setVolume","unmute","isDvrEnabled","isDvrInUse","getPlugin","plugin","getKeys","gOPS","toObject","$assign","A","K","T","aLen","getSymbols","isEnum","toLength","toIndex","IS_INCLUDES","fromIndex","max","TO_STRING","pos","charCodeAt","ObjectProto","addToUnscopables","step","_k","Arguments","DESCRIPTORS","META","$fails","wks","wksDefine","keyOf","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","sym","isSymbol","iterator","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","symbols","keyFor","useSetter","useSimple","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","$Object","desc","setPrototypeOf","check","buggy","thisArg","kValue","getBrowserInfo","ua","extra","appName","appVersion","getBrowserData","browserObject","userAgent","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_getIterator3","_browser_data2","browserRegExpResult","identifier","group","versionIdentifier","versionRegExpResult","setBrowserVersion","return","splitVersion","fullVersion","majorVersion","minorVersion","getOsData","osObject","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_os_data2","os","osRegExpResult","setOsVersion","versionSeparator","separator","finalSeparator","substr","getViewportSize","viewportObject","getDevice","browserInfo","isEdge","isChrome","isSafari","isFirefox","isLegacyIE","ActiveXObject","isIE","isIE11","isChromecast","isiOS","isAndroid","isWindowsPhone","isWin8App","isWiiU","isPS4","setItem","removeItem","hasFlash","mimeTypes","enabledPlugin","viewport","device","orientation","setViewportOrientation","getIterator","iterFn","ARG","tryGet","callee","_vendor","BOLD","LEVEL_INFO","LEVEL_DISABLED","COLORS","DESCRIPTIONS","offLevel","kibo","down","onOff","BLACKLIST","log","info","previousLevel","newLevel","color","klassDescription","LEVEL_DEBUG","LEVEL_WARN","LEVEL_ERROR","_instance","setLevel","KEY_NAMES_BY_CODE","8","9","13","16","17","18","20","27","32","37","38","39","40","48","49","50","51","52","53","54","55","56","57","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","112","113","114","115","116","117","118","119","120","121","122","123","KEY_CODES_BY_NAME","MODIFIERS","registerEvent","attachEvent","unregisterEvent","detachEvent","stringContains","neatString","capitalize","what","arrayIncludes","haystack","needle","extractModifiers","keyCombination","modifiers","extractKey","modifiersAndKey","keyName","keyCode","lastKeyCode","lastModifiers","keysDown","any","keysUp","downHandler","upHandler","unloader","upOrDown","registeredKeys","lastModifiersAndKey","registerKeys","newKeys","unregisterKeys","up","lastKey","modifier","_core_factory","CoreFactory","player","_core2","addCorePlugins","createContainers","corePlugins","Plugin","addPlugin","setupExternalInterface","externalFunctions","configureDomRecycler","firstResize","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","webkitfullscreenchange","data-player","dummyMediaControl","_dummyMediaControl","_ui_core_plugin2","_activeContainer","containerFactory","_container_factory2","prepareContainers","setupContainers","resolveOnContainersReady","updateSize","isFullscreen","setFullscreen","setPlayerSize","previousSize","triggerResize","enableResizeObserver","_this3","resizeObserverInterval","setInterval","clientWidth","clientHeight","newSize","oldHeight","oldWidth","computedSize","_mediator2","disableResizeObserver","clearInterval","_this4","hasPlugin","innerWidth","innerHeight","_screenOrientation","removeContainer","setupContainer","renderContainers","appendToParent","_this5","createContainer","getCurrentContainer","activePlayback","toggleFullscreen","onMouseMove","onMouseLeave","_this6","appendTo","_styler2","_fonts2","_container_factory","ContainerFactory","findPlaybackPlugin","resolvedSource","_container2","addContainerPlugins","containerPlugins","mediaControlDisabled","dblTapHandler","clickTimer","clickDelay","data-container","dblclick","touchend","contextmenu","hasClosedCaptionsTracks","closedCaptionsTrackId","onProgress","timeUpdated","onBuffering","bufferfull","settingsUpdate","loadedMetadata","highDefinitionUpdate","updateBitrate","playbackStateChanged","playbackDvrStateChanged","disableMediaControl","enableMediaControl","onSeeked","playing","paused","stopped","subtitleAvailable","subtitleChanged","track","dvrInUse","newBitrate","statsReport","metrics","dvrEnabled","setStyle","animate","duration","metadata","current","clicked","cancelClicked","dblClicked","dblTap","onContextMenu","mouseEnter","mouseLeave","isHD","updateStyle","hmr","locals","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","externalPlugins","useOnlyPlainHtml5Plugins","_toConsumableArray3","_hls2","_html5_video2","_html5_audio2","_flash2","_flashls2","_html_img2","_no_op2","_spinner_three_bounce2","_watermark2","_poster2","_stats2","_google_analytics2","_click_to_pause2","_media_control2","_dvr_controls2","_closed_captions2","_favicon2","_seek_time2","_sources2","_end_video2","_error_screen2","_strings2","validateExternalPluginsType","addExternalPlugins","groupPluginsByType","removeDups","pluginsMap","reduceRight","errorMessage","from","isArrayIter","createProperty","getIterFn","iter","arrayLike","mapfn","mapping","ret","ArrayProto","SAFE_CLOSING","riter","skipClosing","safe","MIMETYPES","codec","ogg","3gpp","webm","mkv","m3u8","AUDIO_MIMETYPES","wav","mp3","aac","oga","KNOWN_AUDIO_MIMETYPES","acc","UNKNOWN_ERROR","_Playback","_destroyed","_loadStarted","_isBuffering","_playheadMoving","_playheadMovingTimer","_stopped","_ccTrackId","_setupSrc","disableContextMenu","disableVideoTagContextMenu","playbackConfig","preload","posterUrl","poster","defaultMuted","loop","controls","useVideoTagDefaultControls","crossOrigin","x-webkit-playsinline","playInline","playsinline","crossorigin","right","externalTracks","_setupExternalTracks","isAudioOnly","resourceUrl","_mimeTypesForUrl","audioOnly","data-html5-video","canplay","canplaythrough","durationchange","loadeddata","loadedmetadata","seeking","seeked","stalled","timeupdate","waiting","disableCanAutoPlay","autoPlayTimeout","tracks","_externalTracks","label","lang","srcUrl","_ccIsSetup","_src","_onLoadedMetadata","_handleBufferingEvents","_updateSettings","autoSeekFromUrl","_playback2","_checkInitialSeek","_onDurationChange","_onProgress","seekEnabled","isSeekEnabled","onDemandType","Infinity","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeking","_onSeeked","playheadShouldBeMoving","HAVE_FUTURE_DATA","_ref","isUnknownError","formattedError","handleTextTrackChange","textTracks","seekTime","total","buffered","bufferedPos","end","_typeFor","_isReadyState","isHTML5Video","_handleTextTrackChange","showingTrack","_tracks2","mimeTypesByExtension","extension","_canPlay","mediaType","canPlayType","updateSettings","data-html-img","_onLoad","resource","_noiseFrameNum","data-no-op","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","pow","putImageData","_loop","_stop","_animationHandle","getContext","_UIContainerPlugin","_spinner2","showTimeout","onBufferFull","data-spinner","_stats","StatsPlugin","_ContainerPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","isRebuffering","metric","getStats","watermark","imageUrl","imageLink","watermarkLink","templateOptions","PosterPlugin","hasStartedPlaying","playRequested","data-poster","showOnVideoEnd","hasFatalError","showPlayButton","updatePlayButton","hidePlayButton","disableErrorScreen","$playButton","shouldHideOnPlay","shouldRender","updatePoster","hidePoster","showPoster","custom","background-image","background","$playWrapper","_play2","buttonsColor","mediacontrol","buttons","_google_analytics","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","addEventListeners","onload","onPlaybackChanged","onVolumeChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","playbackState","res","pointerEnabled","_UICorePlugin","currentPositionValue","currentDurationValue","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","focusElement","bindKeyEvents","userDisabled","stopDragHandler","stopDrag","updateDragHandler","updateDrag","playbackIsNOOP","data-media-control","click [data-play]","click [data-pause]","click [data-playpause]","click [data-stop]","click [data-playstop]","click [data-fullscreen]","click .bar-container[data-seekbar]","click .bar-container[data-volume]","click .drawer-icon[data-volume]","mouseenter .drawer-container[data-volume]","mouseleave .drawer-container[data-volume]","mousedown .bar-container[data-volume]","mousemove .bar-container[data-volume]","mousedown .bar-scrubber[data-seekbar]","mousemove .bar-container[data-seekbar]","mouseleave .bar-container[data-seekbar]","mouseenter .media-control-layer[data-controls]","mouseleave .media-control-layer[data-controls]","_mediaControl2","intendedVolume","onActiveContainerChanged","hideMediaControlDelay","playerResize","bindContainerEvents","changeTogglePlay","updateProgressBar","onLoadedMetadataOnVideoTag","unbindKeyEvents","initialVolume","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","$volumeBarFill","$volumeBarScrubber","$volumeIcon","_mute2","_volume2","applyButtonStyle","$playPauseToggle","$playStopToggle","_pause2","_stop2","mousemoveOnSeekBar","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","icon","_shrink2","_expand2","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","setSeekPercentage","toggleMute","isInitialVolume","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","loadedStart","loadedEnd","renderSeekBar","currentSeekBarPercentage","newPosition","newDuration","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","mousePointerMoved","clientX","lastMouseX","clientY","lastMouseY","hideId","updateCursorStyle","_this7","hideMediaControl","hasKeepVisibleRequested","hasDraggingAction","showing","newSettings","getSettings","_stringify2","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","_hd2","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","_this8","_this9","parseColors","seekbarColor","seekbar","_this10","previousSeekPercentage","_index2","click .live-button","data-dvr-controls","mediaControl","containerChanged","dvrChanged","useDvrControls","backToLive","_closed_captions","ClosedCaptions","config","closedCaptionsConfig","_title","_ariaLabel","ariaLabel","_labelCb","labelCallback","click [data-cc-button]","click [data-cc-select]","data-cc-controls","hideContextMenu","onSubtitleChanged","onContainerStop","ccAvailable","renderCcButton","setCurrentContextMenuElement","onTrackSelect","dataset","ccSelect","hasCC","toggleContextMenu","contextMenuElement","_trackId","$ccButton","disabledLabel","_cc2","$fullscreen","insertAfter","prepend","oldIcon","_CorePlugin","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","fillStyle","path","Path2D","fill","toDataURL","playIcon","changeIcon","pauseIcon","_seek_time","SeekTime","hoveringOverSeekBar","hoverPosition","firstFragDateTime","actualLiveTime","actualLiveServerTime","actualLiveServerTimeDiff","data-seek-time","mediaControlContainer","isLiveStreamWithDvr","showTime","hideTime","onContainerChanged","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","useActualLiveTime","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","EndVideo","exitFullscreenOnEnd","Strings","_initializeMessages","_language","fallbackLang","_messages","en","back_to_live","playback_not_supported","default_error_title","default_error_message","pt","es","ru","fr","et","ar","strings","_error_screen","ErrorScreen","_ret","data-error-screen","bindReload","reloadButton","reload","unbindReload","reloadIcon"],"mappings":"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ACD52C,KAAM,QACN62C,MAAO,QACPD,WAAY,kBACZE,kBAAmB,qBAClB,CACD92C,KAAM,WACN62C,MAAO,WACPD,WAAY,sBACX,CACD52C,KAAM,oBACN62C,MAAO,WACPD,WAAY,wBACX,CACD52C,KAAM,oBACN62C,MAAO,WACPD,WAAY,oBACZE,kBAAmB,gBAClB,CACD92C,KAAM,UACN62C,MAAO,UACPD,WAAY,iBACZE,kBAAmB,kBAClB,CACD92C,KAAM,SACN62C,MAAO,SACPD,WAAY,mBACZE,kBAAmB,mIC5DL,CAAC,CACf92C,KAAM,eACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,aACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,gBACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,YACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,YACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,cACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,aACN62C,MAAO,UACPD,WAAY,kBACZpiB,QAAS,QACR,CACDx0B,KAAM,gBACN62C,MAAO,gBACPD,WAAY,2BACX,CACD52C,KAAM,gBACN62C,MAAO,gBACPD,WAAY,8BACX,CACD52C,KAAM,UACN62C,MAAO,UACPD,WAAY,WACX,CACD52C,KAAM,YACN62C,MAAO,YACPD,WAAY,QACX,CACD52C,KAAM,UACN62C,MAAO,UACPD,WAAY,UACZE,kBAAmB,4BAClB,CACD92C,KAAM,OACN62C,MAAO,MACPD,WAAY,OACZE,kBAAmB,eACnBkB,iBAAkB,SACjB,CACDh4C,KAAM,OACN62C,MAAO,MACPD,WAAY,OACZE,kBAAmB,eACnBkB,iBAAkB,SACjB,CACDh4C,KAAM,SACN62C,MAAO,MACPD,WAAY,YACZE,kBAAmB,eACnBkB,iBAAkB,SACjB,CACDh4C,KAAM,uBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,kBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,sBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,oBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,qBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,yBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,gBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,wBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,mBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,iBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,mBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,kBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,gBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,mBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,SACN62C,MAAO,SACPD,WAAY,UACX,CACD52C,KAAM,SACN62C,MAAO,QACPD,WAAY,SACZE,kBAAmB,oBAClB,CACD92C,KAAM,SACN62C,MAAO,QACPD,WAAY,UACX,CACD52C,KAAM,SACN62C,MAAO,QACPD,WAAY,UACX,CACD52C,KAAM,QACN62C,MAAO,QACPD,WAAY,SACX,CACD52C,KAAM,aACN62C,MAAO,aACPD,WAAY,kHC1KP,IAAMlhC,QAAM,2+DAEJ,CACbA,IAAKA,mICAP2kC,EAAA96C,EAAA,IAEA,IAAM+6C,EAAO,sCAGPlR,EAAO,kBAAoBkR,EAC3BryC,EAAQ,kBAAoBqyC,EAG5BC,EAAa,EAGbC,EADc,EAG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","file":"clappr.plainhtml5.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Clappr\"] = factory();\n\telse\n\t\troot[\"Clappr\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 98);\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Log from '../plugins/log'\nimport { uniqueId } from './utils'\n\nconst slice = Array.prototype.slice\n\nconst eventSplitter = /\\s+/\n\nconst eventsApi = function(obj, action, name, rest) {\n if (!name) return true\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (const key in name)\n obj[action].apply(obj, [key, name[key]].concat(rest))\n\n return false\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n const names = name.split(eventSplitter)\n for (let i = 0, l = names.length; i < l; i++)\n obj[action].apply(obj, [names[i]].concat(rest))\n\n return false\n }\n\n return true\n}\n\nconst triggerEvents = function(events, args, klass, name) {\n let ev, i = -1\n const l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]\n run()\n\n function run() {\n try {\n switch (args.length) {\n /* eslint-disable curly */\n case 0: while (++i < l) { (ev = events[i]).callback.call(ev.ctx) } return\n case 1: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1) } return\n case 2: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2) } return\n case 3: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2, a3) } return\n default: while (++i < l) { (ev = events[i]).callback.apply(ev.ctx, args) } return\n }\n } catch (exception) {\n Log.error.apply(Log, [klass, 'error on event', name, 'trigger','-', exception])\n run()\n }\n }\n}\n\n/**\n * @class Events\n * @constructor\n * @module base\n */\nexport default class Events {\n /**\n * listen to an event indefinitely, if you want to stop you need to call `off`\n * @method on\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n on(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this\n this._events || (this._events = {})\n const events = this._events[name] || (this._events[name] = [])\n events.push({ callback: callback, context: context, ctx: context || this })\n return this\n }\n\n /**\n * listen to an event only once\n * @method once\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n once(name, callback, context) {\n let once\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this\n const off = () => this.off(name, once)\n once = function() {\n off(name, once)\n callback.apply(this, arguments)\n }\n return this.on(name, once, context)\n }\n\n /**\n * stop listening to an event\n * @method off\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n off(name, callback, context) {\n let retain, ev, events, names, i, l, j, k\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this\n if (!name && !callback && !context) {\n this._events = void 0\n return this\n }\n names = name ? [name] : Object.keys(this._events)\n // jshint maxdepth:5\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i]\n events = this._events[name]\n if (events) {\n this._events[name] = retain = []\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j]\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context))\n retain.push(ev)\n\n }\n }\n if (!retain.length) delete this._events[name]\n }\n }\n return this\n }\n\n /**\n * triggers an event given its `name`\n * @method trigger\n * @param {String} name\n */\n trigger(name) {\n const klass = this.name || this.constructor.name\n Log.debug.apply(Log, [klass].concat(Array.prototype.slice.call(arguments)))\n if (!this._events) return this\n const args = slice.call(arguments, 1)\n if (!eventsApi(this, 'trigger', name, args)) return this\n const events = this._events[name]\n const allEvents = this._events.all\n if (events) triggerEvents(events, args, klass, name)\n if (allEvents) triggerEvents(allEvents, arguments, klass, name)\n return this\n }\n\n /**\n * stop listening an event for a given object\n * @method stopListening\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n */\n stopListening(obj, name, callback) {\n let listeningTo = this._listeningTo\n if (!listeningTo) return this\n const remove = !name && !callback\n if (!callback && typeof name === 'object') callback = this\n if (obj) (listeningTo = {})[obj._listenId] = obj\n for (const id in listeningTo) {\n obj = listeningTo[id]\n obj.off(name, callback, this)\n if (remove || Object.keys(obj._events).length === 0) delete this._listeningTo[id]\n }\n return this\n }\n\n static register(eventName) {\n Events.Custom || (Events.Custom = {})\n let property = typeof eventName === 'string' && eventName.toUpperCase().trim()\n\n if (property && !Events.Custom[property]) {\n Events.Custom[property] = property.toLowerCase().split('_').map(\n (value, index) => index === 0 ? value : value = (value[0].toUpperCase() + value.slice(1))\n ).join('')\n } else\n Log.error('Events', 'Error when register event: ' + eventName)\n\n }\n\n static listAvailableCustomEvents() {\n Events.Custom || (Events.Custom = {})\n return Object.keys(Events.Custom).filter((property) => typeof Events.Custom[property] === 'string')\n }\n}\n\n/**\n * listen to an event indefinitely for a given `obj`\n * @method listenTo\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenTo(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\n/**\n * listen to an event once for a given `obj`\n * @method listenToOnce\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenToOnce(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\nconst listenMethods = { listenTo: 'on', listenToOnce: 'once' }\n\nObject.keys(listenMethods).forEach(function(method) {\n Events.prototype[method] = function(obj, name, callback) {\n const listeningTo = this._listeningTo || (this._listeningTo = {})\n const id = obj._listenId || (obj._listenId = uniqueId('l'))\n listeningTo[id] = obj\n if (!callback && typeof name === 'object') callback = this\n obj[listenMethods[method]](name, callback, this)\n return this\n }\n})\n\n// PLAYER EVENTS\n/**\n * Fired when the player is ready on startup\n *\n * @event PLAYER_READY\n */\nEvents.PLAYER_READY = 'ready'\n/**\n * Fired when player resizes\n *\n * @event PLAYER_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.PLAYER_RESIZE = 'resize'\n/**\n * Fired when player changes its fullscreen state\n *\n * @event PLAYER_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.PLAYER_FULLSCREEN = 'fullscreen'\n/**\n * Fired when player starts to play\n *\n * @event PLAYER_PLAY\n */\nEvents.PLAYER_PLAY = 'play'\n/**\n * Fired when player pauses\n *\n * @event PLAYER_PAUSE\n */\nEvents.PLAYER_PAUSE = 'pause'\n/**\n * Fired when player stops\n *\n * @event PLAYER_STOP\n */\nEvents.PLAYER_STOP = 'stop'\n/**\n * Fired when player ends the video\n *\n * @event PLAYER_ENDED\n */\nEvents.PLAYER_ENDED = 'ended'\n/**\n * Fired when player seeks the video\n *\n * @event PLAYER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.PLAYER_SEEK = 'seek'\n/**\n * Fired when player receives an error\n *\n * @event PLAYER_ERROR\n * @param {Object} error the error\n */\nEvents.PLAYER_ERROR = 'playererror'\n/**\n * Fired when there is an error\n *\n * @event ERROR\n * @param {Object} error\n * the error with the following format `{code, description, level, raw, origin, scope}`\n * @param {String} [options.code]\n * error's code: code to identify error in the following format: origin:code\n * @param {String} [options.description]\n * error's description: description of the error\n * @param {String} [options.level]\n * error's level: FATAL or WARN.\n * @param {String} [options.origin]\n * error's origin. Example: hls, html5, etc\n * @param {String} [options.scope]\n * error's scope. Example: playback, container, etc\n * @param {String} [options.raw]\n * raw error: the initial error received\n */\nEvents.ERROR = 'error'\n/**\n * Fired when the time is updated on player\n *\n * @event PLAYER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.PLAYER_TIMEUPDATE = 'timeupdate'\n/**\n * Fired when player updates its volume\n *\n * @event PLAYER_VOLUMEUPDATE\n * @param {Number} volume the current volume\n */\nEvents.PLAYER_VOLUMEUPDATE = 'volumeupdate'\n\n/**\n * Fired when subtitle is available\n *\n * @event PLAYER_SUBTITLE_AVAILABLE\n */\nEvents.PLAYER_SUBTITLE_AVAILABLE = 'subtitleavailable'\n\n// Playback Events\n/**\n * Fired when the playback is downloading the media\n *\n * @event PLAYBACK_PROGRESS\n * @param progress {Object}\n * Data progress object\n * @param [progress.start] {Number}\n * start position of buffered content at current position\n * @param [progress.current] {Number}\n * end position of buffered content at current position\n * @param [progress.total] {Number}\n * total content to be downloaded\n * @param buffered {Array}\n * array of buffered segments ({start, end}). [Only for supported playbacks]\n */\nEvents.PLAYBACK_PROGRESS = 'playback:progress'\n/**\n * Fired when the time is updated on playback\n *\n * @event PLAYBACK_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.PLAYBACK_TIMEUPDATE = 'playback:timeupdate'\n/**\n * Fired when playback is ready\n *\n * @event PLAYBACK_READY\n */\nEvents.PLAYBACK_READY = 'playback:ready'\n/**\n * Fired when the playback starts having to buffer because\n * playback can currently not be smooth.\n *\n * This corresponds to the playback `buffering` property being\n * `true`.\n *\n * @event PLAYBACK_BUFFERING\n */\nEvents.PLAYBACK_BUFFERING = 'playback:buffering'\n/**\n * Fired when the playback has enough in the buffer to be\n * able to play smoothly, after previously being unable to\n * do this.\n *\n * This corresponds to the playback `buffering` property being\n * `false`.\n *\n * @event PLAYBACK_BUFFERFULL\n */\nEvents.PLAYBACK_BUFFERFULL = 'playback:bufferfull'\n/**\n * Fired when playback changes any settings (volume, seek and etc)\n *\n * @event PLAYBACK_SETTINGSUPDATE\n */\nEvents.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate'\n/**\n * Fired when playback loaded its metadata\n *\n * @event PLAYBACK_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata'\n/**\n * Fired when playback updates its video quality\n *\n * @event PLAYBACK_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate'\n/**\n * Fired when playback updates its bitrate\n *\n * @event PLAYBACK_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.PLAYBACK_BITRATE = 'playback:bitrate'\n/**\n * Fired when the playback has its levels\n *\n * @event PLAYBACK_LEVELS_AVAILABLE\n * @param {Array} levels\n * the ordered levels, each one with the following format `{id: 1, label: '500kbps'}` ps: id should be a number >= 0\n * @param {Number} initial\n * the initial level otherwise -1 (AUTO)\n */\nEvents.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available'\n/**\n * Fired when the playback starts to switch level\n *\n * @event PLAYBACK_LEVEL_SWITCH_START\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start'\n/**\n * Fired when the playback ends the level switch\n *\n * @event PLAYBACK_LEVEL_SWITCH_END\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end'\n\n/**\n * Fired when playback internal state changes\n *\n * @event PLAYBACK_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate'\n/**\n * Fired when DVR becomes enabled/disabled.\n *\n * @event PLAYBACK_DVR\n * @param {boolean} state true if dvr enabled\n */\nEvents.PLAYBACK_DVR = 'playback:dvr'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable'\n/**\n * Fired when the media for a playback ends.\n *\n * @event PLAYBACK_ENDED\n * @param {String} name the name of the playback\n */\nEvents.PLAYBACK_ENDED = 'playback:ended'\n/**\n * Fired when user requests `play()`\n *\n * @event PLAYBACK_PLAY_INTENT\n */\nEvents.PLAYBACK_PLAY_INTENT = 'playback:play:intent'\n/**\n * Fired when the media for a playback starts playing.\n * This is not necessarily when the user requests `play()`\n * The media may have to buffer first.\n * I.e. `isPlaying()` might return `true` before this event is fired,\n * because `isPlaying()` represents the intended state.\n *\n * @event PLAYBACK_PLAY\n */\nEvents.PLAYBACK_PLAY = 'playback:play'\n/**\n * Fired when the media for a playback pauses.\n *\n * @event PLAYBACK_PAUSE\n */\nEvents.PLAYBACK_PAUSE = 'playback:pause'\n/**\n * Fired when the media for a playback is seeking.\n *\n * @event PLAYBACK_SEEK\n */\nEvents.PLAYBACK_SEEK = 'playback:seek'\n/**\n * Fired when the media for a playback is seeked.\n *\n * @event PLAYBACK_SEEKED\n */\nEvents.PLAYBACK_SEEKED = 'playback:seeked'\n/**\n * Fired when the media for a playback is stopped.\n *\n * @event PLAYBACK_STOP\n */\nEvents.PLAYBACK_STOP = 'playback:stop'\n/**\n * Fired if an error occurs in the playback.\n *\n * @event PLAYBACK_ERROR\n * @param {Object} error An object containing the error details\n * @param {String} name Playback name\n */\nEvents.PLAYBACK_ERROR = 'playback:error'\n// TODO doc\nEvents.PLAYBACK_STATS_ADD = 'playback:stats:add'\n// TODO doc\nEvents.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded'\n// TODO doc\nEvents.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch'\n/**\n * Fired when subtitle is available on playback for display\n *\n * @event PLAYBACK_SUBTITLE_AVAILABLE\n */\nEvents.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available'\n/**\n * Fired when playback subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed'\n\n// Core Events\n/**\n * Fired when the containers are created\n *\n * @event CORE_CONTAINERS_CREATED\n */\nEvents.CORE_CONTAINERS_CREATED = 'core:containers:created'\n/**\n * Fired when the active container changed\n *\n * @event CORE_ACTIVE_CONTAINER_CHANGED\n */\nEvents.CORE_ACTIVE_CONTAINER_CHANGED = 'core:active:container:changed'\n/**\n * Fired when the options were changed for the core\n *\n * @event CORE_OPTIONS_CHANGE\n * @param {Object} new options provided to configure() method\n */\nEvents.CORE_OPTIONS_CHANGE = 'core:options:change'\n/**\n * Fired after creating containers, when the core is ready\n *\n * @event CORE_READY\n */\nEvents.CORE_READY = 'core:ready'\n/**\n * Fired when the fullscreen state change\n *\n * @event CORE_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.CORE_FULLSCREEN = 'core:fullscreen'\n/**\n * Fired when core updates size\n *\n * @event CORE_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.CORE_RESIZE = 'core:resize'\n/**\n * Fired when the screen orientation has changed.\n * This event is trigger only for mobile devices.\n *\n * @event CORE_SCREEN_ORIENTATION_CHANGED\n * @param {Object} screen An object with screen orientation\n * screen object\n * @param {Object} [screen.event]\n * window resize event object\n * @param {String} [screen.orientation]\n * screen orientation (ie: 'landscape' or 'portrait')\n */\nEvents.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed'\n/**\n * Fired when occurs mouse move event on core element\n *\n * @event CORE_MOUSE_MOVE\n * @param {Object} event a DOM event\n */\nEvents.CORE_MOUSE_MOVE = 'core:mousemove'\n/**\n * Fired when occurs mouse leave event on core element\n *\n * @event CORE_MOUSE_LEAVE\n * @param {Object} event a DOM event\n */\nEvents.CORE_MOUSE_LEAVE = 'core:mouseleave'\n\n// Container Events\n/**\n * Fired when the container internal state changes\n *\n * @event CONTAINER_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.CONTAINER_PLAYBACKSTATE = 'container:playbackstate'\nEvents.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr'\n/**\n * Fired when the container updates its bitrate\n *\n * @event CONTAINER_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.CONTAINER_BITRATE = 'container:bitrate'\nEvents.CONTAINER_STATS_REPORT = 'container:stats:report'\nEvents.CONTAINER_DESTROYED = 'container:destroyed'\n/**\n * Fired when the container is ready\n *\n * @event CONTAINER_READY\n */\nEvents.CONTAINER_READY = 'container:ready'\nEvents.CONTAINER_ERROR = 'container:error'\n/**\n * Fired when the container loaded its metadata\n *\n * @event CONTAINER_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata'\n\n/**\n * Fired when subtitle is available on container for display\n *\n * @event CONTAINER_SUBTITLE_AVAILABLE\n */\nEvents.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available'\n/**\n * Fired when subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed'\n\n/**\n * Fired when the time is updated on container\n *\n * @event CONTAINER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.CONTAINER_TIMEUPDATE = 'container:timeupdate'\n/**\n * Fired when the container is downloading the media\n *\n * @event CONTAINER_PROGRESS\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.start]\n * initial downloaded content\n * @param {Number} [progress.current]\n * current dowloaded content\n * @param {Number} [progress.total]\n * total content to be downloaded\n */\nEvents.CONTAINER_PROGRESS = 'container:progress'\nEvents.CONTAINER_PLAY = 'container:play'\nEvents.CONTAINER_STOP = 'container:stop'\nEvents.CONTAINER_PAUSE = 'container:pause'\nEvents.CONTAINER_ENDED = 'container:ended'\nEvents.CONTAINER_CLICK = 'container:click'\nEvents.CONTAINER_DBLCLICK = 'container:dblclick'\nEvents.CONTAINER_CONTEXTMENU = 'container:contextmenu'\nEvents.CONTAINER_MOUSE_ENTER = 'container:mouseenter'\nEvents.CONTAINER_MOUSE_LEAVE = 'container:mouseleave'\n/**\n * Fired when the container seeks the video\n *\n * @event CONTAINER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEK = 'container:seek'\n/**\n * Fired when the container was finished the seek video\n *\n * @event CONTAINER_SEEKED\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEKED = 'container:seeked'\nEvents.CONTAINER_VOLUME = 'container:volume'\nEvents.CONTAINER_FULLSCREEN = 'container:fullscreen'\n/**\n * Fired when container is buffering\n *\n * @event CONTAINER_STATE_BUFFERING\n */\nEvents.CONTAINER_STATE_BUFFERING = 'container:state:buffering'\n/**\n * Fired when the container filled the buffer\n *\n * @event CONTAINER_STATE_BUFFERFULL\n */\nEvents.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull'\n/**\n * Fired when the container changes any settings (volume, seek and etc)\n *\n * @event CONTAINER_SETTINGSUPDATE\n */\nEvents.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate'\n/**\n * Fired when container updates its video quality\n *\n * @event CONTAINER_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate'\n\n/**\n * Fired when the media control shows\n *\n * @event CONTAINER_MEDIACONTROL_SHOW\n */\nEvents.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event CONTAINER_MEDIACONTROL_HIDE\n */\nEvents.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide'\n\nEvents.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable'\nEvents.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable'\nEvents.CONTAINER_STATS_ADD = 'container:stats:add'\n/**\n * Fired when the options were changed for the container\n *\n * @event CONTAINER_OPTIONS_CHANGE\n */\nEvents.CONTAINER_OPTIONS_CHANGE = 'container:options:change'\n\n// MediaControl Events\nEvents.MEDIACONTROL_RENDERED = 'mediacontrol:rendered'\n/**\n * Fired when the player enters/exit on fullscreen\n *\n * @event MEDIACONTROL_FULLSCREEN\n */\nEvents.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen'\n/**\n * Fired when the media control shows\n *\n * @event MEDIACONTROL_SHOW\n */\nEvents.MEDIACONTROL_SHOW = 'mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event MEDIACONTROL_HIDE\n */\nEvents.MEDIACONTROL_HIDE = 'mediacontrol:hide'\n/**\n * Fired when mouse enters on the seekbar\n *\n * @event MEDIACONTROL_MOUSEMOVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar'\n/**\n * Fired when mouse leaves the seekbar\n *\n * @event MEDIACONTROL_MOUSELEAVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar'\n/**\n * Fired when the media is being played\n *\n * @event MEDIACONTROL_PLAYING\n */\nEvents.MEDIACONTROL_PLAYING = 'mediacontrol:playing'\n/**\n * Fired when the media is not being played\n *\n * @event MEDIACONTROL_NOTPLAYING\n */\nEvents.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying'\n/**\n * Fired when the container was changed\n *\n * @event MEDIACONTROL_CONTAINERCHANGED\n */\nEvents.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged'\n/**\n * Fired when the options were changed for the mediacontrol\n *\n * @event MEDIACONTROL_OPTIONS_CHANGE\n */\nEvents.MEDIACONTROL_OPTIONS_CHANGE = 'mediacontrol:options:change'\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n/*jshint -W079 */\n\nimport './polyfills'\nimport Browser from '../components/browser'\nimport $ from 'clappr-zepto'\nimport Media from './media'\n\nexport function assign(obj, source) {\n if (source) {\n for (const prop in source) {\n const propDescriptor = Object.getOwnPropertyDescriptor(source, prop)\n propDescriptor ? Object.defineProperty(obj, prop, propDescriptor) : obj[prop] = source[prop]\n }\n }\n return obj\n}\n\nexport function extend(parent, properties) {\n class Surrogate extends parent {\n constructor(...args) {\n super(...args)\n if (properties.initialize)\n properties.initialize.apply(this, args)\n\n }\n }\n assign(Surrogate.prototype, properties)\n return Surrogate\n}\n\nexport function formatTime(time, paddedHours) {\n if (!isFinite(time))\n return '--:--'\n\n time = time * 1000\n time = parseInt(time/1000)\n const seconds = time % 60\n time = parseInt(time/60)\n const minutes = time % 60\n time = parseInt(time/60)\n const hours = time % 24\n const days = parseInt(time/24)\n let out = ''\n if (days && days > 0) {\n out += days + ':'\n if (hours < 1) out += '00:'\n }\n if (hours && hours > 0 || paddedHours) out += ('0' + hours).slice(-2) + ':'\n out += ('0' + minutes).slice(-2) + ':'\n out += ('0' + seconds).slice(-2)\n return out.trim()\n}\n\nexport const Fullscreen = {\n getFullscreenElement: function() {\n return document.webkitFullscreenElement ||\n document.webkitIsFullScreen ||\n document.mozFullScreen ||\n document.msFullscreenElement\n },\n requestFullscreen: function(el) {\n if (el.requestFullscreen)\n el.requestFullscreen()\n else if (el.webkitRequestFullscreen)\n el.webkitRequestFullscreen()\n else if (el.mozRequestFullScreen)\n el.mozRequestFullScreen()\n else if (el.msRequestFullscreen)\n el.msRequestFullscreen()\n else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen)\n el.querySelector('video').webkitEnterFullScreen()\n else if (el.webkitEnterFullScreen)\n el.webkitEnterFullScreen()\n\n },\n cancelFullscreen: function(el=document) {\n if (el.exitFullscreen)\n el.exitFullscreen()\n else if (el.webkitCancelFullScreen)\n el.webkitCancelFullScreen()\n else if (el.webkitExitFullscreen)\n el.webkitExitFullscreen()\n else if (el.mozCancelFullScreen)\n el.mozCancelFullScreen()\n else if (el.msExitFullscreen)\n el.msExitFullscreen()\n\n },\n fullscreenEnabled: function() {\n return !!(\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n )\n }\n}\n\nexport class Config {\n\n static _defaultConfig() {\n return {\n volume: {\n value: 100,\n parse: parseInt\n }\n }\n }\n\n static _defaultValueFor(key) {\n try {\n return this._defaultConfig()[key].parse(this._defaultConfig()[key].value)\n } catch (e) {\n return undefined\n }\n }\n\n static _createKeyspace(key) {\n return `clappr.${document.domain}.${key}`\n }\n\n static restore(key) {\n if (Browser.hasLocalstorage && localStorage[this._createKeyspace(key)])\n return this._defaultConfig()[key].parse(localStorage[this._createKeyspace(key)])\n\n return this._defaultValueFor(key)\n }\n\n static persist(key, value) {\n if (Browser.hasLocalstorage) {\n try {\n localStorage[this._createKeyspace(key)] = value\n return true\n } catch (e) {\n return false\n }\n }\n }\n}\n\nexport class QueryString {\n static get params() {\n const query = window.location.search.substring(1)\n if (query !== this.query) {\n this._urlParams = this.parse(query)\n this.query = query\n }\n return this._urlParams\n }\n\n static get hashParams() {\n const hash = window.location.hash.substring(1)\n if (hash !== this.hash) {\n this._hashParams = this.parse(hash)\n this.hash = hash\n }\n return this._hashParams\n }\n\n static parse(paramsString) {\n let match\n const pl = /\\+/g, // Regex for replacing addition symbol with a space\n search = /([^&=]+)=?([^&]*)/g,\n decode = (s) => decodeURIComponent(s.replace(pl, ' ')),\n params = {}\n while (match = search.exec(paramsString)) { // eslint-disable-line no-cond-assign\n params[decode(match[1]).toLowerCase()] = decode(match[2])\n }\n return params\n }\n}\n\nexport function seekStringToSeconds(paramName = 't') {\n let seconds = 0\n const seekString = QueryString.params[paramName] || QueryString.hashParams[paramName] || ''\n const parts = seekString.match(/[0-9]+[hms]+/g) || []\n if (parts.length > 0) {\n const factor = { 'h': 3600, 'm': 60, 's': 1 }\n parts.forEach(function(el) {\n if (el) {\n const suffix = el[el.length - 1]\n const time = parseInt(el.slice(0, el.length - 1), 10)\n seconds += time * (factor[suffix])\n }\n })\n } else if (seekString) { seconds = parseInt(seekString, 10) }\n\n return seconds\n}\n\nconst idsCounter = {}\n\nexport function uniqueId(prefix) {\n idsCounter[prefix] || (idsCounter[prefix] = 0)\n const id = ++idsCounter[prefix]\n return prefix + id\n}\n\nexport function isNumber(value) {\n return value - parseFloat(value) + 1 >= 0\n}\n\nexport function currentScriptUrl() {\n const scripts = document.getElementsByTagName('script')\n return scripts.length ? scripts[scripts.length - 1].src : ''\n}\n\nexport const requestAnimationFrame = (window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(fn) { window.setTimeout(fn, 1000/60) }).bind(window)\n\nexport const cancelAnimationFrame = (window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.clearTimeout).bind(window)\n\nexport function getBrowserLanguage() {\n return window.navigator && window.navigator.language\n}\n\nexport function now() {\n if (window.performance && window.performance.now)\n return performance.now()\n\n return Date.now()\n}\n\n// remove the item from the array if it exists in the array\nexport function removeArrayItem(arr, item) {\n const i = arr.indexOf(item)\n if (i >= 0)\n arr.splice(i, 1)\n\n}\n\n// find an item regardless of its letter case\nexport function listContainsIgnoreCase(item, items) {\n if (item === undefined || items === undefined) return false\n return items.find((itemEach) => item.toLowerCase() === itemEach.toLowerCase()) !== undefined\n}\n\n// https://github.com/video-dev/can-autoplay\nexport function canAutoPlayMedia(cb, options) {\n options = Object.assign({\n inline: false,\n muted: false,\n timeout: 250,\n type: 'video',\n source: Media.mp4,\n element: null\n }, options)\n\n let element = options.element ? options.element : document.createElement(options.type)\n\n element.muted = options.muted\n if (options.muted === true)\n element.setAttribute('muted', 'muted')\n\n if (options.inline === true)\n element.setAttribute('playsinline', 'playsinline')\n\n element.src = options.source\n\n let promise = element.play()\n\n let timeoutId = setTimeout(() => {\n setResult(false, new Error(`Timeout ${options.timeout} ms has been reached`))\n }, options.timeout)\n\n let setResult = (result, error = null) => {\n clearTimeout(timeoutId)\n cb(result, error)\n }\n\n if (promise !== undefined) {\n promise\n .then(() => setResult(true))\n .catch(err => setResult(false, err))\n } else {\n setResult(true)\n }\n}\n\n// Simple Zepto element factory with video recycle feature.\nconst videoStack = []\n\nexport class DomRecycler {\n static configure(options) {\n this.options = $.extend(this.options, options)\n }\n\n static create(name) {\n if (this.options.recycleVideo && name === 'video' && videoStack.length > 0)\n return videoStack.shift()\n\n return $('<' + name + '>')\n }\n\n static garbage($el) {\n // Expect Zepto collection with single element (does not iterate!)\n if (!this.options.recycleVideo || $el[0].tagName.toUpperCase() !== 'VIDEO') return\n $el.children().remove()\n videoStack.push($el)\n }\n}\n\nDomRecycler.options = { recycleVideo: false }\n\nexport class DoubleEventHandler {\n constructor(delay = 500) {\n this.delay = delay\n this.lastTime = 0\n }\n\n handle(event, cb, prevented = true) {\n // Based on http://jsfiddle.net/brettwp/J4djY/\n let currentTime = new Date().getTime()\n let diffTime = currentTime - this.lastTime\n\n if (diffTime < this.delay && diffTime > 0) {\n cb()\n prevented && event.preventDefault()\n }\n\n this.lastTime = currentTime\n }\n}\n\nexport default {\n Config,\n Fullscreen,\n QueryString,\n DomRecycler,\n extend,\n formatTime,\n seekStringToSeconds,\n uniqueId,\n currentScriptUrl,\n isNumber,\n requestAnimationFrame,\n cancelAnimationFrame,\n getBrowserLanguage,\n now,\n removeArrayItem,\n canAutoPlayMedia,\n Media,\n DoubleEventHandler\n}\n","/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /\n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.activeContainer.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.activeContainer.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n constructor(options) {\n super(options)\n const playbackDefaultOptions = { recycleVideo : true }\n const defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners(this.options.events)\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners(newEvents = {}, events = {}) {\n const hasNewEvents = Object.keys(newEvents).length > 0\n hasNewEvents && Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType, events[userEvent])\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <>, mimeType: <>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.stopListening()\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.activeContainer.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.activeContainer.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.activeContainer.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.activeContainer.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage)\n return this\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.activeContainer.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.activeContainer.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options = {}) {\n this._registerOptionEventListeners(options.events, this.options.events)\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.activeContainer.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.activeContainer.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.activeContainer.getDuration()\n }\n}\n\nObject.assign(Player.prototype, ErrorMixin)\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};","module.exports = require('./_global').document && document.documentElement;","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","module.exports = function(){ /* empty */ };","module.exports = function(done, value){\n return {value: value, done: !!done};\n};","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');","require('./_wks-define')('observable');","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n","import $ from 'clappr-zepto'\nimport BROWSER_DATA from './browser_data'\nimport OS_DATA from './os_data'\n\nconst Browser = {}\n\nconst hasLocalstorage = function() {\n try {\n localStorage.setItem('clappr', 'clappr')\n localStorage.removeItem('clappr')\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasFlash = function() {\n try {\n const fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')\n return !!fo\n } catch (e) {\n return !!(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&\n navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin)\n }\n}\n\nexport const getBrowserInfo = function(ua) {\n let parts = ua.match(/\\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [],\n extra\n if (/trident/i.test(parts[1])) {\n extra = /\\brv[ :]+(\\d+)/g.exec(ua) || []\n return {\n name: 'IE',\n version: parseInt(extra[1] || '')\n }\n } else if (parts[1] === 'Chrome') {\n extra = ua.match(/\\bOPR\\/(\\d+)/)\n if (extra != null) return { name: 'Opera', version: parseInt(extra[1]) }\n\n extra = ua.match(/\\bEdge\\/(\\d+)/)\n if (extra != null) return { name: 'Edge', version: parseInt(extra[1]) }\n\n } else if (/android/i.test(ua) && (extra = ua.match(/version\\/(\\d+)/i))) {\n parts.splice(1, 1, 'Android WebView')\n parts.splice(2, 1, extra[1])\n }\n parts = parts[2] ? [parts[1], parts[2]] : [navigator.appName, navigator.appVersion, '-?']\n\n return {\n name: parts[0],\n version: parseInt(parts[1])\n }\n}\n\n// Get browser data\nexport const getBrowserData = function() {\n let browserObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let browser of BROWSER_DATA) {\n let browserRegExp = new RegExp(browser.identifier.toLowerCase())\n let browserRegExpResult = browserRegExp.exec(userAgent)\n\n if (browserRegExpResult != null && browserRegExpResult[1]) {\n browserObject.name = browser.name\n browserObject.group = browser.group\n\n // Check version\n if (browser.versionIdentifier) {\n let versionRegExp = new RegExp(browser.versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setBrowserVersion(versionRegExpResult[1], browserObject)\n\n } else {\n setBrowserVersion(browserRegExpResult[1], browserObject)\n }\n break\n }\n }\n return browserObject\n}\n\n// Set browser version\nconst setBrowserVersion = function(version, browserObject) {\n let splitVersion = version.split('.', 2)\n browserObject.fullVersion = version\n\n // Major version\n if (splitVersion[0]) browserObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion[1]) browserObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Get OS data\nexport const getOsData = function() {\n let osObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let os of OS_DATA) {\n let osRegExp = new RegExp(os.identifier.toLowerCase())\n let osRegExpResult = osRegExp.exec(userAgent)\n\n if (osRegExpResult != null) {\n osObject.name = os.name\n osObject.group = os.group\n\n // Version defined\n if (os.version) {\n setOsVersion(os.version, (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n // Version detected\n } else if (osRegExpResult[1]) {\n setOsVersion(osRegExpResult[1], (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n // Version identifier\n } else if (os.versionIdentifier) {\n let versionRegExp = new RegExp(os.versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setOsVersion(versionRegExpResult[1], (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n }\n break\n }\n }\n return osObject\n}\n\n// Set OS version\nconst setOsVersion = function(version, separator, osObject) {\n let finalSeparator = separator.substr(0, 1) == '[' ? new RegExp(separator, 'g') : separator\n const splitVersion = version.split(finalSeparator, 2)\n\n if (separator != '.') version = version.replace(new RegExp(separator, 'g'), '.')\n\n osObject.fullVersion = version\n\n // Major version\n if (splitVersion && splitVersion[0])\n osObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion && splitVersion[1])\n osObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Set viewport size\nexport const getViewportSize = function() {\n let viewportObject = {}\n\n viewportObject.width = $(window).width()\n viewportObject.height = $(window).height()\n\n return viewportObject\n}\n\n// Set viewport orientation\nconst setViewportOrientation = function() {\n switch (window.orientation) {\n case -90:\n case 90:\n Browser.viewport.orientation = 'landscape'\n break\n default:\n Browser.viewport.orientation = 'portrait'\n break\n }\n}\n\nexport const getDevice = function(ua) {\n let platformRegExp = /\\((iP(?:hone|ad|od))?(?:[^;]*; ){0,2}([^)]+(?=\\)))/\n let matches = platformRegExp.exec(ua)\n let device = matches && (matches[1] || matches[2]) || ''\n return device\n}\n\nconst browserInfo = getBrowserInfo(navigator.userAgent)\n\nBrowser.isEdge = /edge/i.test(navigator.userAgent)\nBrowser.isChrome = /chrome|CriOS/i.test(navigator.userAgent) && !Browser.isEdge\nBrowser.isSafari = /safari/i.test(navigator.userAgent) && !Browser.isChrome && !Browser.isEdge\nBrowser.isFirefox = /firefox/i.test(navigator.userAgent)\nBrowser.isLegacyIE = !!(window.ActiveXObject)\nBrowser.isIE = Browser.isLegacyIE || /trident.*rv:1\\d/i.test(navigator.userAgent)\nBrowser.isIE11 = /trident.*rv:11/i.test(navigator.userAgent)\nBrowser.isChromecast = Browser.isChrome && /CrKey/i.test(navigator.userAgent)\nBrowser.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent)\nBrowser.isiOS = /iPad|iPhone|iPod/i.test(navigator.userAgent)\nBrowser.isAndroid = /Android/i.test(navigator.userAgent)\nBrowser.isWindowsPhone = /Windows Phone/i.test(navigator.userAgent)\nBrowser.isWin8App = /MSAppHost/i.test(navigator.userAgent)\nBrowser.isWiiU = /WiiU/i.test(navigator.userAgent)\nBrowser.isPS4 = /PlayStation 4/i.test(navigator.userAgent)\nBrowser.hasLocalstorage = hasLocalstorage()\nBrowser.hasFlash = hasFlash()\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.name instead.\n*/\nBrowser.name = browserInfo.name\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.fullVersion instead.\n*/\nBrowser.version = browserInfo.version\n\nBrowser.userAgent = navigator.userAgent\nBrowser.data = getBrowserData()\nBrowser.os = getOsData()\nBrowser.viewport = getViewportSize()\nBrowser.device = getDevice(Browser.userAgent)\ntypeof window.orientation !== 'undefined' && setViewportOrientation()\n\nexport default Browser\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');","var anObject = require('./_an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst BROWSER_DATA = [{\n name: 'Chromium',\n group: 'Chrome',\n identifier: 'Chromium/([0-9\\.]*)'\n}, {\n name: 'Chrome Mobile',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*) Mobile',\n versionIdentifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome for iOS',\n group: 'Chrome',\n identifier: 'CriOS/([0-9\\.]*)'\n}, {\n name: 'Android Browser',\n group: 'Chrome',\n identifier: 'CrMo/([0-9\\.]*)'\n}, {\n name: 'Firefox',\n group: 'Firefox',\n identifier: 'Firefox/([0-9\\.]*)'\n}, {\n name: 'Opera Mini',\n group: 'Opera',\n identifier: 'Opera Mini/([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera ([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}, {\n name: 'IEMobile',\n group: 'Explorer',\n identifier: 'IEMobile/([0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'MSIE ([a-zA-Z0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'Trident/([0-9\\.]*)',\n versionIdentifier: 'rv:([0-9\\.]*)'\n}, {\n name: 'Spartan',\n group: 'Spartan',\n identifier: 'Edge/([0-9\\.]*)',\n versionIdentifier: 'Edge/([0-9\\.]*)'\n}, {\n name: 'Safari',\n group: 'Safari',\n identifier: 'Safari/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}]\n\nexport default BROWSER_DATA\n","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst OS_DATA = [{\n name: 'Windows 2000',\n group: 'Windows',\n identifier: 'Windows NT 5.0',\n version: '5.0'\n}, {\n name: 'Windows XP',\n group: 'Windows',\n identifier: 'Windows NT 5.1',\n version: '5.1'\n}, {\n name: 'Windows Vista',\n group: 'Windows',\n identifier: 'Windows NT 6.0',\n version: '6.0'\n}, {\n name: 'Windows 7',\n group: 'Windows',\n identifier: 'Windows NT 6.1',\n version: '7.0'\n}, {\n name: 'Windows 8',\n group: 'Windows',\n identifier: 'Windows NT 6.2',\n version: '8.0'\n}, {\n name: 'Windows 8.1',\n group: 'Windows',\n identifier: 'Windows NT 6.3',\n version: '8.1'\n}, {\n name: 'Windows 10',\n group: 'Windows',\n identifier: 'Windows NT 10.0',\n version: '10.0'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone ([0-9\\.]*)'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone OS ([0-9\\.]*)'\n}, {\n name: 'Windows',\n group: 'Windows',\n identifier: 'Windows'\n}, {\n name: 'Chrome OS',\n group: 'Chrome OS',\n identifier: 'CrOS'\n}, {\n name: 'Android',\n group: 'Android',\n identifier: 'Android',\n versionIdentifier: 'Android ([a-zA-Z0-9\\.-]*)'\n}, {\n name: 'iPad',\n group: 'iOS',\n identifier: 'iPad',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPod',\n group: 'iOS',\n identifier: 'iPod',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPhone',\n group: 'iOS',\n identifier: 'iPhone OS',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X High Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])13([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])12([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X El Capitan',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])11([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Yosemite',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])10([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mavericks',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])9([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mountain Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])8([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])7([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Snow Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])6([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])5([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Tiger',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])4([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Panther',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])3([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Jaguar',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])2([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Puma',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])1([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Cheetah',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])0([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS',\n group: 'Mac OS',\n identifier: 'Mac OS'\n}, {\n name: 'Ubuntu',\n group: 'Linux',\n identifier: 'Ubuntu',\n versionIdentifier: 'Ubuntu/([0-9\\.]*)'\n}, {\n name: 'Debian',\n group: 'Linux',\n identifier: 'Debian'\n}, {\n name: 'Gentoo',\n group: 'Linux',\n identifier: 'Gentoo'\n}, {\n name: 'Linux',\n group: 'Linux',\n identifier: 'Linux'\n}, {\n name: 'BlackBerry',\n group: 'BlackBerry',\n identifier: 'BlackBerry'\n}]\n\nexport default OS_DATA\n","// https://github.com/mathiasbynens/small\nexport const mp4 = 'data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE='\n\nexport default {\n mp4: mp4,\n}\n","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n","import CoreFactory from './core_factory'\nexport default CoreFactory\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin)\n this.core[key] = externalFunctions[key].bind(plugin)\n }\n\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Styler from '../../base/styler'\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\nimport PlayerError from '../../components/error'\nimport ErrorMixin from '../../base/error_mixin'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'onMouseMove',\n 'mouseleave': 'onMouseLeave'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n /**\n * @deprecated\n * This property currently exists for retrocompatibility reasons.\n * If you want to access the media control instance, use the method getPlugin('media_control').\n */\n get mediaControl() {\n return this.getPlugin('media_control') || this.dummyMediaControl\n }\n\n get dummyMediaControl() {\n if (this._dummyMediaControl) return this._dummyMediaControl\n this._dummyMediaControl = new UICorePlugin(this)\n return this._dummyMediaControl\n }\n\n /**\n * gets the active container reference.\n * @property activeContainer\n * @type {Object}\n */\n get activeContainer() {\n return this._activeContainer\n }\n\n /**\n * sets the active container reference and trigger a event with the new reference.\n * @property activeContainer\n * @type {Object}\n */\n set activeContainer(container) {\n this._activeContainer = container\n this.trigger(Events.CORE_ACTIVE_CONTAINER_CHANGED, this._activeContainer)\n }\n\n /**\n * gets the active playback reference.\n * @property activePlayback\n * @type {Object}\n */\n get activePlayback() {\n return this.activeContainer && this.activeContainer.playback\n }\n\n constructor(options) {\n super(options)\n this.playerError = new PlayerError(options, this)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo\n DomRecycler.configure({ recycleVideo })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n, this.playerError)\n this.prepareContainers()\n }\n\n prepareContainers() {\n this.containerFactory.createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n this.isFullscreen() ? this.setFullscreen() : this.setPlayerSize()\n }\n\n setFullscreen() {\n if (!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.playerInfo.computedSize = newSize\n this.firstResize = false\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.trigger(Events.CORE_RESIZE, newSize)\n }\n }\n\n disableResizeObserver() {\n this.resizeObserverInterval && clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.options.sources = sources\n this.containers.forEach((container) => container.destroy())\n this.containerFactory.options = $.extend(this.options, { sources })\n this.prepareContainers()\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n this.stopListening()\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, this.isFullscreen())\n this.updateSize()\n }\n\n handleWindowResize(event) {\n const orientation = (window.innerWidth > window.innerHeight) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n setupContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.forEach(this.setupContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.activeContainer = containers[0]\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.forEach((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.setupContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current container reference, use the activeContainer getter.\n */\n getCurrentContainer() {\n return this.activeContainer\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current playback reference, use the activePlayback getter.\n */\n getCurrentPlayback() {\n return this.activePlayback\n }\n\n getPlaybackType() {\n return this.activeContainer && this.activeContainer.getPlaybackType()\n }\n\n isFullscreen() {\n return Fullscreen.getFullscreenElement() === (Browser.isiOS ? this.activeContainer.el : this.el)\n }\n\n toggleFullscreen() {\n if (this.isFullscreen()) {\n Fullscreen.cancelFullscreen()\n !Browser.isiOS && this.$el.removeClass('fullscreen nocursor')\n } else {\n Fullscreen.requestFullscreen(Browser.isiOS ? this.activeContainer.el : this.el)\n !Browser.isiOS && this.$el.addClass('fullscreen')\n }\n }\n\n onMouseMove(event) {\n this.trigger(Events.CORE_MOUSE_MOVE, event)\n }\n\n onMouseLeave(event) {\n this.trigger(Events.CORE_MOUSE_LEAVE, event)\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n\n const sources = options.source || options.sources\n sources && this.load(sources, options.mimeType || this.options.mimeType)\n\n this.trigger(Events.CORE_OPTIONS_CHANGE, options) // Trigger with newly provided options\n this.containers.forEach((container) => container.configure(this.options))\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\nObject.assign(Core.prototype, ErrorMixin)\n","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n this.playerError = playerError\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n, this.playerError)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n, this.playerError)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport ErrorMixin from '../../base/error_mixin'\nimport { DoubleEventHandler } from '../../base/utils'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'touchend': 'dblTap',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.playerError = playerError\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.dblTapHandler = new DoubleEventHandler(500)\n this.clickTimer = null\n this.clickDelay = 200 // FIXME: could be a player option\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.onProgress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(error) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, error, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n onProgress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n // The event is delayed because it can be canceled by a double-click event\n // An example of use is to prevent playback from pausing when switching to full screen\n this.clickTimer = setTimeout(() => {\n this.clickTimer && this.trigger(Events.CONTAINER_CLICK, this, this.name)\n }, this.clickDelay)\n }\n }\n\n cancelClicked() {\n clearTimeout(this.clickTimer)\n this.clickTimer = null\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.cancelClicked()\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n }\n }\n\n dblTap(evt) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.dblTapHandler.handle(evt, () => {\n this.cancelClicked()\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n })\n }\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.playback.configure(this.options)\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\nObject.assign(Container.prototype, ErrorMixin)\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".container[data-container] {\\n position: absolute;\\n background-color: black;\\n height: 100%;\\n width: 100%;\\n max-width: 100%; }\\n .container[data-container] .chromeless {\\n cursor: default; }\\n\\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-player] {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n position: relative;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-style: normal;\\n font-weight: normal;\\n text-align: center;\\n overflow: hidden;\\n font-size: 100%;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-shadow: 0 0 0;\\n box-sizing: border-box; }\\n [data-player] div, [data-player] span, [data-player] applet, [data-player] object, [data-player] iframe,\\n [data-player] h1, [data-player] h2, [data-player] h3, [data-player] h4, [data-player] h5, [data-player] h6, [data-player] p, [data-player] blockquote, [data-player] pre,\\n [data-player] a, [data-player] abbr, [data-player] acronym, [data-player] address, [data-player] big, [data-player] cite, [data-player] code,\\n [data-player] del, [data-player] dfn, [data-player] em, [data-player] img, [data-player] ins, [data-player] kbd, [data-player] q, [data-player] s, [data-player] samp,\\n [data-player] small, [data-player] strike, [data-player] strong, [data-player] sub, [data-player] sup, [data-player] tt, [data-player] var,\\n [data-player] b, [data-player] u, [data-player] i, [data-player] center,\\n [data-player] dl, [data-player] dt, [data-player] dd, [data-player] ol, [data-player] ul, [data-player] li,\\n [data-player] fieldset, [data-player] form, [data-player] label, [data-player] legend,\\n [data-player] table, [data-player] caption, [data-player] tbody, [data-player] tfoot, [data-player] thead, [data-player] tr, [data-player] th, [data-player] td,\\n [data-player] article, [data-player] aside, [data-player] canvas, [data-player] details, [data-player] embed,\\n [data-player] figure, [data-player] figcaption, [data-player] footer, [data-player] header, [data-player] hgroup,\\n [data-player] menu, [data-player] nav, [data-player] output, [data-player] ruby, [data-player] section, [data-player] summary,\\n [data-player] time, [data-player] mark, [data-player] audio, [data-player] video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font: inherit;\\n font-size: 100%;\\n vertical-align: baseline; }\\n [data-player] table {\\n border-collapse: collapse;\\n border-spacing: 0; }\\n [data-player] caption, [data-player] th, [data-player] td {\\n text-align: left;\\n font-weight: normal;\\n vertical-align: middle; }\\n [data-player] q, [data-player] blockquote {\\n quotes: none; }\\n [data-player] q:before, [data-player] q:after, [data-player] blockquote:before, [data-player] blockquote:after {\\n content: \\\"\\\";\\n content: none; }\\n [data-player] a img {\\n border: none; }\\n [data-player]:focus {\\n outline: 0; }\\n [data-player] * {\\n max-width: none;\\n box-sizing: inherit;\\n float: none; }\\n [data-player] div {\\n display: block; }\\n [data-player].fullscreen {\\n width: 100% !important;\\n height: 100% !important;\\n top: 0;\\n left: 0; }\\n [data-player].nocursor {\\n cursor: none; }\\n\\n.clappr-style {\\n display: none !important; }\\n\", \"\"]);\n\n// exports\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: local(\\\"Roboto\\\"), local(\\\"Roboto-Regular\\\"), url(\" + escape(require(\"./Roboto.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\", \"\"]);\n\n// exports\n","module.exports = \"<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport PlayerInfo from '../player_info'\n\n/* Playback Plugins */\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport FlashVideoPlayback from '../../playbacks/flash'\nimport HTML5AudioPlayback from '../../playbacks/html5_audio'\nimport FlasHLSVideoPlayback from '../../playbacks/flashls'\nimport HLSVideoPlayback from '../../playbacks/hls'\nimport HTMLImgPlayback from '../../playbacks/html_img'\nimport NoOp from '../../playbacks/no_op'\n\n/* Container Plugins */\nimport SpinnerThreeBouncePlugin from '../../plugins/spinner_three_bounce'\nimport StatsPlugin from '../../plugins/stats'\nimport WaterMarkPlugin from '../../plugins/watermark'\nimport PosterPlugin from '../../plugins/poster'\nimport GoogleAnalyticsPlugin from '../../plugins/google_analytics'\nimport ClickToPausePlugin from '../../plugins/click_to_pause'\n\n/* Core Plugins */\nimport MediaControl from '../../plugins/media_control'\nimport DVRControls from '../../plugins/dvr_controls'\nimport ClosedCaptions from '../../plugins/closed_captions'\nimport Favicon from '../../plugins/favicon'\nimport SeekTime from '../../plugins/seek_time'\nimport SourcesPlugin from '../../plugins/sources'\nimport EndVideo from '../../plugins/end_video'\nimport Strings from '../../plugins/strings'\nimport ErrorScreen from '../../plugins/error_screen'\n\n/**\n * It keeps a list of the default plugins (playback, container, core) and it merges external plugins with its internals.\n * @class Loader\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class Loader extends BaseObject {\n /**\n * builds the loader\n * @method constructor\n * @param {Object} externalPlugins the external plugins\n * @param {Number} playerId you can embed multiple instances of clappr, therefore this is the unique id of each one.\n */\n constructor(externalPlugins = [], playerId = 0, useOnlyPlainHtml5Plugins = PLAIN_HTML5_ONLY) {\n super()\n this.playerId = playerId\n this.playbackPlugins = []\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HLSVideoPlayback,\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTML5VideoPlayback,\n HTML5AudioPlayback,\n ]\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n FlashVideoPlayback,\n FlasHLSVideoPlayback\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTMLImgPlayback,\n NoOp\n ]\n\n this.containerPlugins = [SpinnerThreeBouncePlugin, WaterMarkPlugin, PosterPlugin, StatsPlugin, GoogleAnalyticsPlugin, ClickToPausePlugin]\n this.corePlugins = [MediaControl, DVRControls, ClosedCaptions, Favicon, SeekTime, SourcesPlugin, EndVideo, ErrorScreen, Strings]\n\n if (!Array.isArray(externalPlugins))\n this.validateExternalPluginsType(externalPlugins)\n\n this.addExternalPlugins(externalPlugins)\n }\n\n /**\n * groups by type the external plugins that were passed through `options.plugins` it they're on a flat array\n * @method addExternalPlugins\n * @private\n * @param {Object} an config object or an array of plugins\n * @return {Object} plugins the config object with the plugins separated by type\n */\n groupPluginsByType(plugins) {\n if (Array.isArray(plugins)) {\n plugins = plugins.reduce(function(memo, plugin) {\n memo[plugin.type] || (memo[plugin.type] = [])\n memo[plugin.type].push(plugin)\n return memo\n }, {})\n }\n return plugins\n }\n\n removeDups(list) {\n const groupUp = (plugins, plugin) => {\n plugins[plugin.prototype.name] && delete plugins[plugin.prototype.name]\n plugins[plugin.prototype.name] = plugin\n return plugins\n }\n const pluginsMap = list.reduceRight(groupUp, Object.create(null))\n\n const plugins = []\n for (let key in pluginsMap)\n plugins.unshift(pluginsMap[key])\n\n return plugins\n }\n\n /**\n * adds all the external plugins that were passed through `options.plugins`\n * @method addExternalPlugins\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n addExternalPlugins(plugins) {\n plugins = this.groupPluginsByType(plugins)\n if (plugins.playback)\n this.playbackPlugins = this.removeDups(plugins.playback.concat(this.playbackPlugins))\n\n if (plugins.container)\n this.containerPlugins = this.removeDups(plugins.container.concat(this.containerPlugins))\n\n if (plugins.core)\n this.corePlugins = this.removeDups(plugins.core.concat(this.corePlugins))\n\n\n PlayerInfo.getInstance(this.playerId).playbackPlugins = this.playbackPlugins\n }\n\n /**\n * validate if the external plugins that were passed through `options.plugins` are associated to the correct type\n * @method validateExternalPluginsType\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n validateExternalPluginsType(plugins) {\n const plugintypes = ['playback', 'container', 'core']\n plugintypes.forEach((type) => {\n (plugins[type] || []).forEach((el) => {\n const errorMessage = 'external ' + el.type + ' plugin on ' + type + ' array'\n if (el.type !== type) throw new ReferenceError(errorMessage)\n })\n })\n }\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, seekStringToSeconds, DomRecycler, canAutoPlayMedia } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport Events from '../../base/events'\nimport Log from '../../plugins/log'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\nconst UNKNOWN_ERROR = { code: 'unknown', message: 'unknown' }\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n this.options.autoPlay && this.attemptAutoPlay()\n }\n\n configure(options) {\n super.configure(options)\n this.el.loop = !!options.loop\n }\n\n // See Playback.attemptAutoPlay()\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => {\n error && Log.warn(this.name, 'autoplay error.', { result, error })\n\n // https://github.com/clappr/clappr/issues/1076\n result && process.nextTick(() => !this._destroyed && this.play())\n })\n }\n\n // See Playback.canAutoPlay()\n canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay)\n cb(true, null)\n\n let opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false, // Known issue: mediacontrols may asynchronously mute video\n }\n\n // Use current video element if recycling feature enabled with mobile devices\n if (Browser.isMobile && DomRecycler.options.recycleVideo)\n opts.element = this.el\n\n // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n canAutoPlayMedia(cb, opts)\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n if (!this.isPlaying()) {\n super.consent()\n this.el.load()\n }\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n this.el.volume = value / 100\n }\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return this.el.muted === true || this.el.volume === 0\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n const { code, message } = this.el.error || UNKNOWN_ERROR\n const isUnknownError = code === UNKNOWN_ERROR.code\n\n const formattedError = this.createError({\n code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n })\n\n if (isUnknownError)\n Log.warn(this.name, 'HTML5 unknown error: ', formattedError)\n else\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n super.destroy()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n \\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html5-video] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n display: block; }\\n\", \"\"]);\n\n// exports\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html-img] {\\n max-width: 100%;\\n max-height: 100%; }\\n\", \"\"]);\n\n// exports\n","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for (let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n","module.exports = \" \\n<%=message%>
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-no-op] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n\\n[data-no-op] p[data-no-op-msg] {\\n position: absolute;\\n text-align: center;\\n font-size: 25px;\\n left: 0;\\n right: 0;\\n color: white;\\n padding: 10px;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n max-height: 100%;\\n overflow: auto; }\\n\\n[data-no-op] canvas[data-no-op-canvas] {\\n background-color: #777;\\n height: 100%;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-three-bounce[data-spinner] {\\n position: absolute;\\n margin: 0 auto;\\n width: 70px;\\n text-align: center;\\n z-index: 999;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%); }\\n .spinner-three-bounce[data-spinner] > div {\\n width: 18px;\\n height: 18px;\\n background-color: #FFFFFF;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: bouncedelay 1.4s infinite ease-in-out;\\n animation: bouncedelay 1.4s infinite ease-in-out;\\n /* Prevent first frame from flickering when animation starts */\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both; }\\n .spinner-three-bounce[data-spinner] [data-bounce1] {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s; }\\n .spinner-three-bounce[data-spinner] [data-bounce2] {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s; }\\n\\n@-webkit-keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\\n@keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\", \"\"]);\n\n// exports\n","import StatsPlugin from './stats'\nexport default StatsPlugin\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n","module.exports = \"\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".clappr-watermark[data-watermark] {\\n position: absolute;\\n min-width: 70px;\\n max-width: 200px;\\n width: 12%;\\n text-align: center;\\n z-index: 10; }\\n\\n.clappr-watermark[data-watermark] a {\\n outline: none;\\n cursor: pointer; }\\n\\n.clappr-watermark[data-watermark] img {\\n max-width: 100%; }\\n\\n.clappr-watermark[data-watermark-bottom-left] {\\n bottom: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-bottom-right] {\\n bottom: 10px;\\n right: 42px; }\\n\\n.clappr-watermark[data-watermark-top-left] {\\n top: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-top-right] {\\n top: 10px;\\n right: 37px; }\\n\", \"\"]);\n\n// exports\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport PlayerError from '../../components/error/error'\nimport posterHTML from './public/poster.html'\nimport playIcon from '../../icons/01-play.svg'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.showPlayButton()\n }\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction))\n this.showPlayButton()\n else\n this.hidePlayButton()\n }\n\n showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return\n\n this.$playButton.show()\n this.$el.addClass('clickable')\n }\n\n hidePlayButton() {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n\n clicked() {\n // Let \"click_to_pause\" plugin handle click event if media has started playing\n if (! this.hasStartedPlaying) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.updatePlayButton(showPlayButton)\n this.updatePoster()\n }\n\n updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster()\n else this.hidePoster()\n }\n\n showPoster() {\n this.container.disableMediaControl()\n this.$el.show()\n }\n\n hidePoster() {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(playIcon)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n","module.exports = \"
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".player-poster[data-poster] {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n z-index: 998;\\n top: 0;\\n left: 0;\\n background-color: #000;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: 50% 50%; }\\n .player-poster[data-poster].clickable {\\n cursor: pointer; }\\n .player-poster[data-poster]:hover .play-wrapper[data-poster] {\\n opacity: 1; }\\n .player-poster[data-poster] .play-wrapper[data-poster] {\\n width: 100%;\\n height: 25%;\\n margin: 0 auto;\\n opacity: 0.75;\\n transition: opacity 0.1s ease; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg {\\n height: 100%; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg path {\\n fill: #fff; }\\n\", \"\"]);\n\n// exports\n","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady() {\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\n\nimport Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\n\nimport $ from 'clappr-zepto'\n\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\nimport stopIcon from '../../icons/03-stop.svg'\nimport volumeIcon from '../../icons/04-volume.svg'\nimport volumeMuteIcon from '../../icons/05-mute.svg'\nimport fullscreenIcon from '../../icons/06-expand.svg'\nimport exitFullscreenIcon from '../../icons/07-shrink.svg'\nimport hdIcon from '../../icons/08-hd.svg'\n\nexport default class MediaControl extends UICorePlugin {\n get name() { return 'media_control' }\n get disabled() {\n let playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP\n return this.userDisabled || playbackIsNOOP\n }\n\n get container() { return this.core && this.core.activeContainer }\n\n get playback() { return this.core && this.core.activePlayback }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(core) {\n super(core)\n this.persistConfig = this.options.persistConfig\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n this.kibo = new Kibo(this.options.focusElement)\n this.bindKeyEvents()\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n } else {\n this.settings = {}\n }\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n getExternalInterface() {\n return {\n setVolume: this.setVolume,\n getVolume: () => this.volume,\n }\n }\n\n bindEvents() {\n this.stopListening()\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged)\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show)\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay))\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindContainerEvents()\n }\n\n bindContainerEvents() {\n if (!this.container) return\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.unbindKeyEvents()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.bindKeyEvents()\n this.show()\n }\n\n play() {\n this.container && this.container.play()\n }\n\n pause() {\n this.container && this.container.pause()\n }\n\n stop() {\n this.container && this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.playback && this.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return\n\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) {\n this.$volumeIcon.append(volumeIcon)\n } else {\n this.$volumeIcon.append(volumeMuteIcon)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon)\n this.$playStopToggle.append(stopIcon)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n Browser.isMobile && this.show()\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n let icon = this.core.isFullscreen() ? exitFullscreenIcon : fullscreenIcon\n this.$fullscreenToggle.append(icon)\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320')\n }\n\n togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play()\n return false\n }\n\n togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play()\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n event && event.preventDefault()\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n event && event.preventDefault()\n }\n\n stopDrag(event) {\n this.draggingSeekBar && this.seek(event)\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n this.setVolume(this.muted ? 100 : 0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container && this.container.isReady) {\n this.container.setVolume(value)\n } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container)\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady())\n else\n setWhenContainerReady()\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.core.toggleFullscreen()\n this.resetUserKeepVisible()\n }\n\n onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null\n this.bindEvents()\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n // set the new container to match the volume of the last one\n this.setInitialVolume()\n this.changeTogglePlay()\n this.bindContainerEvents()\n this.settingsUpdate()\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n this.container && this.container.mediaControlDisabled && this.disable()\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout)\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse()))\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container && this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled) return\n\n const timeout = 2000\n let mousePointerMoved = event && (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY)\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n const showing = true\n this.updateCursorStyle(showing)\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false) return\n\n let hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible\n let hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n const showing = false\n this.updateCursorStyle(showing)\n }\n }\n\n updateCursorStyle(showing) {\n if (showing)\n this.core.$el.removeClass('nocursor')\n else if (this.core.isFullscreen())\n this.core.$el.addClass('nocursor')\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container && this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(playIcon)\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon)\n $layer.find('button.media-control-button[data-stop]').append(stopIcon)\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.$volumeIcon.append(volumeIcon)\n this.$fullscreenToggle.append(fullscreenIcon)\n this.$hdIndicator.append(hdIcon)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n // not changed since last update\n if (this.displayedSeekBarPercentage === value) return\n\n this.displayedSeekBarPercentage = value\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, callback) {\n this.kibo.down(key, () => {\n this.show()\n return callback()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement)\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => {\n this.bindKeyAndShow(i, () => {\n this.settings.seekEnabled && this.container && this.container.seekPercentage(i * 10)\n })\n })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor)\n }\n\n destroy() {\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\n super.destroy()\n }\n\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n // Check if chromeless mode or if configure is called with new source(s)\n if (this.options.chromeless || options.source || options.sources)\n this.disable()\n else\n this.enable()\n\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = this.options.hideMediaControlDelay || 2000\n this.settings && this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n\n if (this.container) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n this.disabled && this.hide()\n }\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n !this.settings.seekEnabled && this.$seekBarContainer.addClass('seek-disabled')\n !Browser.isMobile && !this.options.disableKeyboardShortcuts && this.bindKeyEvents()\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.core.$el.append(this.el)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","var core = require('../../modules/_core')\n , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".media-control-notransition {\\n transition: none !important; }\\n\\n.media-control[data-media-control] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n pointer-events: none; }\\n .media-control[data-media-control].dragging {\\n pointer-events: auto;\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control].dragging * {\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control] .media-control-background[data-background] {\\n position: absolute;\\n height: 40%;\\n width: 100%;\\n bottom: 0;\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\\n transition: opacity 0.6s ease-out; }\\n .media-control[data-media-control] .media-control-icon {\\n line-height: 0;\\n letter-spacing: 0;\\n speak: none;\\n color: #fff;\\n opacity: 0.5;\\n vertical-align: middle;\\n text-align: left;\\n transition: all 0.1s ease; }\\n .media-control[data-media-control] .media-control-icon:hover {\\n color: white;\\n opacity: 0.75;\\n text-shadow: rgba(255, 255, 255, 0.8) 0 0 5px; }\\n .media-control[data-media-control].media-control-hide .media-control-background[data-background] {\\n opacity: 0; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] {\\n bottom: -50px; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] {\\n position: absolute;\\n bottom: 7px;\\n width: 100%;\\n height: 32px;\\n font-size: 0;\\n vertical-align: middle;\\n pointer-events: auto;\\n transition: bottom 0.4s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n left: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control] {\\n height: 100%;\\n text-align: center;\\n line-height: 32px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n right: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button {\\n background-color: transparent;\\n border: 0;\\n margin: 0 6px;\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n width: 32px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg {\\n width: 100%;\\n height: 22px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus {\\n outline: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen] {\\n float: right;\\n background-color: transparent;\\n border: 0;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator] {\\n background-color: transparent;\\n border: 0;\\n cursor: default;\\n display: none;\\n float: right;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled {\\n display: block;\\n opacity: 1.0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position], .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n display: inline-block;\\n font-size: 10px;\\n color: white;\\n cursor: default;\\n line-height: 32px;\\n position: relative; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position] {\\n margin: 0 6px 0 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n color: rgba(255, 255, 255, 0.5);\\n margin-right: 6px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] {\\n position: absolute;\\n top: -20px;\\n left: 0;\\n display: inline-block;\\n vertical-align: middle;\\n width: 100%;\\n height: 25px;\\n cursor: pointer; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] {\\n width: 100%;\\n height: 1px;\\n position: relative;\\n top: 12px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled {\\n cursor: default; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 2px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] {\\n float: right;\\n display: inline-block;\\n height: 32px;\\n cursor: pointer;\\n margin: 0 6px;\\n box-sizing: border-box; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] {\\n float: left;\\n bottom: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] {\\n background-color: transparent;\\n border: 0;\\n box-sizing: content-box;\\n width: 32px;\\n height: 32px;\\n opacity: 0.5; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover {\\n opacity: 0.75; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg {\\n height: 24px;\\n position: relative;\\n top: 3px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg {\\n margin-left: 2px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] {\\n float: left;\\n position: relative;\\n overflow: hidden;\\n top: 6px;\\n width: 42px;\\n height: 18px;\\n padding: 3px 0;\\n transition: width .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] {\\n height: 1px;\\n position: relative;\\n top: 7px;\\n margin: 0 3px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 0px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume] {\\n float: left;\\n width: 4px;\\n padding-left: 2px;\\n height: 12px;\\n opacity: 0.5;\\n box-shadow: inset 2px 0 0 white;\\n transition: -webkit-transform .2s ease-out;\\n transition: transform .2s ease-out;\\n transition: transform .2s ease-out, -webkit-transform .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill {\\n box-shadow: inset 2px 0 0 #fff;\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:nth-of-type(1) {\\n padding-left: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover {\\n -webkit-transform: scaleY(1.5);\\n transform: scaleY(1.5); }\\n .media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide {\\n width: 0;\\n height: 12px;\\n top: 9px;\\n padding: 0; }\\n\", \"\"]);\n\n// exports\n","module.exports = \"
\\n\\n\";","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","module.exports = \" \"","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n","module.exports = \"<%= live %>
\\n\\\"><%= backToLive %> \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dvr-controls[data-dvr-controls] {\\n display: inline-block;\\n float: left;\\n color: #fff;\\n line-height: 32px;\\n font-size: 10px;\\n font-weight: bold;\\n margin-left: 6px; }\\n .dvr-controls[data-dvr-controls] .live-info {\\n cursor: default;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase; }\\n .dvr-controls[data-dvr-controls] .live-info:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #ff0101; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled {\\n opacity: 0.3; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled:before {\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button {\\n cursor: pointer;\\n outline: none;\\n display: none;\\n border: 0;\\n color: #fff;\\n background-color: transparent;\\n height: 32px;\\n padding: 0;\\n opacity: 0.7;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase;\\n transition: all 0.1s ease; }\\n .dvr-controls[data-dvr-controls] .live-button:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button:hover {\\n opacity: 1;\\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-info {\\n display: none; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-button {\\n display: block; }\\n\\n.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #005aff; }\\n\\n.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #ff0101; }\\n\", \"\"]);\n\n// exports\n","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport ccIcon from '../../icons/09-cc.svg'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(ccIcon)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n","module.exports = \" \"","module.exports = \"\\\"> \\n\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".cc-controls[data-cc-controls] {\\n float: right;\\n position: relative;\\n display: none; }\\n .cc-controls[data-cc-controls].available {\\n display: block; }\\n .cc-controls[data-cc-controls] .cc-button {\\n padding: 6px !important; }\\n .cc-controls[data-cc-controls] .cc-button.enabled {\\n display: block;\\n opacity: 1.0; }\\n .cc-controls[data-cc-controls] .cc-button.enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .cc-controls[data-cc-controls] > ul {\\n list-style-type: none;\\n position: absolute;\\n bottom: 25px;\\n border: 1px solid black;\\n display: none;\\n background-color: #e6e6e6; }\\n .cc-controls[data-cc-controls] li {\\n font-size: 10px; }\\n .cc-controls[data-cc-controls] li[data-title] {\\n background-color: #c3c2c2;\\n padding: 5px; }\\n .cc-controls[data-cc-controls] li a {\\n color: #444;\\n padding: 2px 10px;\\n display: block;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li a:hover {\\n background-color: #555;\\n color: white; }\\n .cc-controls[data-cc-controls] li a:hover a {\\n color: white;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li.current a {\\n color: #f00; }\\n\", \"\"]);\n\n// exports\n","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.core.activeContainer && this.containerChanged()\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.activeContainer\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $(' ')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $(' ')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(playIcon)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(pauseIcon)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n","import SeekTime from './seek_time'\nexport default SeekTime\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n","module.exports = \" \\n \\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".seek-time[data-seek-time] {\\n position: absolute;\\n white-space: nowrap;\\n height: 20px;\\n line-height: 20px;\\n font-size: 0;\\n left: -100%;\\n bottom: 55px;\\n background-color: rgba(2, 2, 2, 0.5);\\n z-index: 9999;\\n transition: opacity 0.1s ease; }\\n .seek-time[data-seek-time].hidden[data-seek-time] {\\n opacity: 0; }\\n .seek-time[data-seek-time] [data-seek-time] {\\n display: inline-block;\\n color: white;\\n font-size: 10px;\\n padding-left: 7px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration] {\\n display: inline-block;\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 10px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n\", \"\"]);\n\n// exports\n","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && this.core.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const fallbackLang = this._messages['en']\n const i18n = lang && this._messages[lang] || fallbackLang\n return i18n[key] || fallbackLang[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.',\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.',\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.',\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.',\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.',\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.',\n },\n 'ar': {\n 'live': 'مباشر',\n 'back_to_live': 'الرجوع إلى المباشر',\n 'disabled': 'معطّل',\n 'playback_not_supported': 'المتصفح الذي تستخدمه لا يدعم تشغيل هذا الفيديو. الرجاء إستخدام متصفح آخر.',\n 'default_error_title': 'غير قادر الى التشغيل.',\n 'default_error_message': 'حدثت مشكلة أثناء تحميل الفيديو.',\n },\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n this._messages['ar-IQ'] = this._messages['ar']\n }\n}\n","import ErrorScreen from './error_screen'\nexport default ErrorScreen\n","import Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport PlayerError from '../../components/error/'\n\nimport reloadIcon from '../../icons/10-reload.svg'\nimport templateHtml from './public/error_screen.html'\nimport './public/error_screen.scss'\n\nexport default class ErrorScreen extends UICorePlugin {\n get name() { return 'error_screen' }\n get template() { return template(templateHtml) }\n get container() { return this.core.getCurrentContainer() }\n get attributes() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': '',\n }\n }\n\n constructor(core) {\n super(core)\n\n if (this.options.disableErrorScreen) return this.disable()\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged)\n }\n\n bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload')\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this))\n }\n\n reload() {\n this.listenToOnce(this.core, Events.CORE_READY, () => this.container.play())\n this.core.load(this.options.sources, this.options.mimeType)\n this.unbindReload()\n }\n\n unbindReload() {\n this.reloadButton && this.reloadButton.off('click')\n }\n\n onContainerChanged() {\n this.err = null\n this.unbindReload()\n this.hide()\n }\n\n onError(err = {}) {\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err\n this.container.disableMediaControl()\n this.container.stop()\n this.show()\n }\n }\n\n show() {\n this.render()\n this.$el.show()\n }\n\n hide() {\n this.$el.hide()\n }\n\n render() {\n if (!this.err) return\n\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon,\n }))\n\n this.core.$el.append(this.el)\n\n this.bindReload()\n\n return this\n }\n}\n","module.exports = \" \"","module.exports = \"\\n <% if (icon) { %>\\n
<%= icon %>
\\n <% } %>\\n
<%= title %>
\\n
<%= message %>
\\n
Error code: <%= code %>
\\n
<%= reloadIcon %>
\\n
\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div.player-error-screen {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n color: #CCCACA;\\n position: absolute;\\n top: 0;\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 2000;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n div.player-error-screen__content[data-error-screen] {\\n font-size: 14px;\\n color: #CCCACA;\\n margin-top: 45px; }\\n div.player-error-screen__title[data-error-screen] {\\n font-weight: bold;\\n line-height: 30px;\\n font-size: 18px; }\\n div.player-error-screen__message[data-error-screen] {\\n width: 90%;\\n margin: 0 auto; }\\n div.player-error-screen__code[data-error-screen] {\\n font-size: 13px;\\n margin-top: 15px; }\\n div.player-error-screen__reload {\\n cursor: pointer;\\n width: 30px;\\n margin: 15px auto 0; }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/clappr.plainhtml5.min.js b/dist/clappr.plainhtml5.min.js
index 6e3938edc..6d10b078d 100644
--- a/dist/clappr.plainhtml5.min.js
+++ b/dist/clappr.plainhtml5.min.js
@@ -1 +1 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Clappr=e():t.Clappr=e()}(window,function(){return e={},f.m=d=[function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var i,o=n(39),r=(i=o)&&i.__esModule?i:{default:i};e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,r.default)(e))&&"function"!=typeof e?t:e}},function(t,e,n){"use strict";e.__esModule=!0;var i=a(n(131)),o=a(n(76)),r=a(n(39));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,r.default)(e)));t.prototype=(0,o.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(i.default?(0,i.default)(t,e):t.__proto__=e)}},function(t,e,n){"use strict";e.__esModule=!0;var i,o=n(75),r=(i=o)&&i.__esModule?i:{default:i};function a(t,e){for(var n=0;n")},L.garbage=function(t){this.options.recycleVideo&&"VIDEO"===t[0].tagName.toUpperCase()&&(t.children().remove(),R.push(t))},L);function L(){(0,s.default)(this,L)}M.options={recycleVideo:!1};var D=e.DoubleEventHandler=(B.prototype.handle=function(t,e,n){var i=!(2]*>/,Xe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Ye=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ze=/^(?:body|html)$/i,$e=/([A-Z])/g,_e=["val","css","html","text","data","width","height","offset"],bf=Se.createElement("table"),cf=Se.createElement("tr"),df={tr:Se.createElement("tbody"),tbody:bf,thead:bf,tfoot:bf,td:cf,th:cf,"*":Se.createElement("div")},ef=/complete|loaded|interactive/,ff=/^[\w-]*$/,hf=(gf={}).toString,jf={},mf=Se.createElement("div"),nf={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},of=Array.isArray||function(t){return t instanceof Array},jf.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,o=t.parentNode,r=!o;return r&&(o=mf).appendChild(t),i=~jf.qsa(o,e).indexOf(t),r&&mf.removeChild(t),i},kf=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},lf=function(n){return Qe.call(n,function(t,e){return n.indexOf(t)==e})},jf.fragment=function(t,e,n){var i,o,r;return Xe.test(t)&&(i=Me(Se.createElement(RegExp.$1))),i||(t.replace&&(t=t.replace(Ye,"<$1>$2>")),e===Ke&&(e=We.test(t)&&RegExp.$1),e in df||(e="*"),(r=df[e]).innerHTML=""+t,i=Me.each(Re.call(r.childNodes),function(){r.removeChild(this)})),uf(n)&&(o=Me(i),Me.each(n,function(t,e){-1<_e.indexOf(t)?o[t](e):o.attr(t,e)})),i},jf.Z=function(t,e){return new Df(t,e)},jf.isZ=function(t){return t instanceof jf.Z},jf.init=function(t,e){var n;if(!t)return jf.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&We.test(t))n=jf.fragment(t,RegExp.$1,e),t=null;else{if(e!==Ke)return Me(e).find(t);n=jf.qsa(Se,t)}else{if(qf(t))return Me(Se).ready(t);if(jf.isZ(t))return t;if(of(t))n=function(t){return Qe.call(t,function(t){return null!=t})}(t);else if(tf(t))n=[t],t=null;else if(We.test(t))n=jf.fragment(t.trim(),RegExp.$1,e),t=null;else{if(e!==Ke)return Me(e).find(t);n=jf.qsa(Se,t)}}return jf.Z(n,t)},(Me=function(t,e){return jf.init(t,e)}).extend=function(e){var n,t=Re.call(arguments,1);return"boolean"==typeof e&&(n=e,e=t.shift()),t.forEach(function(t){!function t(e,n,i){for(Le in n)i&&(uf(n[Le])||of(n[Le]))?(uf(n[Le])&&!uf(e[Le])&&(e[Le]={}),of(n[Le])&&!of(e[Le])&&(e[Le]=[]),t(e[Le],n[Le],i)):n[Le]!==Ke&&(e[Le]=n[Le])}(e,t,n)}),e},jf.qsa=function(t,e){var n,i="#"==e[0],o=!i&&"."==e[0],r=i||o?e.slice(1):e,a=ff.test(r);return t.getElementById&&a&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:Re.call(a&&!i&&t.getElementsByClassName?o?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},Me.contains=Se.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},Me.type=pf,Me.isFunction=qf,Me.isWindow=rf,Me.isArray=of,Me.isPlainObject=uf,Me.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},Me.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},Me.inArray=function(t,e,n){return Oe.indexOf.call(e,t,n)},Me.camelCase=kf,Me.trim=function(t){return null==t?"":String.prototype.trim.call(t)},Me.uuid=0,Me.support={},Me.expr={},Me.noop=function(){},Me.map=function(t,e){var n,i,o,r=[];if(vf(t))for(i=0;i)<[^<]*)*<\/script>/gi,Ok=/^(?:text|application)\/javascript/i,Pk=/^(?:text|application)\/xml/i,Qk="application/json",Rk="text/html",Sk=/^\s*$/,Tk=Kk.createElement("a");function Vk(t,e,n,i){if(t.global)return function(t,e,n){var i=Ik.Event(e);return Ik(t).trigger(i,n),!i.isDefaultPrevented()}(e||Kk,n,i)}function Yk(t,e){var n=e.context;if(!1===e.beforeSend.call(n,t,e)||!1===Vk(e,n,"ajaxBeforeSend",[t,e]))return!1;Vk(e,n,"ajaxSend",[t,e])}function Zk(t,e,n,i){var o=n.context,r="success";n.success.call(o,t,r,e),i&&i.resolveWith(o,[t,r,e]),Vk(n,o,"ajaxSuccess",[e,n,t]),_k(r,e,n)}function $k(t,e,n,i,o){var r=i.context;i.error.call(r,n,e,t),o&&o.rejectWith(r,[n,e,t]),Vk(i,r,"ajaxError",[n,i,t||e]),_k(e,n,i)}function _k(t,e,n){var i=n.context;n.complete.call(i,e,t),Vk(n,i,"ajaxComplete",[e,n]),function(t){t.global&&!--Ik.active&&Vk(t,null,"ajaxStop")}(n)}function bl(){}function dl(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function fl(t,e,n,i){return Ik.isFunction(e)&&(i=n,n=e,e=void 0),Ik.isFunction(n)||(i=n,n=void 0),{url:t,data:e,success:n,dataType:i}}Tk.href=window.location.href,Ik.active=0,Ik.ajaxJSONP=function(n,i){if(!("type"in n))return Ik.ajax(n);function t(t){Ik(s).triggerHandler("error",t||"abort")}var o,r,e=n.jsonpCallback,a=(Ik.isFunction(e)?e():e)||"Zepto"+Jk++,s=Kk.createElement("script"),l=window[a],u={abort:t};return i&&i.promise(u),Ik(s).on("load error",function(t,e){clearTimeout(r),Ik(s).off().remove(),"error"!=t.type&&o?Zk(o[0],u,n,i):$k(null,e||"error",u,n,i),window[a]=l,o&&Ik.isFunction(l)&&l(o[0]),l=o=void 0}),!1===Yk(u,n)?t("abort"):(window[a]=function(){o=arguments},s.src=n.url.replace(/\?(.+)=\?/,"?$1="+a),Kk.head.appendChild(s),0").html(t.replace(Nk,"")).find(i):t),s&&s.apply(o,arguments)},Ik.ajax(a),this};var gl=encodeURIComponent;Ik.param=function(t,e){var n=[];return n.add=function(t,e){Ik.isFunction(e)&&(e=e()),null==e&&(e=""),this.push(gl(t)+"="+gl(e))},function n(i,t,o,r){var a,s=Ik.isArray(t),l=Ik.isPlainObject(t);Ik.each(t,function(t,e){a=Ik.type(e),r&&(t=o?r:r+"["+(l||"object"==a||"array"==a?t:"")+"]"),!r&&s?i.add(e.name,e.value):"array"==a||!o&&"object"==a?n(i,e,o,t):i.add(t,e)})}(n,t,e),n.join("&").replace(/%20/g,"+")}}(Je),(_m=Je).Callbacks=function(i){i=_m.extend({},i);var e,n,o,r,a,s,l=[],u=!i.once&&[],c=function(t){for(e=i.memory&&t,n=!0,s=r||0,r=0,a=l.length,o=!0;l&&s/,Sq="Zepto"+ +new Date,Lq.qsa=function(r,a){return Tq(a,function(t,n,i){try{var e;!t&&n?t="*":Rq.test(t)&&(e=Kq(r).addClass(Sq),t="."+Sq+" "+t);var o=Mq(r,t)}catch(t){throw console.error("error performing selector: %o",a),t}finally{e&&e.removeClass(Sq)}return n?Lq.uniq(Kq.map(o,function(t,e){return n.call(t,e,o,i)})):o})},Lq.matches=function(i,t){return Tq(t,function(t,e,n){return(!t||Nq(i,t))&&(!e||e.call(i,null,n)===i)})},He.exports=Je},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e){t.exports=function(n){var a=[];return a.toString=function(){return this.map(function(t){var e=function(t,e){var n=t[1]||"",i=t[3];if(!i)return n;if(e&&"function"==typeof btoa){var o=function(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}(i),r=i.sources.map(function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"});return[n].concat(r).concat([o]).join("\n")}return[n].join("\n")}(t,n);return t[2]?"@media "+t[2]+"{"+e+"}":e}).join("")},a.i=function(t,e){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},i=0;i/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},u=/(.)^/,c={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},d=/\\|'|\r|\n|\t|\u2028|\u2029/g,r={"&":"&","<":"<",">":">",'"':""","'":"'"},a=new RegExp("[&<>\"']","g"),f=0;i.settings=l,e.default=i,t.exports=e.default},function(t,e,n){t.exports={default:n(100),__esModule:!0}},function(t,e,n){var i=n(49)("wks"),o=n(36),r=n(16).Symbol,a="function"==typeof r;(t.exports=function(t){return i[t]||(i[t]=a&&r[t]||(a?r:o)("Symbol."+t))}).store=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=f(n(11)),o=f(n(0)),r=f(n(1)),a=f(n(3)),s=f(n(2)),l=n(5),u=f(n(29)),c=f(n(19)),d=f(n(6));function f(t){return t&&t.__esModule?t:{default:t}}var p,h=(p=u.default,(0,s.default)(A,p),(0,a.default)(A,[{key:"isAudioOnly",get:function(){return!1}},{key:"isAdaptive",get:function(){return!1}},{key:"ended",get:function(){return!1}},{key:"i18n",get:function(){return this._i18n}},{key:"buffering",get:function(){return!1}},{key:"consented",get:function(){return this._consented}}]),A.prototype.consent=function(){this._consented=!0},A.prototype.play=function(){},A.prototype.pause=function(){},A.prototype.stop=function(){},A.prototype.seek=function(t){},A.prototype.seekPercentage=function(t){},A.prototype.getStartTimeOffset=function(){return 0},A.prototype.getDuration=function(){return 0},A.prototype.isPlaying=function(){return!1},A.prototype.getPlaybackType=function(){return A.NO_OP},A.prototype.isHighDefinitionInUse=function(){return!1},A.prototype.volume=function(t){},A.prototype.configure=function(t){this._options=d.default.extend(this._options,t)},A.prototype.attemptAutoPlay=function(){var n=this;this.canAutoPlay(function(t,e){t&&n.play()})},A.prototype.canAutoPlay=function(t){t(!0,null)},(0,a.default)(A,[{key:"isReady",get:function(){return!1}},{key:"hasClosedCaptionsTracks",get:function(){return 0=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e){t.exports=!0},function(t,e,i){function o(){}var r=i(20),a=i(112),s=i(50),l=i(48)("IE_PROTO"),u="prototype",c=function(){var t,e=i(66)("iframe"),n=s.length;for(e.style.display="none",i(113).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("