All-in-One Video Gallery - Version 2.0.0

Version Description

  • New: Replaced "mediaelement.js" player with the "video.js" player library.
  • Fix: [+] few minor bug fixes.
Download this release

Release Info

Developer plugins360
Plugin Icon 128x128 All-in-One Video Gallery
Version 2.0.0
Comparing to
See all releases

Code changes from version 1.6.9 to 2.0.0

Files changed (115) hide show
  1. README.txt +8 -3
  2. admin/admin.php +2 -2
  3. admin/partials/dashboard.php +33 -33
  4. all-in-one-video-gallery.php +129 -129
  5. freemius/assets/img/all-in-one-video-gallery.png +0 -0
  6. includes/functions.php +87 -37
  7. includes/uninstall.php +84 -84
  8. public/assets/mediaelement/renderers/dailymotion.js +0 -415
  9. public/assets/mediaelement/renderers/dailymotion.min.js +0 -12
  10. public/assets/mediaelement/renderers/facebook.js +0 -361
  11. public/assets/mediaelement/renderers/facebook.min.js +0 -12
  12. public/assets/mediaelement/renderers/vimeo.js +0 -412
  13. public/assets/mediaelement/renderers/vimeo.min.js +0 -12
  14. public/assets/player/can-autoplay/can-autoplay.min.js +23 -0
  15. public/assets/{mediaelement → player}/index.html +0 -0
  16. public/assets/player/videojs-plugins/dailymotion/videojs-dailymotion.min.js +2 -0
  17. public/assets/player/videojs-plugins/facebook/videojs-facebook.min.js +2 -0
  18. public/assets/{mediaelement/renderers → player/videojs-plugins}/index.html +0 -0
  19. public/assets/player/videojs-plugins/overlay/videojs-overlay.css +1 -0
  20. public/assets/player/videojs-plugins/overlay/videojs-overlay.min.js +2 -0
  21. public/assets/player/videojs-plugins/vimeo/videojs-vimeo2.min.js +2 -0
  22. public/assets/player/videojs-plugins/youtube/Youtube.min.js +1 -0
  23. public/assets/player/videojs/font/VideoJS.svg +114 -0
  24. public/assets/player/videojs/font/VideoJS.ttf +0 -0
  25. public/assets/player/videojs/font/VideoJS.woff +0 -0
  26. public/assets/player/videojs/index.html +1 -0
  27. public/assets/player/videojs/lang/ar.js +34 -0
  28. public/assets/player/videojs/lang/ar.json +34 -0
  29. public/assets/player/videojs/lang/ba.js +26 -0
  30. public/assets/player/videojs/lang/ba.json +26 -0
  31. public/assets/player/videojs/lang/bg.js +26 -0
  32. public/assets/player/videojs/lang/bg.json +26 -0
  33. public/assets/player/videojs/lang/ca.js +26 -0
  34. public/assets/player/videojs/lang/ca.json +26 -0
  35. public/assets/player/videojs/lang/cs.js +85 -0
  36. public/assets/player/videojs/lang/cs.json +85 -0
  37. public/assets/player/videojs/lang/cy.js +85 -0
  38. public/assets/player/videojs/lang/cy.json +85 -0
  39. public/assets/player/videojs/lang/da.js +26 -0
  40. public/assets/player/videojs/lang/da.json +26 -0
  41. public/assets/player/videojs/lang/de.js +87 -0
  42. public/assets/player/videojs/lang/de.json +88 -0
  43. public/assets/player/videojs/lang/el.js +40 -0
  44. public/assets/player/videojs/lang/el.json +40 -0
  45. public/assets/player/videojs/lang/en.js +87 -0
  46. public/assets/player/videojs/lang/en.json +87 -0
  47. public/assets/player/videojs/lang/es.js +87 -0
  48. public/assets/player/videojs/lang/es.json +87 -0
  49. public/assets/player/videojs/lang/fa.js +84 -0
  50. public/assets/player/videojs/lang/fa.json +84 -0
  51. public/assets/player/videojs/lang/fi.js +26 -0
  52. public/assets/player/videojs/lang/fi.json +26 -0
  53. public/assets/player/videojs/lang/fr.js +84 -0
  54. public/assets/player/videojs/lang/fr.json +84 -0
  55. public/assets/player/videojs/lang/gd.js +87 -0
  56. public/assets/player/videojs/lang/gd.json +87 -0
  57. public/assets/player/videojs/lang/gl.js +87 -0
  58. public/assets/player/videojs/lang/gl.json +87 -0
  59. public/assets/player/videojs/lang/he.js +84 -0
  60. public/assets/player/videojs/lang/he.json +84 -0
  61. public/assets/player/videojs/lang/hr.js +26 -0
  62. public/assets/player/videojs/lang/hr.json +26 -0
  63. public/assets/player/videojs/lang/hu.js +26 -0
  64. public/assets/player/videojs/lang/hu.json +26 -0
  65. public/assets/player/videojs/lang/it.js +26 -0
  66. public/assets/player/videojs/lang/it.json +26 -0
  67. public/assets/player/videojs/lang/ja.js +26 -0
  68. public/assets/player/videojs/lang/ja.json +26 -0
  69. public/assets/player/videojs/lang/ko.js +26 -0
  70. public/assets/player/videojs/lang/ko.json +26 -0
  71. public/assets/player/videojs/lang/nb.js +26 -0
  72. public/assets/player/videojs/lang/nb.json +26 -0
  73. public/assets/player/videojs/lang/nl.js +84 -0
  74. public/assets/player/videojs/lang/nl.json +84 -0
  75. public/assets/player/videojs/lang/nn.js +26 -0
  76. public/assets/player/videojs/lang/nn.json +26 -0
  77. public/assets/player/videojs/lang/oc.js +87 -0
  78. public/assets/player/videojs/lang/oc.json +87 -0
  79. public/assets/player/videojs/lang/pl.js +34 -0
  80. public/assets/player/videojs/lang/pl.json +34 -0
  81. public/assets/player/videojs/lang/pt-BR.js +85 -0
  82. public/assets/player/videojs/lang/pt-BR.json +86 -0
  83. public/assets/player/videojs/lang/pt-PT.js +41 -0
  84. public/assets/player/videojs/lang/pt-PT.json +41 -0
  85. public/assets/player/videojs/lang/ru.js +85 -0
  86. public/assets/player/videojs/lang/ru.json +85 -0
  87. public/assets/player/videojs/lang/sk.js +85 -0
  88. public/assets/player/videojs/lang/sk.json +85 -0
  89. public/assets/player/videojs/lang/sr.js +26 -0
  90. public/assets/player/videojs/lang/sr.json +26 -0
  91. public/assets/player/videojs/lang/sv.js +87 -0
  92. public/assets/player/videojs/lang/sv.json +87 -0
  93. public/assets/player/videojs/lang/tr.js +76 -0
  94. public/assets/player/videojs/lang/tr.json +76 -0
  95. public/assets/player/videojs/lang/uk.js +85 -0
  96. public/assets/player/videojs/lang/uk.json +85 -0
  97. public/assets/player/videojs/lang/vi.js +84 -0
  98. public/assets/player/videojs/lang/vi.json +84 -0
  99. public/assets/player/videojs/lang/zh-CN.js +87 -0
  100. public/assets/player/videojs/lang/zh-CN.json +87 -0
  101. public/assets/player/videojs/lang/zh-Hans.js +87 -0
  102. public/assets/player/videojs/lang/zh-Hans.json +87 -0
  103. public/assets/player/videojs/lang/zh-Hant.js +87 -0
  104. public/assets/player/videojs/lang/zh-Hant.json +87 -0
  105. public/assets/player/videojs/lang/zh-TW.js +87 -0
  106. public/assets/player/videojs/lang/zh-TW.json +87 -0
  107. public/assets/player/videojs/video-js.min.css +1 -0
  108. public/assets/player/videojs/video.min.js +21 -0
  109. public/templates/player-amp.php +258 -0
  110. public/templates/player-gdpr.php +3 -1
  111. public/templates/player-html5.php +387 -417
  112. public/templates/player-iframe.php +3 -1
  113. public/templates/player.php +1 -1
  114. public/video.php +4 -0
  115. public/videos.php +7 -0
README.txt CHANGED
@@ -6,7 +6,7 @@ Tags: video player, video gallery, youtube gallery, vimeo gallery, livestream
6
  Requires at least: 4.7.0
7
  Tested up to: 5.3
8
  Requires PHP: 5.3.0
9
- Stable tag: 1.6.9
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -110,6 +110,11 @@ Please describe your issue and submit a ticket on our plugin support forum, you
110
 
111
  == Changelog ==
112
 
 
 
 
 
 
113
  = 1.6.9 =
114
 
115
  * Tweak: "Autoplay" disabled in the default plugin settings since the browsers don't like this option.
@@ -251,6 +256,6 @@ Please describe your issue and submit a ticket on our plugin support forum, you
251
 
252
  == Upgrade Notice ==
253
 
254
- = 1.6.9 =
255
 
256
- Private Vimeo videos not working when configured to "Use Native Controls". "Autoplay" disabled in the default plugin settings since the browsers don't like this option.
6
  Requires at least: 4.7.0
7
  Tested up to: 5.3
8
  Requires PHP: 5.3.0
9
+ Stable tag: 2.0.0
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
110
 
111
  == Changelog ==
112
 
113
+ = 2.0.0 =
114
+
115
+ * New: Replaced "mediaelement.js" player with the "video.js" player library.
116
+ * Fix: [+] few minor bug fixes.
117
+
118
  = 1.6.9 =
119
 
120
  * Tweak: "Autoplay" disabled in the default plugin settings since the browsers don't like this option.
256
 
257
  == Upgrade Notice ==
258
 
259
+ = 2.0.0 =
260
 
261
+ Introduces several bug fixes, new features & enhancements. [See changelog](https://wordpress.org/plugins/all-in-one-video-gallery/#developers)
admin/admin.php CHANGED
@@ -327,10 +327,10 @@ class AIOVG_Admin {
327
 
328
  $page_settings = get_option( 'aiovg_page_settings' );
329
 
330
- $pages = aiovg_get_custom_pages_list();
331
- $issue_found = 0;
332
 
333
  foreach ( $pages as $key => $page ) {
 
334
  $post_id = $page_settings[ $key ];
335
 
336
  if ( $post_id > 0 ) {
327
 
328
  $page_settings = get_option( 'aiovg_page_settings' );
329
 
330
+ $pages = aiovg_get_custom_pages_list();
 
331
 
332
  foreach ( $pages as $key => $page ) {
333
+ $issue_found = 0;
334
  $post_id = $page_settings[ $key ];
335
 
336
  if ( $post_id > 0 ) {
admin/partials/dashboard.php CHANGED
@@ -1,5 +1,5 @@
1
- <?php
2
-
3
  /**
4
  * Plugin Dashboard.
5
  *
@@ -7,49 +7,49 @@
7
  * @since 1.6.5
8
  *
9
  * @package All_In_One_Video_Gallery
10
- */
11
- ?>
12
 
13
  <div id="aiovg-dashboard" class="wrap about-wrap full-width-layout aiovg-dashboard">
14
- <h1><?php
15
- esc_html_e( 'All-in-One Video Gallery', 'all-in-one-video-gallery' );
16
  ?></h1>
17
 
18
  <p class="about-text">
19
- <?php
20
- esc_html_e( 'Add responsive video galleries anywhere on your website – no coding required. Includes HTML5 Player, Thumbnail Grid, Slider, Popup & more.', 'all-in-one-video-gallery' );
21
- ?>
22
  </p>
23
 
24
- <?php
25
- ?>
26
 
27
- <div class="wp-badge aiovg-badge"><?php
28
- printf( esc_html__( 'Version %s', 'all-in-one-video-gallery' ), AIOVG_PLUGIN_VERSION );
29
  ?></div>
30
 
31
  <h2 class="nav-tab-wrapper wp-clearfix">
32
- <?php
33
- foreach ( $tabs as $tab => $title ) {
34
- $url = admin_url( add_query_arg( 'tab', $tab, 'admin.php?page=all-in-one-video-gallery' ) );
35
- $class = ( $tab == $active_tab ? 'nav-tab nav-tab-active' : 'nav-tab' );
36
-
37
- if ( 'issues' == $tab ) {
38
- $class .= ' aiovg-text-error';
39
- $title .= sprintf( ' <span class="count">(%d)</span>', count( $issues['found'] ) );
40
- }
41
-
42
- printf(
43
- '<a href="%s" class="%s">%s</a>',
44
- esc_url( $url ),
45
- $class,
46
- $title
47
- );
48
- }
49
- ?>
50
  </h2>
51
 
52
- <?php
53
- require_once AIOVG_PLUGIN_DIR . "admin/partials/{$active_tab}.php";
54
  ?>
55
  </div>
1
+ <?php
2
+
3
  /**
4
  * Plugin Dashboard.
5
  *
7
  * @since 1.6.5
8
  *
9
  * @package All_In_One_Video_Gallery
10
+ */
11
+ ?>
12
 
13
  <div id="aiovg-dashboard" class="wrap about-wrap full-width-layout aiovg-dashboard">
14
+ <h1><?php
15
+ esc_html_e( 'All-in-One Video Gallery', 'all-in-one-video-gallery' );
16
  ?></h1>
17
 
18
  <p class="about-text">
19
+ <?php
20
+ esc_html_e( 'Add responsive video galleries anywhere on your website – no coding required. Includes HTML5 Player, Thumbnail Grid, Slider, Popup & more.', 'all-in-one-video-gallery' );
21
+ ?>
22
  </p>
23
 
24
+ <?php
25
+ ?>
26
 
27
+ <div class="wp-badge aiovg-badge"><?php
28
+ printf( esc_html__( 'Version %s', 'all-in-one-video-gallery' ), AIOVG_PLUGIN_VERSION );
29
  ?></div>
30
 
31
  <h2 class="nav-tab-wrapper wp-clearfix">
32
+ <?php
33
+ foreach ( $tabs as $tab => $title ) {
34
+ $url = admin_url( add_query_arg( 'tab', $tab, 'admin.php?page=all-in-one-video-gallery' ) );
35
+ $class = ( $tab == $active_tab ? 'nav-tab nav-tab-active' : 'nav-tab' );
36
+
37
+ if ( 'issues' == $tab ) {
38
+ $class .= ' aiovg-text-error';
39
+ $title .= sprintf( ' <span class="count">(%d)</span>', count( $issues['found'] ) );
40
+ }
41
+
42
+ printf(
43
+ '<a href="%s" class="%s">%s</a>',
44
+ esc_url( $url ),
45
+ $class,
46
+ $title
47
+ );
48
+ }
49
+ ?>
50
  </h2>
51
 
52
+ <?php
53
+ require_once AIOVG_PLUGIN_DIR . "admin/partials/{$active_tab}.php";
54
  ?>
55
  </div>
all-in-one-video-gallery.php CHANGED
@@ -1,5 +1,5 @@
1
- <?php
2
-
3
  /**
4
  * The plugin bootstrap file.
5
  *
@@ -11,149 +11,149 @@
11
  * Plugin Name: All-in-One Video Gallery
12
  * Plugin URI: https://plugins360.com/all-in-one-video-gallery/
13
  * Description: No coding required. A Responsive & Lightweight video gallery plugin. HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
14
- * Version: 1.6.9
15
  * Author: Team Plugins360
16
  * Author URI: https://plugins360.com
17
  * License: GPL-2.0+
18
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
19
  * Text Domain: all-in-one-video-gallery
20
  * Domain Path: /languages
21
- *
22
- */
23
- // Exit if accessed directly
24
- if ( !defined( 'WPINC' ) ) {
25
- die;
26
- }
27
-
28
- if ( function_exists( 'aiovg_fs' ) ) {
29
- aiovg_fs()->set_basename( false, __FILE__ );
30
- return;
31
- }
32
-
33
-
34
- if ( !function_exists( 'aiovg_fs' ) ) {
35
- // Create a helper function for easy SDK access
36
- function aiovg_fs()
37
- {
38
- global $aiovg_fs ;
39
-
40
- if ( !isset( $aiovg_fs ) ) {
41
- // Activate multisite network integration
42
- if ( !defined( 'WP_FS__PRODUCT_3213_MULTISITE' ) ) {
43
- define( 'WP_FS__PRODUCT_3213_MULTISITE', true );
44
- }
45
- // Include Freemius SDK
46
- require_once dirname( __FILE__ ) . '/freemius/start.php';
47
- $aiovg_fs = fs_dynamic_init( array(
48
- 'id' => '3213',
49
- 'slug' => 'all-in-one-video-gallery',
50
- 'type' => 'plugin',
51
- 'public_key' => 'pk_e1bed9a9a8957abe8947bb2619ab7',
52
- 'is_premium' => false,
53
- 'has_addons' => false,
54
- 'has_paid_plans' => true,
55
- 'trial' => array(
56
- 'days' => 7,
57
- 'is_require_payment' => false,
58
- ),
59
- 'menu' => array(
60
- 'slug' => 'all-in-one-video-gallery',
61
- 'first-path' => 'admin.php?page=all-in-one-video-gallery',
62
- 'support' => false,
63
- ),
64
- 'is_live' => true,
65
- ) );
66
- }
67
-
68
- return $aiovg_fs;
69
- }
70
-
71
- // Init Freemius
72
- aiovg_fs();
73
- // Signal that SDK was initiated
74
- do_action( 'aiovg_fs_loaded' );
75
- }
76
-
77
- // The current version of the plugin
78
- if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
79
- define( 'AIOVG_PLUGIN_VERSION', '1.6.9' );
80
- }
81
- // The unique identifier of the plugin
82
- if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
83
- define( 'AIOVG_PLUGIN_SLUG', 'all-in-one-video-gallery' );
84
- }
85
- // Path to the plugin directory
86
- if ( !defined( 'AIOVG_PLUGIN_DIR' ) ) {
87
- define( 'AIOVG_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
88
- }
89
- // URL of the plugin
90
- if ( !defined( 'AIOVG_PLUGIN_URL' ) ) {
91
- define( 'AIOVG_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
92
- }
93
- // The plugin file name
94
- if ( !defined( 'AIOVG_PLUGIN_FILE_NAME' ) ) {
95
- define( 'AIOVG_PLUGIN_FILE_NAME', plugin_basename( __FILE__ ) );
96
- }
97
- // The global plugin variable
98
- $aiovg = array();
99
-
100
- if ( !function_exists( 'aiovg_activate' ) ) {
101
  /**
102
  * The code that runs during plugin activation.
103
  * This action is documented in includes/activator.php
104
- */
105
- function aiovg_activate()
106
- {
107
- require_once AIOVG_PLUGIN_DIR . 'includes/activator.php';
108
- AIOVG_Activator::activate();
109
- }
110
-
111
- register_activation_hook( __FILE__, 'aiovg_activate' );
112
- }
113
-
114
-
115
- if ( !function_exists( 'aiovg_deactivate' ) ) {
116
  /**
117
  * The code that runs during plugin deactivation.
118
  * This action is documented in includes/deactivator.php
119
- */
120
- function aiovg_deactivate()
121
- {
122
- require_once AIOVG_PLUGIN_DIR . 'includes/deactivator.php';
123
- AIOVG_Deactivator::deactivate();
124
- }
125
-
126
- register_deactivation_hook( __FILE__, 'aiovg_deactivate' );
127
- }
128
-
129
-
130
- if ( !function_exists( 'aiovg_run' ) ) {
131
  /**
132
  * Begins execution of the plugin.
133
  *
134
  * @since 1.0.0
135
- */
136
- function aiovg_run()
137
- {
138
- require AIOVG_PLUGIN_DIR . 'includes/init.php';
139
- $plugin = new AIOVG_Init();
140
- $plugin->run();
141
- }
142
-
143
- aiovg_run();
144
- }
145
-
146
-
147
- if ( !function_exists( 'aiovg_uninstall' ) ) {
148
  /**
149
  * The code that runs during plugin uninstallation.
150
  * This action is documented in includes/uninstall.php
151
- */
152
- function aiovg_uninstall()
153
- {
154
- require_once AIOVG_PLUGIN_DIR . 'includes/uninstall.php';
155
- AIOVG_Uninstall::uninstall();
156
- }
157
-
158
- aiovg_fs()->add_action( 'after_uninstall', 'aiovg_uninstall' );
159
- }
1
+ <?php
2
+
3
  /**
4
  * The plugin bootstrap file.
5
  *
11
  * Plugin Name: All-in-One Video Gallery
12
  * Plugin URI: https://plugins360.com/all-in-one-video-gallery/
13
  * Description: No coding required. A Responsive & Lightweight video gallery plugin. HTML5 Player, Categories, Visual Builder (Gutenberg), Search Form, Comments, Social Sharing and everything you will need to build a YouTube/Vimeo like video sharing website.
14
+ * Version: 2.0.0
15
  * Author: Team Plugins360
16
  * Author URI: https://plugins360.com
17
  * License: GPL-2.0+
18
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
19
  * Text Domain: all-in-one-video-gallery
20
  * Domain Path: /languages
21
+ *
22
+ */
23
+ // Exit if accessed directly
24
+ if ( !defined( 'WPINC' ) ) {
25
+ die;
26
+ }
27
+
28
+ if ( function_exists( 'aiovg_fs' ) ) {
29
+ aiovg_fs()->set_basename( false, __FILE__ );
30
+ return;
31
+ }
32
+
33
+
34
+ if ( !function_exists( 'aiovg_fs' ) ) {
35
+ // Create a helper function for easy SDK access
36
+ function aiovg_fs()
37
+ {
38
+ global $aiovg_fs ;
39
+
40
+ if ( !isset( $aiovg_fs ) ) {
41
+ // Activate multisite network integration
42
+ if ( !defined( 'WP_FS__PRODUCT_3213_MULTISITE' ) ) {
43
+ define( 'WP_FS__PRODUCT_3213_MULTISITE', true );
44
+ }
45
+ // Include Freemius SDK
46
+ require_once dirname( __FILE__ ) . '/freemius/start.php';
47
+ $aiovg_fs = fs_dynamic_init( array(
48
+ 'id' => '3213',
49
+ 'slug' => 'all-in-one-video-gallery',
50
+ 'type' => 'plugin',
51
+ 'public_key' => 'pk_e1bed9a9a8957abe8947bb2619ab7',
52
+ 'is_premium' => false,
53
+ 'has_addons' => false,
54
+ 'has_paid_plans' => true,
55
+ 'trial' => array(
56
+ 'days' => 7,
57
+ 'is_require_payment' => false,
58
+ ),
59
+ 'menu' => array(
60
+ 'slug' => 'all-in-one-video-gallery',
61
+ 'first-path' => 'admin.php?page=all-in-one-video-gallery',
62
+ 'support' => false,
63
+ ),
64
+ 'is_live' => true,
65
+ ) );
66
+ }
67
+
68
+ return $aiovg_fs;
69
+ }
70
+
71
+ // Init Freemius
72
+ aiovg_fs();
73
+ // Signal that SDK was initiated
74
+ do_action( 'aiovg_fs_loaded' );
75
+ }
76
+
77
+ // The current version of the plugin
78
+ if ( !defined( 'AIOVG_PLUGIN_VERSION' ) ) {
79
+ define( 'AIOVG_PLUGIN_VERSION', '2.0.0' );
80
+ }
81
+ // The unique identifier of the plugin
82
+ if ( !defined( 'AIOVG_PLUGIN_SLUG' ) ) {
83
+ define( 'AIOVG_PLUGIN_SLUG', 'all-in-one-video-gallery' );
84
+ }
85
+ // Path to the plugin directory
86
+ if ( !defined( 'AIOVG_PLUGIN_DIR' ) ) {
87
+ define( 'AIOVG_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
88
+ }
89
+ // URL of the plugin
90
+ if ( !defined( 'AIOVG_PLUGIN_URL' ) ) {
91
+ define( 'AIOVG_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
92
+ }
93
+ // The plugin file name
94
+ if ( !defined( 'AIOVG_PLUGIN_FILE_NAME' ) ) {
95
+ define( 'AIOVG_PLUGIN_FILE_NAME', plugin_basename( __FILE__ ) );
96
+ }
97
+ // The global plugin variable
98
+ $aiovg = array();
99
+
100
+ if ( !function_exists( 'aiovg_activate' ) ) {
101
  /**
102
  * The code that runs during plugin activation.
103
  * This action is documented in includes/activator.php
104
+ */
105
+ function aiovg_activate()
106
+ {
107
+ require_once AIOVG_PLUGIN_DIR . 'includes/activator.php';
108
+ AIOVG_Activator::activate();
109
+ }
110
+
111
+ register_activation_hook( __FILE__, 'aiovg_activate' );
112
+ }
113
+
114
+
115
+ if ( !function_exists( 'aiovg_deactivate' ) ) {
116
  /**
117
  * The code that runs during plugin deactivation.
118
  * This action is documented in includes/deactivator.php
119
+ */
120
+ function aiovg_deactivate()
121
+ {
122
+ require_once AIOVG_PLUGIN_DIR . 'includes/deactivator.php';
123
+ AIOVG_Deactivator::deactivate();
124
+ }
125
+
126
+ register_deactivation_hook( __FILE__, 'aiovg_deactivate' );
127
+ }
128
+
129
+
130
+ if ( !function_exists( 'aiovg_run' ) ) {
131
  /**
132
  * Begins execution of the plugin.
133
  *
134
  * @since 1.0.0
135
+ */
136
+ function aiovg_run()
137
+ {
138
+ require AIOVG_PLUGIN_DIR . 'includes/init.php';
139
+ $plugin = new AIOVG_Init();
140
+ $plugin->run();
141
+ }
142
+
143
+ aiovg_run();
144
+ }
145
+
146
+
147
+ if ( !function_exists( 'aiovg_uninstall' ) ) {
148
  /**
149
  * The code that runs during plugin uninstallation.
150
  * This action is documented in includes/uninstall.php
151
+ */
152
+ function aiovg_uninstall()
153
+ {
154
+ require_once AIOVG_PLUGIN_DIR . 'includes/uninstall.php';
155
+ AIOVG_Uninstall::uninstall();
156
+ }
157
+
158
+ aiovg_fs()->add_action( 'after_uninstall', 'aiovg_uninstall' );
159
+ }
freemius/assets/img/all-in-one-video-gallery.png ADDED
Binary file
includes/functions.php CHANGED
@@ -60,6 +60,27 @@ function aiovg_can_use_yoast() {
60
  return $can_use_yoast;
61
  }
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  /**
64
  * Whether the current user has a specific capability.
65
  *
@@ -359,7 +380,7 @@ function aiovg_get_default_settings() {
359
  'fullscreen' => 'fullscreen'
360
  ),
361
  'use_native_controls' => array(
362
- 'dailymotion' => 'dailymotion'
363
  )
364
  ),
365
  'aiovg_videos_settings' => array(
@@ -465,14 +486,20 @@ function aiovg_get_embedcode_image_url( $embedcode ) {
465
  * Get the video excerpt.
466
  *
467
  * @since 1.0.0
 
468
  * @param int $char_length Excerpt length.
 
469
  * @return string $content Excerpt content.
470
  */
471
- function aiovg_get_excerpt( $char_length = 55 ) {
472
- global $post;
473
-
474
  $content = '';
475
 
 
 
 
 
 
 
476
  if ( ! empty( $post->post_excerpt ) ) {
477
  $content = $post->post_excerpt;
478
  } else {
@@ -488,7 +515,7 @@ function aiovg_get_excerpt( $char_length = 55 ) {
488
  } else {
489
  $content = $subex;
490
  }
491
- $content .= '[...]';
492
  } else {
493
  $content = $excerpt;
494
  }
@@ -531,6 +558,31 @@ function aiovg_get_image_url( $id, $size = "large", $default = '', $type = 'gall
531
  return $url;
532
  }
533
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
534
  /**
535
  * Get message to display based on the $type input.
536
  *
@@ -553,26 +605,6 @@ function aiovg_get_message( $msg_id ) {
553
  return $message;
554
  }
555
 
556
- /**
557
- * Get current page number.
558
- *
559
- * @since 1.0.0
560
- * @return int $paged The current page number.
561
- */
562
- function aiovg_get_page_number() {
563
- global $paged;
564
-
565
- if ( get_query_var( 'paged' ) ) {
566
- $paged = get_query_var( 'paged' );
567
- } elseif ( get_query_var( 'page' ) ) {
568
- $paged = get_query_var( 'page' );
569
- } else {
570
- $paged = 1;
571
- }
572
-
573
- return absint( $paged );
574
- }
575
-
576
  /**
577
  * Get MySQL's RAND function seed value.
578
  *
@@ -603,6 +635,26 @@ function aiovg_get_orderby_rand_seed() {
603
  return $seed;
604
  }
605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
606
  /**
607
  * Get player HTML.
608
  *
@@ -612,6 +664,14 @@ function aiovg_get_orderby_rand_seed() {
612
  * @return string $html Player HTML.
613
  */
614
  function aiovg_get_player_html( $post_id = 0, $atts = array() ) {
 
 
 
 
 
 
 
 
615
  // Vars
616
  $player_settings = get_option( 'aiovg_player_settings' );
617
 
@@ -1637,7 +1697,7 @@ function the_aiovg_category_thumbnail( $term, $attributes ) {
1637
  * @param int $char_length Excerpt length.
1638
  */
1639
  function the_aiovg_excerpt( $char_length ) {
1640
- echo aiovg_get_excerpt( $char_length );
1641
  }
1642
 
1643
  /**
@@ -1807,17 +1867,7 @@ function the_aiovg_socialshare_buttons() {
1807
  * @param array $atts Array of attributes.
1808
  */
1809
  function the_aiovg_video_attributes( $atts ) {
1810
- $attributes = array();
1811
-
1812
- foreach ( $atts as $key => $value ) {
1813
- if ( '' === $value ) {
1814
- $attributes[] = $key;
1815
- } else {
1816
- $attributes[] = sprintf( '%s="%s"', $key, $value );
1817
- }
1818
- }
1819
-
1820
- echo implode( ' ', $attributes );
1821
  }
1822
 
1823
  /**
60
  return $can_use_yoast;
61
  }
62
 
63
+ /**
64
+ * Combine video attributes as a string.
65
+ *
66
+ * @since 2.0.0
67
+ * @param array $atts Array of video attributes.
68
+ * @param string Combined attributes string.
69
+ */
70
+ function aiovg_combine_video_attributes( $atts ) {
71
+ $attributes = array();
72
+
73
+ foreach ( $atts as $key => $value ) {
74
+ if ( '' === $value ) {
75
+ $attributes[] = $key;
76
+ } else {
77
+ $attributes[] = sprintf( '%s="%s"', $key, $value );
78
+ }
79
+ }
80
+
81
+ return implode( ' ', $attributes );
82
+ }
83
+
84
  /**
85
  * Whether the current user has a specific capability.
86
  *
380
  'fullscreen' => 'fullscreen'
381
  ),
382
  'use_native_controls' => array(
383
+ 'facebook' => 'facebook'
384
  )
385
  ),
386
  'aiovg_videos_settings' => array(
486
  * Get the video excerpt.
487
  *
488
  * @since 1.0.0
489
+ * @param int $post_id Post ID.
490
  * @param int $char_length Excerpt length.
491
+ * @param string $append String to append to the end of the excerpt.
492
  * @return string $content Excerpt content.
493
  */
494
+ function aiovg_get_excerpt( $post_id = 0 , $char_length = 55, $append = '[...]' ) {
 
 
495
  $content = '';
496
 
497
+ if ( $post_id > 0 ) {
498
+ $post = get_post( $post_id );
499
+ } else {
500
+ global $post;
501
+ }
502
+
503
  if ( ! empty( $post->post_excerpt ) ) {
504
  $content = $post->post_excerpt;
505
  } else {
515
  } else {
516
  $content = $subex;
517
  }
518
+ $content .= $append;
519
  } else {
520
  $content = $excerpt;
521
  }
558
  return $url;
559
  }
560
 
561
+ /**
562
+ * Get the client IP Address.
563
+ *
564
+ * @since 2.0.0
565
+ * @return string $ip_address The client IP Address.
566
+ */
567
+ function aiovg_get_ip_address() {
568
+ // Whether ip is from share internet
569
+ if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
570
+ $ip_address = $_SERVER['HTTP_CLIENT_IP'];
571
+ }
572
+
573
+ // Whether ip is from proxy
574
+ elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
575
+ $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
576
+ }
577
+
578
+ // Whether ip is from remote address
579
+ else {
580
+ $ip_address = $_SERVER['REMOTE_ADDR'];
581
+ }
582
+
583
+ return $ip_address;
584
+ }
585
+
586
  /**
587
  * Get message to display based on the $type input.
588
  *
605
  return $message;
606
  }
607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
608
  /**
609
  * Get MySQL's RAND function seed value.
610
  *
635
  return $seed;
636
  }
637
 
638
+ /**
639
+ * Get current page number.
640
+ *
641
+ * @since 1.0.0
642
+ * @return int $paged The current page number.
643
+ */
644
+ function aiovg_get_page_number() {
645
+ global $paged;
646
+
647
+ if ( get_query_var( 'paged' ) ) {
648
+ $paged = get_query_var( 'paged' );
649
+ } elseif ( get_query_var( 'page' ) ) {
650
+ $paged = get_query_var( 'page' );
651
+ } else {
652
+ $paged = 1;
653
+ }
654
+
655
+ return absint( $paged );
656
+ }
657
+
658
  /**
659
  * Get player HTML.
660
  *
664
  * @return string $html Player HTML.
665
  */
666
  function aiovg_get_player_html( $post_id = 0, $atts = array() ) {
667
+ if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
668
+ ob_start();
669
+ include apply_filters( 'aiovg_load_template', AIOVG_PLUGIN_DIR . 'public/templates/player-amp.php' );
670
+ $html = ob_get_clean();
671
+
672
+ return $html;
673
+ }
674
+
675
  // Vars
676
  $player_settings = get_option( 'aiovg_player_settings' );
677
 
1697
  * @param int $char_length Excerpt length.
1698
  */
1699
  function the_aiovg_excerpt( $char_length ) {
1700
+ echo aiovg_get_excerpt( 0, $char_length );
1701
  }
1702
 
1703
  /**
1867
  * @param array $atts Array of attributes.
1868
  */
1869
  function the_aiovg_video_attributes( $atts ) {
1870
+ echo aiovg_combine_video_attributes( $atts );
 
 
 
 
 
 
 
 
 
 
1871
  }
1872
 
1873
  /**
includes/uninstall.php CHANGED
@@ -1,5 +1,5 @@
1
- <?php
2
-
3
  /**
4
  * Fired during plugin uninstallation.
5
  *
@@ -7,94 +7,94 @@
7
  * @since 1.0.0
8
  *
9
  * @package All_In_One_Video_Gallery
10
- */
11
- // Exit if accessed directly
12
- if ( !defined( 'WPINC' ) ) {
13
- die;
14
- }
15
  /**
16
  * AIOVG_Uninstall class.
17
  *
18
  * @since 1.0.0
19
- */
20
- class AIOVG_Uninstall
21
- {
22
  /**
23
  * Called when the plugin is uninstalled.
24
  *
25
  * @since 1.0.0
26
- */
27
- public static function uninstall()
28
- {
29
- $general_settings = get_option( 'aiovg_general_settings' );
30
- if ( empty($general_settings['delete_plugin_data']) ) {
31
- return;
32
- }
33
- global $wpdb ;
34
- // Delete all the custom post types
35
- $aiovg_post_types = array( 'aiovg_videos' );
36
- foreach ( $aiovg_post_types as $post_type ) {
37
- $items = get_posts( array(
38
- 'post_type' => $post_type,
39
- 'post_status' => 'any',
40
- 'numberposts' => -1,
41
- 'fields' => 'ids',
42
- ) );
43
- if ( count( $items ) ) {
44
- foreach ( $items as $item ) {
45
- wp_delete_post( $item, true );
46
- }
47
- }
48
- }
49
- // Delete all the terms & taxonomies
50
- $aiovg_taxonomies = array( 'aiovg_categories' );
51
- foreach ( $aiovg_taxonomies as $taxonomy ) {
52
- $terms = $wpdb->get_results( $wpdb->prepare( "SELECT t.*, tt.* FROM {$wpdb->terms} AS t INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('%s') ORDER BY t.name ASC", $taxonomy ) );
53
- // Delete terms
54
- if ( count( $terms ) ) {
55
- foreach ( $terms as $term ) {
56
- $wpdb->delete( $wpdb->term_taxonomy, array(
57
- 'term_taxonomy_id' => $term->term_taxonomy_id,
58
- ) );
59
- $wpdb->delete( $wpdb->terms, array(
60
- 'term_id' => $term->term_id,
61
- ) );
62
- }
63
- }
64
- // Delete taxonomies
65
- $wpdb->delete( $wpdb->term_taxonomy, array(
66
- 'taxonomy' => $taxonomy,
67
- ), array( '%s' ) );
68
- }
69
- // Delete the plugin pages
70
- if ( $aiovg_created_pages = get_option( 'aiovg_page_settings' ) ) {
71
- foreach ( $aiovg_created_pages as $page => $id ) {
72
- if ( $id > 0 ) {
73
- wp_delete_post( $id, true );
74
- }
75
- }
76
- }
77
- // Delete all the plugin options
78
- $aiovg_settings = array(
79
- 'aiovg_general_settings',
80
- 'aiovg_player_settings',
81
- 'aiovg_brand_settings',
82
- 'aiovg_image_settings',
83
- 'aiovg_categories_settings',
84
- 'aiovg_videos_settings',
85
- 'aiovg_video_settings',
86
- 'aiovg_privacy_settings',
87
- 'aiovg_permalink_settings',
88
- 'aiovg_socialshare_settings',
89
- 'aiovg_page_settings',
90
- 'aiovg_version'
91
- );
92
- foreach ( $aiovg_settings as $settings ) {
93
- delete_option( $settings );
94
- }
95
- // Delete capabilities
96
- $roles = new AIOVG_Roles();
97
- $roles->remove_caps();
98
- }
99
-
100
  }
1
+ <?php
2
+
3
  /**
4
  * Fired during plugin uninstallation.
5
  *
7
  * @since 1.0.0
8
  *
9
  * @package All_In_One_Video_Gallery
10
+ */
11
+ // Exit if accessed directly
12
+ if ( !defined( 'WPINC' ) ) {
13
+ die;
14
+ }
15
  /**
16
  * AIOVG_Uninstall class.
17
  *
18
  * @since 1.0.0
19
+ */
20
+ class AIOVG_Uninstall
21
+ {
22
  /**
23
  * Called when the plugin is uninstalled.
24
  *
25
  * @since 1.0.0
26
+ */
27
+ public static function uninstall()
28
+ {
29
+ $general_settings = get_option( 'aiovg_general_settings' );
30
+ if ( empty($general_settings['delete_plugin_data']) ) {
31
+ return;
32
+ }
33
+ global $wpdb ;
34
+ // Delete all the custom post types
35
+ $aiovg_post_types = array( 'aiovg_videos' );
36
+ foreach ( $aiovg_post_types as $post_type ) {
37
+ $items = get_posts( array(
38
+ 'post_type' => $post_type,
39
+ 'post_status' => 'any',
40
+ 'numberposts' => -1,
41
+ 'fields' => 'ids',
42
+ ) );
43
+ if ( count( $items ) ) {
44
+ foreach ( $items as $item ) {
45
+ wp_delete_post( $item, true );
46
+ }
47
+ }
48
+ }
49
+ // Delete all the terms & taxonomies
50
+ $aiovg_taxonomies = array( 'aiovg_categories' );
51
+ foreach ( $aiovg_taxonomies as $taxonomy ) {
52
+ $terms = $wpdb->get_results( $wpdb->prepare( "SELECT t.*, tt.* FROM {$wpdb->terms} AS t INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('%s') ORDER BY t.name ASC", $taxonomy ) );
53
+ // Delete terms
54
+ if ( count( $terms ) ) {
55
+ foreach ( $terms as $term ) {
56
+ $wpdb->delete( $wpdb->term_taxonomy, array(
57
+ 'term_taxonomy_id' => $term->term_taxonomy_id,
58
+ ) );
59
+ $wpdb->delete( $wpdb->terms, array(
60
+ 'term_id' => $term->term_id,
61
+ ) );
62
+ }
63
+ }
64
+ // Delete taxonomies
65
+ $wpdb->delete( $wpdb->term_taxonomy, array(
66
+ 'taxonomy' => $taxonomy,
67
+ ), array( '%s' ) );
68
+ }
69
+ // Delete the plugin pages
70
+ if ( $aiovg_created_pages = get_option( 'aiovg_page_settings' ) ) {
71
+ foreach ( $aiovg_created_pages as $page => $id ) {
72
+ if ( $id > 0 ) {
73
+ wp_delete_post( $id, true );
74
+ }
75
+ }
76
+ }
77
+ // Delete all the plugin options
78
+ $aiovg_settings = array(
79
+ 'aiovg_general_settings',
80
+ 'aiovg_player_settings',
81
+ 'aiovg_brand_settings',
82
+ 'aiovg_image_settings',
83
+ 'aiovg_categories_settings',
84
+ 'aiovg_videos_settings',
85
+ 'aiovg_video_settings',
86
+ 'aiovg_privacy_settings',
87
+ 'aiovg_permalink_settings',
88
+ 'aiovg_socialshare_settings',
89
+ 'aiovg_page_settings',
90
+ 'aiovg_version'
91
+ );
92
+ foreach ( $aiovg_settings as $settings ) {
93
+ delete_option( $settings );
94
+ }
95
+ // Delete capabilities
96
+ $roles = new AIOVG_Roles();
97
+ $roles->remove_caps();
98
+ }
99
+
100
  }
public/assets/mediaelement/renderers/dailymotion.js DELETED
@@ -1,415 +0,0 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
- 'use strict';
13
-
14
- var DailyMotionApi = {
15
- isSDKStarted: false,
16
-
17
- isSDKLoaded: false,
18
-
19
- iframeQueue: [],
20
-
21
- enqueueIframe: function enqueueIframe(settings) {
22
-
23
- if (DailyMotionApi.isLoaded) {
24
- DailyMotionApi.createIframe(settings);
25
- } else {
26
- DailyMotionApi.loadIframeApi();
27
- DailyMotionApi.iframeQueue.push(settings);
28
- }
29
- },
30
-
31
- loadIframeApi: function loadIframeApi() {
32
- if (!DailyMotionApi.isSDKStarted) {
33
- mejs.Utils.loadScript('https://api.dmcdn.net/all.js');
34
- DailyMotionApi.isSDKStarted = true;
35
- }
36
- },
37
-
38
- apiReady: function apiReady() {
39
-
40
- DailyMotionApi.isLoaded = true;
41
- DailyMotionApi.isSDKLoaded = true;
42
-
43
- while (DailyMotionApi.iframeQueue.length > 0) {
44
- var settings = DailyMotionApi.iframeQueue.pop();
45
-
46
- DM.init({
47
- apiKey: settings.apiKey,
48
- status: settings.status,
49
- cookie: settings.cookie
50
- });
51
-
52
- DailyMotionApi.createIframe(settings);
53
- }
54
- },
55
-
56
- createIframe: function createIframe(settings) {
57
-
58
- var player = DM.player(settings.container, {
59
- height: settings.height || '100%',
60
- width: settings.width || '100%',
61
- video: settings.videoId,
62
- params: Object.assign({ api: true }, settings.params),
63
- origin: location.host
64
- });
65
-
66
- player.addEventListener('apiready', function () {
67
- window['__ready__' + settings.id](player, { paused: true, ended: false });
68
- });
69
- },
70
-
71
- getDailyMotionId: function getDailyMotionId(url) {
72
- var parts = url.split('/'),
73
- lastPart = parts[parts.length - 1],
74
- dashParts = lastPart.split('_');
75
-
76
- return dashParts[0];
77
- }
78
- };
79
-
80
- var DailyMotionIframeRenderer = {
81
- name: 'dailymotion_iframe',
82
- options: {
83
- prefix: 'dailymotion_iframe',
84
- dailymotion: {
85
- width: '100%',
86
- height: '100%',
87
- params: {
88
- autoplay: false,
89
- chromeless: 1,
90
- info: 0,
91
- logo: 0,
92
- related: 0
93
- },
94
- apiKey: null,
95
- status: true,
96
- cookie: true
97
- }
98
- },
99
-
100
- canPlayType: function canPlayType(type) {
101
- return ~['video/dailymotion', 'video/x-dailymotion'].indexOf(type.toLowerCase());
102
- },
103
-
104
- create: function create(mediaElement, options, mediaFiles) {
105
-
106
- var dm = {},
107
- apiStack = [],
108
- readyState = 4;
109
-
110
- var events = void 0,
111
- dmPlayer = null,
112
- dmIframe = null,
113
- muted = mediaElement.originalNode.muted;
114
-
115
- dm.options = options;
116
- dm.id = mediaElement.id + '_' + options.prefix;
117
- dm.mediaElement = mediaElement;
118
-
119
- var props = mejs.html5media.properties,
120
- assignGettersSetters = function assignGettersSetters(propName) {
121
-
122
- var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
123
-
124
- dm['get' + capName] = function () {
125
- if (dmPlayer !== null) {
126
- var value = null;
127
-
128
- switch (propName) {
129
- case 'currentTime':
130
- return dmPlayer.currentTime;
131
- case 'duration':
132
- return isNaN(dmPlayer.duration) ? 0 : dmPlayer.duration;
133
- case 'volume':
134
- return dmPlayer.volume;
135
- case 'paused':
136
- return dmPlayer.paused;
137
- case 'ended':
138
- return dmPlayer.ended;
139
- case 'muted':
140
- muted = dmPlayer.muted;
141
- return muted;
142
- case 'buffered':
143
- var percentLoaded = dmPlayer.bufferedTime,
144
- duration = dmPlayer.duration;
145
- return {
146
- start: function start() {
147
- return 0;
148
- },
149
- end: function end() {
150
- return percentLoaded / duration;
151
- },
152
- length: 1
153
- };
154
- case 'src':
155
- return mediaElement.originalNode.getAttribute('src');
156
- case 'readyState':
157
- return readyState;
158
- }
159
-
160
- return value;
161
- } else {
162
- return null;
163
- }
164
- };
165
-
166
- dm['set' + capName] = function (value) {
167
- if (dmPlayer !== null) {
168
- switch (propName) {
169
- case 'src':
170
- var url = typeof value === 'string' ? value : value[0].src;
171
- dmPlayer.load(DailyMotionApi.getDailyMotionId(url));
172
- break;
173
- case 'currentTime':
174
- dmPlayer.seek(value);
175
- break;
176
- case 'muted':
177
- if (value === true) {
178
- dmPlayer.setVolume(0);
179
- }
180
- dmPlayer.setMuted(value);
181
- muted = value;
182
- setTimeout(function () {
183
- var event = mejs.Utils.createEvent('volumechange', dm);
184
- mediaElement.dispatchEvent(event);
185
- }, 50);
186
- break;
187
- case 'volume':
188
- dmPlayer.setVolume(value);
189
- if (value === 0 && !dmPlayer.muted) {
190
- dmPlayer.setMuted(true);
191
- muted = true;
192
- } else if (value > 0 && dmPlayer.muted) {
193
- dmPlayer.setMuted(false);
194
- muted = false;
195
- }
196
-
197
- setTimeout(function () {
198
- var event = mejs.Utils.createEvent('volumechange', dm);
199
- mediaElement.dispatchEvent(event);
200
- }, 50);
201
- break;
202
- case 'readyState':
203
- var event = mejs.Utils.createEvent('canplay', dm);
204
- mediaElement.dispatchEvent(event);
205
- break;
206
- default:
207
-
208
- break;
209
- }
210
- } else {
211
- apiStack.push({ type: 'set', propName: propName, value: value });
212
- }
213
- };
214
- };
215
-
216
- for (var i = 0, total = props.length; i < total; i++) {
217
- assignGettersSetters(props[i]);
218
- }
219
-
220
- var methods = mejs.html5media.methods,
221
- assignMethods = function assignMethods(methodName) {
222
- dm[methodName] = function () {
223
- if (dmPlayer !== null) {
224
- switch (methodName) {
225
- case 'play':
226
- return dmPlayer.play();
227
- case 'pause':
228
- return dmPlayer.pause();
229
- case 'load':
230
- return null;
231
- }
232
- } else {
233
- apiStack.push({ type: 'call', methodName: methodName });
234
- }
235
- };
236
- };
237
-
238
- for (var _i = 0, _total = methods.length; _i < _total; _i++) {
239
- assignMethods(methods[_i]);
240
- }
241
-
242
- window['__ready__' + dm.id] = function (_dmPlayer) {
243
-
244
- mediaElement.dmPlayer = dmPlayer = _dmPlayer;
245
-
246
- if (apiStack.length) {
247
- for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) {
248
-
249
- var stackItem = apiStack[_i2];
250
-
251
- if (stackItem.type === 'set') {
252
- var propName = stackItem.propName,
253
- capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
254
-
255
- dm['set' + capName](stackItem.value);
256
- } else if (stackItem.type === 'call') {
257
- dm[stackItem.methodName]();
258
- }
259
- }
260
- }
261
-
262
- dmIframe = document.getElementById(dm.id);
263
-
264
- events = ['mouseover', 'mouseout'];
265
- var assignEvents = function assignEvents(e) {
266
- var event = mejs.Utils.createEvent(e.type, dm);
267
- mediaElement.dispatchEvent(event);
268
- };
269
-
270
- for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
271
- dmIframe.addEventListener(events[_i3], assignEvents, false);
272
- }
273
-
274
- if (mediaElement.originalNode.muted) {
275
- dmPlayer.setVolume(0);
276
- dmPlayer.setMuted(true);
277
- } else {
278
- dmPlayer.setVolume(dmPlayer.volume);
279
- dmPlayer.setMuted(false);
280
- }
281
-
282
- events = mejs.html5media.events;
283
- events = events.concat(['click', 'mouseover', 'mouseout']);
284
- var assignNativeEvents = function assignNativeEvents(eventName) {
285
- if (eventName !== 'ended') {
286
- dmPlayer.addEventListener(eventName, function (e) {
287
- var event = mejs.Utils.createEvent(e.type, dm);
288
- mediaElement.dispatchEvent(event);
289
- });
290
- }
291
- };
292
-
293
- for (var _i4 = 0, _total4 = events.length; _i4 < _total4; _i4++) {
294
- assignNativeEvents(events[_i4]);
295
- }
296
-
297
- dmPlayer.addEventListener('ad_start', function () {
298
- var event = mejs.Utils.createEvent('play', dm);
299
- mediaElement.dispatchEvent(event);
300
-
301
- event = mejs.Utils.createEvent('progress', dm);
302
- mediaElement.dispatchEvent(event);
303
-
304
- event = mejs.Utils.createEvent('timeupdate', dm);
305
- mediaElement.dispatchEvent(event);
306
- });
307
- dmPlayer.addEventListener('ad_timeupdate', function () {
308
- var event = mejs.Utils.createEvent('timeupdate', dm);
309
- mediaElement.dispatchEvent(event);
310
- });
311
- dmPlayer.addEventListener('ad_pause', function () {
312
- var event = mejs.Utils.createEvent('pause', dm);
313
- mediaElement.dispatchEvent(event);
314
- });
315
- dmPlayer.addEventListener('start', function () {
316
- if (dmPlayer.muted) {
317
- var event = mejs.Utils.createEvent('volumechange', dm);
318
- mediaElement.dispatchEvent(event);
319
- }
320
- });
321
- dmPlayer.addEventListener('video_start', function () {
322
- var event = mejs.Utils.createEvent('play', dm);
323
- mediaElement.dispatchEvent(event);
324
-
325
- var playingEvent = mejs.Utils.createEvent('playing', dm);
326
- mediaElement.dispatchEvent(playingEvent);
327
- });
328
- dmPlayer.addEventListener('ad_timeupdate', function () {
329
- var event = mejs.Utils.createEvent('timeupdate', dm);
330
- mediaElement.dispatchEvent(event);
331
- });
332
- dmPlayer.addEventListener('video_end', function () {
333
- var event = mejs.Utils.createEvent('ended', dm);
334
- mediaElement.dispatchEvent(event);
335
-
336
- if (mediaElement.originalNode.getAttribute('loop')) {
337
- dmPlayer.play();
338
- }
339
- });
340
-
341
- var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay'];
342
-
343
- for (var _i5 = 0, _total5 = initEvents.length; _i5 < _total5; _i5++) {
344
- var event = mejs.Utils.createEvent(initEvents[_i5], dm);
345
- mediaElement.dispatchEvent(event);
346
- }
347
- };
348
-
349
- var dmContainer = document.createElement('div');
350
- dmContainer.id = dm.id;
351
- mediaElement.appendChild(dmContainer);
352
- if (mediaElement.originalNode) {
353
- dmContainer.style.width = mediaElement.originalNode.style.width;
354
- dmContainer.style.height = mediaElement.originalNode.style.height;
355
- }
356
- mediaElement.originalNode.style.display = 'none';
357
-
358
- var videoId = DailyMotionApi.getDailyMotionId(mediaFiles[0].src),
359
- dmSettings = {
360
- id: dm.id,
361
- container: dmContainer,
362
- videoId: videoId
363
- };
364
-
365
- dmSettings.params = Object.assign({}, dm.options.dailymotion);
366
-
367
- dmSettings.params.controls = !!mediaElement.originalNode.controls;
368
-
369
- if (mediaElement.originalNode.autoplay) {
370
- dmSettings.params.autoplay = true;
371
- }
372
- if (mediaElement.originalNode.muted) {
373
- dmSettings.params.mute = true;
374
- }
375
- dmSettings.params.api = '1';
376
-
377
- DailyMotionApi.enqueueIframe(dmSettings);
378
-
379
- dm.hide = function () {
380
- dm.pause();
381
- if (dmIframe) {
382
- dmIframe.style.display = 'none';
383
- }
384
- };
385
- dm.show = function () {
386
- if (dmIframe) {
387
- dmIframe.style.display = '';
388
- }
389
- };
390
- dm.setSize = function (width, height) {
391
- if (dmIframe) {
392
- dmIframe.width = width;
393
- dmIframe.height = height;
394
- }
395
- };
396
- dm.destroy = function () {
397
- dmPlayer.destroy();
398
- };
399
-
400
- return dm;
401
- }
402
- };
403
-
404
- mejs.Utils.typeChecks.push(function (url) {
405
- return (/\/\/((www\.)?dailymotion\.com|dai\.ly)/i.test(url) ? 'video/x-dailymotion' : null
406
- );
407
- });
408
-
409
- window.dmAsyncInit = function () {
410
- DailyMotionApi.apiReady();
411
- };
412
-
413
- mejs.Renderers.add(DailyMotionIframeRenderer);
414
-
415
- },{}]},{},[1]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/mediaelement/renderers/dailymotion.min.js DELETED
@@ -1,12 +0,0 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */
12
- !function e(t,a,n){function i(s,o){if(!a[s]){if(!t[s]){var d="function"==typeof require&&require;if(!o&&d)return d(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var l=a[s]={exports:{}};t[s][0].call(l.exports,function(e){var a=t[s][1][e];return i(a||e)},l,l.exports,e,t,a,n)}return a[s].exports}for(var r="function"==typeof require&&require,s=0;s<n.length;s++)i(n[s]);return i}({1:[function(e,t,a){"use strict";var n={isSDKStarted:!1,isSDKLoaded:!1,iframeQueue:[],enqueueIframe:function(e){n.isLoaded?n.createIframe(e):(n.loadIframeApi(),n.iframeQueue.push(e))},loadIframeApi:function(){n.isSDKStarted||(mejs.Utils.loadScript("https://api.dmcdn.net/all.js"),n.isSDKStarted=!0)},apiReady:function(){for(n.isLoaded=!0,n.isSDKLoaded=!0;n.iframeQueue.length>0;){var e=n.iframeQueue.pop();DM.init({apiKey:e.apiKey,status:e.status,cookie:e.cookie}),n.createIframe(e)}},createIframe:function(e){var t=DM.player(e.container,{height:e.height||"100%",width:e.width||"100%",video:e.videoId,params:Object.assign({api:!0},e.params),origin:location.host});t.addEventListener("apiready",function(){window["__ready__"+e.id](t,{paused:!0,ended:!1})})},getDailyMotionId:function(e){var t=e.split("/");return t[t.length-1].split("_")[0]}},i={name:"dailymotion_iframe",options:{prefix:"dailymotion_iframe",dailymotion:{width:"100%",height:"100%",params:{autoplay:!1,chromeless:1,info:0,logo:0,related:0},apiKey:null,status:!0,cookie:!0}},canPlayType:function(e){return~["video/dailymotion","video/x-dailymotion"].indexOf(e.toLowerCase())},create:function(e,t,a){var i={},r=[],s=void 0,o=null,d=null,u=e.originalNode.muted;i.options=t,i.id=e.id+"_"+t.prefix,i.mediaElement=e;for(var l=mejs.html5media.properties,c=0,m=l.length;c<m;c++)!function(t){var a=""+t.substring(0,1).toUpperCase()+t.substring(1);i["get"+a]=function(){if(null!==o){switch(t){case"currentTime":return o.currentTime;case"duration":return isNaN(o.duration)?0:o.duration;case"volume":return o.volume;case"paused":return o.paused;case"ended":return o.ended;case"muted":return u=o.muted;case"buffered":var a=o.bufferedTime,n=o.duration;return{start:function(){return 0},end:function(){return a/n},length:1};case"src":return e.originalNode.getAttribute("src");case"readyState":return 4}return null}return null},i["set"+a]=function(a){if(null!==o)switch(t){case"src":var s="string"==typeof a?a:a[0].src;o.load(n.getDailyMotionId(s));break;case"currentTime":o.seek(a);break;case"muted":!0===a&&o.setVolume(0),o.setMuted(a),u=a,setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",i);e.dispatchEvent(t)},50);break;case"volume":o.setVolume(a),0!==a||o.muted?a>0&&o.muted&&(o.setMuted(!1),u=!1):(o.setMuted(!0),u=!0),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",i);e.dispatchEvent(t)},50);break;case"readyState":var d=mejs.Utils.createEvent("canplay",i);e.dispatchEvent(d)}else r.push({type:"set",propName:t,value:a})}}(l[c]);for(var p=mejs.html5media.methods,v=0,f=p.length;v<f;v++)!function(e){i[e]=function(){if(null!==o)switch(e){case"play":return o.play();case"pause":return o.pause();case"load":return null}else r.push({type:"call",methodName:e})}}(p[v]);window["__ready__"+i.id]=function(t){if(e.dmPlayer=o=t,r.length)for(var a=0,n=r.length;a<n;a++){var u=r[a];if("set"===u.type){var l=u.propName,c=""+l.substring(0,1).toUpperCase()+l.substring(1);i["set"+c](u.value)}else"call"===u.type&&i[u.methodName]()}d=document.getElementById(i.id);for(var m=0,p=(s=["mouseover","mouseout"]).length;m<p;m++)d.addEventListener(s[m],function(t){var a=mejs.Utils.createEvent(t.type,i);e.dispatchEvent(a)},!1);e.originalNode.muted?(o.setVolume(0),o.setMuted(!0)):(o.setVolume(o.volume),o.setMuted(!1)),s=mejs.html5media.events;for(var v=0,f=(s=s.concat(["click","mouseover","mouseout"])).length;v<f;v++)!function(t){"ended"!==t&&o.addEventListener(t,function(t){var a=mejs.Utils.createEvent(t.type,i);e.dispatchEvent(a)})}(s[v]);o.addEventListener("ad_start",function(){var t=mejs.Utils.createEvent("play",i);e.dispatchEvent(t),t=mejs.Utils.createEvent("progress",i),e.dispatchEvent(t),t=mejs.Utils.createEvent("timeupdate",i),e.dispatchEvent(t)}),o.addEventListener("ad_timeupdate",function(){var t=mejs.Utils.createEvent("timeupdate",i);e.dispatchEvent(t)}),o.addEventListener("ad_pause",function(){var t=mejs.Utils.createEvent("pause",i);e.dispatchEvent(t)}),o.addEventListener("start",function(){if(o.muted){var t=mejs.Utils.createEvent("volumechange",i);e.dispatchEvent(t)}}),o.addEventListener("video_start",function(){var t=mejs.Utils.createEvent("play",i);e.dispatchEvent(t);var a=mejs.Utils.createEvent("playing",i);e.dispatchEvent(a)}),o.addEventListener("ad_timeupdate",function(){var t=mejs.Utils.createEvent("timeupdate",i);e.dispatchEvent(t)}),o.addEventListener("video_end",function(){var t=mejs.Utils.createEvent("ended",i);e.dispatchEvent(t),e.originalNode.getAttribute("loop")&&o.play()});for(var h=["rendererready","loadedmetadata","loadeddata","canplay"],y=0,g=h.length;y<g;y++){var E=mejs.Utils.createEvent(h[y],i);e.dispatchEvent(E)}};var h=document.createElement("div");h.id=i.id,e.appendChild(h),e.originalNode&&(h.style.width=e.originalNode.style.width,h.style.height=e.originalNode.style.height),e.originalNode.style.display="none";var y=n.getDailyMotionId(a[0].src),g={id:i.id,container:h,videoId:y};return g.params=Object.assign({},i.options.dailymotion),g.params.controls=!!e.originalNode.controls,e.originalNode.autoplay&&(g.params.autoplay=!0),e.originalNode.muted&&(g.params.mute=!0),g.params.api="1",n.enqueueIframe(g),i.hide=function(){i.pause(),d&&(d.style.display="none")},i.show=function(){d&&(d.style.display="")},i.setSize=function(e,t){d&&(d.width=e,d.height=t)},i.destroy=function(){o.destroy()},i}};mejs.Utils.typeChecks.push(function(e){return/\/\/((www\.)?dailymotion\.com|dai\.ly)/i.test(e)?"video/x-dailymotion":null}),window.dmAsyncInit=function(){n.apiReady()},mejs.Renderers.add(i)},{}]},{},[1]);
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/mediaelement/renderers/facebook.js DELETED
@@ -1,361 +0,0 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
- 'use strict';
13
-
14
- var FacebookApi = {
15
-
16
- promise: null,
17
-
18
- load: function load(settings) {
19
-
20
- if (typeof FB !== 'undefined') {
21
- FacebookApi._createPlayer(settings);
22
- } else {
23
- FacebookApi.promise = FacebookApi.promise || mejs.Utils.loadScript('https://connect.facebook.net/' + settings.options.lang + '/sdk.js');
24
- FacebookApi.promise.then(function () {
25
- FB.init(settings.options);
26
-
27
- setTimeout(function () {
28
- FacebookApi._createPlayer(settings);
29
- }, 50);
30
- });
31
- }
32
- },
33
-
34
- _createPlayer: function _createPlayer(settings) {
35
- window['__ready__' + settings.id]();
36
- }
37
- };
38
- var FacebookRenderer = {
39
- name: 'facebook',
40
- options: {
41
- prefix: 'facebook',
42
- facebook: {
43
- appId: '',
44
- xfbml: true,
45
- version: 'v2.10',
46
- lang: 'en_US'
47
- }
48
- },
49
-
50
- canPlayType: function canPlayType(type) {
51
- return ~['video/facebook', 'video/x-facebook'].indexOf(type.toLowerCase());
52
- },
53
-
54
- create: function create(mediaElement, options, mediaFiles) {
55
- var apiStack = [],
56
- fb = {},
57
- readyState = 4;
58
-
59
- var hasStartedPlaying = false,
60
- paused = true,
61
- ended = false,
62
- fbPlayer = null,
63
- src = '',
64
- poster = '',
65
- autoplay = mediaElement.originalNode.autoplay;
66
-
67
- fb.options = options;
68
- fb.id = mediaElement.id + '_' + options.prefix;
69
- fb.mediaElement = mediaElement;
70
-
71
- if (mejs.Features.isiPhone && mediaElement.originalNode.getAttribute('poster')) {
72
- poster = mediaElement.originalNode.getAttribute('poster');
73
- mediaElement.originalNode.removeAttribute('poster');
74
- }
75
-
76
- var props = mejs.html5media.properties,
77
- assignGettersSetters = function assignGettersSetters(propName) {
78
-
79
- var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
80
-
81
- fb['get' + capName] = function () {
82
-
83
- if (fbPlayer !== null) {
84
- var value = null;
85
-
86
- switch (propName) {
87
- case 'currentTime':
88
- return fbPlayer.getCurrentPosition();
89
- case 'duration':
90
- return fbPlayer.getDuration();
91
- case 'volume':
92
- return fbPlayer.getVolume();
93
- case 'paused':
94
- return paused;
95
- case 'ended':
96
- return ended;
97
- case 'muted':
98
- return fbPlayer.isMuted();
99
- case 'buffered':
100
- return {
101
- start: function start() {
102
- return 0;
103
- },
104
- end: function end() {
105
- return 0;
106
- },
107
- length: 1
108
- };
109
- case 'src':
110
- return src;
111
- case 'readyState':
112
- return readyState;
113
- }
114
-
115
- return value;
116
- } else {
117
- return null;
118
- }
119
- };
120
-
121
- fb['set' + capName] = function (value) {
122
-
123
- if (fbPlayer !== null) {
124
-
125
- switch (propName) {
126
- case 'src':
127
- var url = typeof value === 'string' ? value : value[0].src;
128
- src = url;
129
-
130
- fbContainer.remove();
131
- fbContainer = document.createElement('div');
132
- fbContainer.id = fb.id;
133
- fbContainer.className = 'fb-video';
134
- fbContainer.setAttribute('data-href', url);
135
- fbContainer.setAttribute('data-allowfullscreen', 'true');
136
- fbContainer.setAttribute('data-controls', 'false');
137
-
138
- mediaElement.originalNode.parentNode.insertBefore(fbContainer, mediaElement.originalNode);
139
- mediaElement.originalNode.style.display = 'none';
140
-
141
- FacebookApi.load({
142
- lang: fb.options.lang,
143
- id: fb.id
144
- });
145
-
146
- FB.XFBML.parse();
147
-
148
- if (autoplay) {
149
- fbPlayer.play();
150
- }
151
- break;
152
- case 'currentTime':
153
- fbPlayer.seek(value);
154
- break;
155
- case 'muted':
156
- if (value) {
157
- fbPlayer.mute();
158
- } else {
159
- fbPlayer.unmute();
160
- }
161
- setTimeout(function () {
162
- var event = mejs.Utils.createEvent('volumechange', fb);
163
- mediaElement.dispatchEvent(event);
164
- }, 50);
165
- break;
166
- case 'volume':
167
- fbPlayer.setVolume(value);
168
- setTimeout(function () {
169
- var event = mejs.Utils.createEvent('volumechange', fb);
170
- mediaElement.dispatchEvent(event);
171
- }, 50);
172
- break;
173
- case 'readyState':
174
- var event = mejs.Utils.createEvent('canplay', fb);
175
- mediaElement.dispatchEvent(event);
176
- break;
177
- default:
178
-
179
- break;
180
- }
181
- } else {
182
- apiStack.push({ type: 'set', propName: propName, value: value });
183
- }
184
- };
185
- };
186
-
187
- for (var i = 0, total = props.length; i < total; i++) {
188
- assignGettersSetters(props[i]);
189
- }
190
-
191
- var methods = mejs.html5media.methods,
192
- assignMethods = function assignMethods(methodName) {
193
- fb[methodName] = function () {
194
- if (fbPlayer !== null) {
195
- switch (methodName) {
196
- case 'play':
197
- return fbPlayer.play();
198
- case 'pause':
199
- return fbPlayer.pause();
200
- case 'load':
201
- return null;
202
- }
203
- } else {
204
- apiStack.push({ type: 'call', methodName: methodName });
205
- }
206
- };
207
- };
208
-
209
- for (var _i = 0, _total = methods.length; _i < _total; _i++) {
210
- assignMethods(methods[_i]);
211
- }
212
-
213
- function assignEvents(events) {
214
- for (var _i2 = 0, _total2 = events.length; _i2 < _total2; _i2++) {
215
- var event = mejs.Utils.createEvent(events[_i2], fb);
216
- mediaElement.dispatchEvent(event);
217
- }
218
- }
219
-
220
- window['__ready__' + fb.id] = function () {
221
- FB.Event.subscribe('xfbml.ready', function (msg) {
222
- if (msg.type === 'video' && fb.id === msg.id) {
223
- mediaElement.fbPlayer = fbPlayer = msg.instance;
224
-
225
- var fbIframe = document.getElementById(fb.id),
226
- width = fbIframe.offsetWidth,
227
- height = fbIframe.offsetHeight,
228
- events = ['mouseover', 'mouseout'],
229
- assignIframeEvents = function assignIframeEvents(e) {
230
- var event = mejs.Utils.createEvent(e.type, fb);
231
- mediaElement.dispatchEvent(event);
232
- };
233
-
234
- fb.setSize(width, height);
235
- if (!mediaElement.originalNode.muted) {
236
- fbPlayer.unmute();
237
- }
238
-
239
- if (autoplay) {
240
- fbPlayer.play();
241
- }
242
-
243
- for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
244
- fbIframe.addEventListener(events[_i3], assignIframeEvents);
245
- }
246
-
247
- fb.eventHandler = {};
248
-
249
- var fbEvents = ['startedPlaying', 'paused', 'finishedPlaying', 'startedBuffering', 'finishedBuffering'];
250
- for (var _i4 = 0, _total4 = fbEvents.length; _i4 < _total4; _i4++) {
251
- var event = fbEvents[_i4],
252
- handler = fb.eventHandler[event];
253
- if (handler !== undefined && handler !== null && !mejs.Utils.isObjectEmpty(handler) && typeof handler.removeListener === 'function') {
254
- handler.removeListener(event);
255
- }
256
- }
257
-
258
- if (apiStack.length) {
259
- for (var _i5 = 0, _total5 = apiStack.length; _i5 < _total5; _i5++) {
260
- var stackItem = apiStack[_i5];
261
-
262
- if (stackItem.type === 'set') {
263
- var propName = stackItem.propName,
264
- capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
265
-
266
- fb['set' + capName](stackItem.value);
267
- } else if (stackItem.type === 'call') {
268
- fb[stackItem.methodName]();
269
- }
270
- }
271
- }
272
-
273
- assignEvents(['rendererready', 'loadeddata', 'canplay', 'progress', 'loadedmetadata', 'timeupdate']);
274
-
275
- var timer = void 0;
276
-
277
- fb.eventHandler.startedPlaying = fbPlayer.subscribe('startedPlaying', function () {
278
- if (!hasStartedPlaying) {
279
- hasStartedPlaying = true;
280
- }
281
- paused = false;
282
- ended = false;
283
- assignEvents(['play', 'playing', 'timeupdate']);
284
-
285
- timer = setInterval(function () {
286
- fbPlayer.getCurrentPosition();
287
- assignEvents(['timeupdate']);
288
- }, 250);
289
- });
290
- fb.eventHandler.paused = fbPlayer.subscribe('paused', function () {
291
- paused = true;
292
- ended = false;
293
- assignEvents(['pause']);
294
- });
295
- fb.eventHandler.finishedPlaying = fbPlayer.subscribe('finishedPlaying', function () {
296
- paused = true;
297
- ended = true;
298
-
299
- assignEvents(['ended']);
300
- clearInterval(timer);
301
- timer = null;
302
- });
303
- fb.eventHandler.startedBuffering = fbPlayer.subscribe('startedBuffering', function () {
304
- assignEvents(['progress', 'timeupdate']);
305
- });
306
- fb.eventHandler.finishedBuffering = fbPlayer.subscribe('finishedBuffering', function () {
307
- assignEvents(['progress', 'timeupdate']);
308
- });
309
- }
310
- });
311
- };
312
-
313
- src = mediaFiles[0].src;
314
- var fbContainer = document.createElement('div');
315
- fbContainer.id = fb.id;
316
- fbContainer.className = 'fb-video';
317
- fbContainer.setAttribute('data-href', src);
318
- fbContainer.setAttribute('data-allowfullscreen', 'true');
319
- fbContainer.setAttribute('data-controls', !!mediaElement.originalNode.controls);
320
- mediaElement.originalNode.parentNode.insertBefore(fbContainer, mediaElement.originalNode);
321
- mediaElement.originalNode.style.display = 'none';
322
-
323
- FacebookApi.load({
324
- options: fb.options.facebook,
325
- id: fb.id
326
- });
327
-
328
- fb.hide = function () {
329
- fb.pause();
330
- if (fbPlayer) {
331
- fbContainer.style.display = 'none';
332
- }
333
- };
334
- fb.setSize = function (width) {
335
- if (fbPlayer !== null && !isNaN(width)) {
336
- fbContainer.style.width = width;
337
- }
338
- };
339
- fb.show = function () {
340
- if (fbPlayer) {
341
- fbContainer.style.display = '';
342
- }
343
- };
344
-
345
- fb.destroy = function () {
346
- if (poster) {
347
- mediaElement.originalNode.setAttribute('poster', poster);
348
- }
349
- };
350
-
351
- return fb;
352
- }
353
- };
354
-
355
- mejs.Utils.typeChecks.push(function (url) {
356
- return ~url.toLowerCase().indexOf('//www.facebook') ? 'video/x-facebook' : null;
357
- });
358
-
359
- mejs.Renderers.add(FacebookRenderer);
360
-
361
- },{}]},{},[1]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/mediaelement/renderers/facebook.min.js DELETED
@@ -1,12 +0,0 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */
12
- !function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(a)return a(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var d=n[o]={exports:{}};t[o][0].call(d.exports,function(e){var n=t[o][1][e];return i(n||e)},d,d.exports,e,t,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){"use strict";var r={promise:null,load:function(e){"undefined"!=typeof FB?r._createPlayer(e):(r.promise=r.promise||mejs.Utils.loadScript("https://connect.facebook.net/"+e.options.lang+"/sdk.js"),r.promise.then(function(){FB.init(e.options),setTimeout(function(){r._createPlayer(e)},50)}))},_createPlayer:function(e){window["__ready__"+e.id]()}},i={name:"facebook",options:{prefix:"facebook",facebook:{appId:"",xfbml:!0,version:"v2.10",lang:"en_US"}},canPlayType:function(e){return~["video/facebook","video/x-facebook"].indexOf(e.toLowerCase())},create:function(e,t,n){function i(t){for(var n=0,r=t.length;n<r;n++){var i=mejs.Utils.createEvent(t[n],o);e.dispatchEvent(i)}}var a=[],o={},s=!1,u=!0,l=!1,d=null,c="",f="",p=e.originalNode.autoplay;o.options=t,o.id=e.id+"_"+t.prefix,o.mediaElement=e,mejs.Features.isiPhone&&e.originalNode.getAttribute("poster")&&(f=e.originalNode.getAttribute("poster"),e.originalNode.removeAttribute("poster"));for(var m=mejs.html5media.properties,v=0,g=m.length;v<g;v++)!function(t){var n=""+t.substring(0,1).toUpperCase()+t.substring(1);o["get"+n]=function(){if(null!==d){switch(t){case"currentTime":return d.getCurrentPosition();case"duration":return d.getDuration();case"volume":return d.getVolume();case"paused":return u;case"ended":return l;case"muted":return d.isMuted();case"buffered":return{start:function(){return 0},end:function(){return 0},length:1};case"src":return c;case"readyState":return 4}return null}return null},o["set"+n]=function(n){if(null!==d)switch(t){case"src":var i="string"==typeof n?n:n[0].src;c=i,N.remove(),(N=document.createElement("div")).id=o.id,N.className="fb-video",N.setAttribute("data-href",i),N.setAttribute("data-allowfullscreen","true"),N.setAttribute("data-controls","false"),e.originalNode.parentNode.insertBefore(N,e.originalNode),e.originalNode.style.display="none",r.load({lang:o.options.lang,id:o.id}),FB.XFBML.parse(),p&&d.play();break;case"currentTime":d.seek(n);break;case"muted":n?d.mute():d.unmute(),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",o);e.dispatchEvent(t)},50);break;case"volume":d.setVolume(n),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",o);e.dispatchEvent(t)},50);break;case"readyState":var s=mejs.Utils.createEvent("canplay",o);e.dispatchEvent(s)}else a.push({type:"set",propName:t,value:n})}}(m[v]);for(var y=mejs.html5media.methods,b=0,h=y.length;b<h;b++)!function(e){o[e]=function(){if(null!==d)switch(e){case"play":return d.play();case"pause":return d.pause();case"load":return null}else a.push({type:"call",methodName:e})}}(y[b]);window["__ready__"+o.id]=function(){FB.Event.subscribe("xfbml.ready",function(t){if("video"===t.type&&o.id===t.id){e.fbPlayer=d=t.instance;var n=document.getElementById(o.id),r=n.offsetWidth,c=n.offsetHeight,f=["mouseover","mouseout"];o.setSize(r,c),e.originalNode.muted||d.unmute(),p&&d.play();for(var m=0,v=f.length;m<v;m++)n.addEventListener(f[m],function(t){var n=mejs.Utils.createEvent(t.type,o);e.dispatchEvent(n)});o.eventHandler={};for(var g=["startedPlaying","paused","finishedPlaying","startedBuffering","finishedBuffering"],y=0,b=g.length;y<b;y++){var h=g[y],N=o.eventHandler[h];void 0===N||null===N||mejs.Utils.isObjectEmpty(N)||"function"!=typeof N.removeListener||N.removeListener(h)}if(a.length)for(var E=0,w=a.length;E<w;E++){var k=a[E];if("set"===k.type){var _=k.propName,j=""+_.substring(0,1).toUpperCase()+_.substring(1);o["set"+j](k.value)}else"call"===k.type&&o[k.methodName]()}i(["rendererready","loadeddata","canplay","progress","loadedmetadata","timeupdate"]);var B=void 0;o.eventHandler.startedPlaying=d.subscribe("startedPlaying",function(){s||(s=!0),u=!1,l=!1,i(["play","playing","timeupdate"]),B=setInterval(function(){d.getCurrentPosition(),i(["timeupdate"])},250)}),o.eventHandler.paused=d.subscribe("paused",function(){u=!0,l=!1,i(["pause"])}),o.eventHandler.finishedPlaying=d.subscribe("finishedPlaying",function(){u=!0,l=!0,i(["ended"]),clearInterval(B),B=null}),o.eventHandler.startedBuffering=d.subscribe("startedBuffering",function(){i(["progress","timeupdate"])}),o.eventHandler.finishedBuffering=d.subscribe("finishedBuffering",function(){i(["progress","timeupdate"])})}})},c=n[0].src;var N=document.createElement("div");return N.id=o.id,N.className="fb-video",N.setAttribute("data-href",c),N.setAttribute("data-allowfullscreen","true"),N.setAttribute("data-controls",!!e.originalNode.controls),e.originalNode.parentNode.insertBefore(N,e.originalNode),e.originalNode.style.display="none",r.load({options:o.options.facebook,id:o.id}),o.hide=function(){o.pause(),d&&(N.style.display="none")},o.setSize=function(e){null===d||isNaN(e)||(N.style.width=e)},o.show=function(){d&&(N.style.display="")},o.destroy=function(){f&&e.originalNode.setAttribute("poster",f)},o}};mejs.Utils.typeChecks.push(function(e){return~e.toLowerCase().indexOf("//www.facebook")?"video/x-facebook":null}),mejs.Renderers.add(i)},{}]},{},[1]);
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/mediaelement/renderers/vimeo.js DELETED
@@ -1,412 +0,0 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
- 'use strict';
13
-
14
- var VimeoApi = {
15
-
16
- promise: null,
17
-
18
- load: function load(settings) {
19
-
20
- if (typeof Vimeo !== 'undefined') {
21
- VimeoApi._createPlayer(settings);
22
- } else {
23
- VimeoApi.promise = VimeoApi.promise || mejs.Utils.loadScript('https://player.vimeo.com/api/player.js');
24
- VimeoApi.promise.then(function () {
25
- VimeoApi._createPlayer(settings);
26
- });
27
- }
28
- },
29
-
30
- _createPlayer: function _createPlayer(settings) {
31
- var player = new Vimeo.Player(settings.iframe);
32
- window['__ready__' + settings.id](player);
33
- },
34
-
35
- getVimeoId: function getVimeoId(url) {
36
- if (url === undefined || url === null) {
37
- return null;
38
- }
39
-
40
- var parts = url.split('?');
41
- url = parts[0];
42
- return parseInt(url.substring(url.lastIndexOf('/') + 1), 10);
43
- }
44
- };
45
-
46
- var vimeoIframeRenderer = {
47
-
48
- name: 'vimeo_iframe',
49
- options: {
50
- prefix: 'vimeo_iframe'
51
- },
52
-
53
- canPlayType: function canPlayType(type) {
54
- return ~['video/vimeo', 'video/x-vimeo'].indexOf(type.toLowerCase());
55
- },
56
-
57
- create: function create(mediaElement, options, mediaFiles) {
58
- var apiStack = [],
59
- vimeo = {},
60
- readyState = 4;
61
-
62
- var paused = true,
63
- volume = 1,
64
- oldVolume = volume,
65
- currentTime = 0,
66
- bufferedTime = 0,
67
- ended = false,
68
- duration = 0,
69
- vimeoPlayer = null,
70
- url = '';
71
-
72
- vimeo.options = options;
73
- vimeo.id = mediaElement.id + '_' + options.prefix;
74
- vimeo.mediaElement = mediaElement;
75
-
76
- var errorHandler = function errorHandler(error) {
77
- mediaElement.generateError('Code ' + error.name + ': ' + error.message, mediaFiles);
78
- };
79
-
80
- var props = mejs.html5media.properties,
81
- assignGettersSetters = function assignGettersSetters(propName) {
82
-
83
- var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
84
-
85
- vimeo['get' + capName] = function () {
86
- if (vimeoPlayer !== null) {
87
- var value = null;
88
-
89
- switch (propName) {
90
- case 'currentTime':
91
- return currentTime;
92
- case 'duration':
93
- return duration;
94
- case 'volume':
95
- return volume;
96
- case 'muted':
97
- return volume === 0;
98
- case 'paused':
99
- return paused;
100
- case 'ended':
101
- return ended;
102
- case 'src':
103
- vimeoPlayer.getVideoUrl().then(function (_url) {
104
- url = _url;
105
- }).catch(function (error) {
106
- return errorHandler(error);
107
- });
108
- return url;
109
- case 'buffered':
110
- return {
111
- start: function start() {
112
- return 0;
113
- },
114
- end: function end() {
115
- return bufferedTime * duration;
116
- },
117
- length: 1
118
- };
119
- case 'readyState':
120
- return readyState;
121
- }
122
- return value;
123
- } else {
124
- return null;
125
- }
126
- };
127
-
128
- vimeo['set' + capName] = function (value) {
129
- if (vimeoPlayer !== null) {
130
- switch (propName) {
131
- case 'src':
132
- var _url2 = typeof value === 'string' ? value : value[0].src,
133
- videoId = VimeoApi.getVimeoId(_url2);
134
-
135
- vimeoPlayer.loadVideo(videoId).then(function () {
136
- if (mediaElement.originalNode.autoplay) {
137
- vimeoPlayer.play();
138
- }
139
- }).catch(function (error) {
140
- return errorHandler(error);
141
- });
142
- break;
143
- case 'currentTime':
144
- vimeoPlayer.setCurrentTime(value).then(function () {
145
- currentTime = value;
146
- setTimeout(function () {
147
- var event = mejs.Utils.createEvent('timeupdate', vimeo);
148
- mediaElement.dispatchEvent(event);
149
- }, 50);
150
- }).catch(function (error) {
151
- return errorHandler(error);
152
- });
153
- break;
154
- case 'volume':
155
- vimeoPlayer.setVolume(value).then(function () {
156
- volume = value;
157
- oldVolume = volume;
158
- setTimeout(function () {
159
- var event = mejs.Utils.createEvent('volumechange', vimeo);
160
- mediaElement.dispatchEvent(event);
161
- }, 50);
162
- }).catch(function (error) {
163
- return errorHandler(error);
164
- });
165
- break;
166
- case 'loop':
167
- vimeoPlayer.setLoop(value).catch(function (error) {
168
- return errorHandler(error);
169
- });
170
- break;
171
- case 'muted':
172
- if (value) {
173
- vimeoPlayer.setVolume(0).then(function () {
174
- volume = 0;
175
- setTimeout(function () {
176
- var event = mejs.Utils.createEvent('volumechange', vimeo);
177
- mediaElement.dispatchEvent(event);
178
- }, 50);
179
- }).catch(function (error) {
180
- return errorHandler(error);
181
- });
182
- } else {
183
- vimeoPlayer.setVolume(oldVolume).then(function () {
184
- volume = oldVolume;
185
- setTimeout(function () {
186
- var event = mejs.Utils.createEvent('volumechange', vimeo);
187
- mediaElement.dispatchEvent(event);
188
- }, 50);
189
- }).catch(function (error) {
190
- return errorHandler(error);
191
- });
192
- }
193
- break;
194
- case 'readyState':
195
- var event = mejs.Utils.createEvent('canplay', vimeo);
196
- mediaElement.dispatchEvent(event);
197
- break;
198
- default:
199
-
200
- break;
201
- }
202
- } else {
203
- apiStack.push({ type: 'set', propName: propName, value: value });
204
- }
205
- };
206
- };
207
-
208
- for (var i = 0, total = props.length; i < total; i++) {
209
- assignGettersSetters(props[i]);
210
- }
211
-
212
- var methods = mejs.html5media.methods,
213
- assignMethods = function assignMethods(methodName) {
214
- vimeo[methodName] = function () {
215
- if (vimeoPlayer !== null) {
216
- switch (methodName) {
217
- case 'play':
218
- paused = false;
219
- return vimeoPlayer.play();
220
- case 'pause':
221
- paused = true;
222
- return vimeoPlayer.pause();
223
- case 'load':
224
- return null;
225
- }
226
- } else {
227
- apiStack.push({ type: 'call', methodName: methodName });
228
- }
229
- };
230
- };
231
-
232
- for (var _i = 0, _total = methods.length; _i < _total; _i++) {
233
- assignMethods(methods[_i]);
234
- }
235
-
236
- window['__ready__' + vimeo.id] = function (_vimeoPlayer) {
237
-
238
- mediaElement.vimeoPlayer = vimeoPlayer = _vimeoPlayer;
239
-
240
- if (apiStack.length) {
241
- for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) {
242
- var stackItem = apiStack[_i2];
243
-
244
- if (stackItem.type === 'set') {
245
- var propName = stackItem.propName,
246
- capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
247
-
248
- vimeo['set' + capName](stackItem.value);
249
- } else if (stackItem.type === 'call') {
250
- vimeo[stackItem.methodName]();
251
- }
252
- }
253
- }
254
-
255
- if (mediaElement.originalNode.muted) {
256
- vimeoPlayer.setVolume(0);
257
- volume = 0;
258
- }
259
-
260
- var vimeoIframe = document.getElementById(vimeo.id);
261
- var events = void 0;
262
-
263
- events = ['mouseover', 'mouseout'];
264
-
265
- var assignEvents = function assignEvents(e) {
266
- var event = mejs.Utils.createEvent(e.type, vimeo);
267
- mediaElement.dispatchEvent(event);
268
- };
269
-
270
- for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
271
- vimeoIframe.addEventListener(events[_i3], assignEvents, false);
272
- }
273
-
274
- vimeoPlayer.on('loaded', function () {
275
- vimeoPlayer.getDuration().then(function (loadProgress) {
276
- duration = loadProgress;
277
- if (duration > 0) {
278
- bufferedTime = duration * loadProgress;
279
- if (mediaElement.originalNode.autoplay) {
280
- paused = false;
281
- ended = false;
282
- var event = mejs.Utils.createEvent('play', vimeo);
283
- mediaElement.dispatchEvent(event);
284
- }
285
- }
286
- }).catch(function (error) {
287
- errorHandler(error, vimeo);
288
- });
289
- });
290
- vimeoPlayer.on('progress', function () {
291
- vimeoPlayer.getDuration().then(function (loadProgress) {
292
- duration = loadProgress;
293
-
294
- if (duration > 0) {
295
- bufferedTime = duration * loadProgress;
296
- if (mediaElement.originalNode.autoplay) {
297
- var initEvent = mejs.Utils.createEvent('play', vimeo);
298
- mediaElement.dispatchEvent(initEvent);
299
-
300
- var playingEvent = mejs.Utils.createEvent('playing', vimeo);
301
- mediaElement.dispatchEvent(playingEvent);
302
- }
303
- }
304
-
305
- var event = mejs.Utils.createEvent('progress', vimeo);
306
- mediaElement.dispatchEvent(event);
307
- }).catch(function (error) {
308
- return errorHandler(error);
309
- });
310
- });
311
- vimeoPlayer.on('timeupdate', function () {
312
- vimeoPlayer.getCurrentTime().then(function (seconds) {
313
- currentTime = seconds;
314
- var event = mejs.Utils.createEvent('timeupdate', vimeo);
315
- mediaElement.dispatchEvent(event);
316
- }).catch(function (error) {
317
- return errorHandler(error);
318
- });
319
- });
320
- vimeoPlayer.on('play', function () {
321
- paused = false;
322
- ended = false;
323
- var event = mejs.Utils.createEvent('play', vimeo);
324
- mediaElement.dispatchEvent(event);
325
-
326
- var playingEvent = mejs.Utils.createEvent('playing', vimeo);
327
- mediaElement.dispatchEvent(playingEvent);
328
- });
329
- vimeoPlayer.on('pause', function () {
330
- paused = true;
331
- ended = false;
332
-
333
- var event = mejs.Utils.createEvent('pause', vimeo);
334
- mediaElement.dispatchEvent(event);
335
- });
336
- vimeoPlayer.on('ended', function () {
337
- paused = false;
338
- ended = true;
339
-
340
- var event = mejs.Utils.createEvent('ended', vimeo);
341
- mediaElement.dispatchEvent(event);
342
- });
343
-
344
- events = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay'];
345
-
346
- for (var _i4 = 0, _total4 = events.length; _i4 < _total4; _i4++) {
347
- var event = mejs.Utils.createEvent(events[_i4], vimeo);
348
- mediaElement.dispatchEvent(event);
349
- }
350
- };
351
-
352
- var height = mediaElement.originalNode.height,
353
- width = mediaElement.originalNode.width,
354
- vimeoContainer = document.createElement('iframe'),
355
- standardUrl = 'https://player.vimeo.com/video/' + VimeoApi.getVimeoId(mediaFiles[0].src);
356
-
357
- var queryArgs = ~mediaFiles[0].src.indexOf('?') ? '?' + mediaFiles[0].src.slice(mediaFiles[0].src.indexOf('?') + 1) : '';
358
- if (queryArgs && mediaElement.originalNode.autoplay && queryArgs.indexOf('autoplay') === -1) {
359
- queryArgs += '&autoplay=1';
360
- }
361
- if (queryArgs && mediaElement.originalNode.loop && queryArgs.indexOf('loop') === -1) {
362
- queryArgs += '&loop=1';
363
- }
364
-
365
- vimeoContainer.setAttribute('id', vimeo.id);
366
- vimeoContainer.setAttribute('width', width);
367
- vimeoContainer.setAttribute('height', height);
368
- vimeoContainer.setAttribute('frameBorder', '0');
369
- vimeoContainer.setAttribute('src', '' + standardUrl + queryArgs);
370
- vimeoContainer.setAttribute('webkitallowfullscreen', 'true');
371
- vimeoContainer.setAttribute('mozallowfullscreen', 'true');
372
- vimeoContainer.setAttribute('allowfullscreen', 'true');
373
- vimeoContainer.setAttribute('allow', 'autoplay');
374
-
375
- mediaElement.originalNode.parentNode.insertBefore(vimeoContainer, mediaElement.originalNode);
376
- mediaElement.originalNode.style.display = 'none';
377
-
378
- VimeoApi.load({
379
- iframe: vimeoContainer,
380
- id: vimeo.id
381
- });
382
-
383
- vimeo.hide = function () {
384
- vimeo.pause();
385
- if (vimeoPlayer) {
386
- vimeoContainer.style.display = 'none';
387
- }
388
- };
389
- vimeo.setSize = function (width, height) {
390
- vimeoContainer.setAttribute('width', width);
391
- vimeoContainer.setAttribute('height', height);
392
- };
393
- vimeo.show = function () {
394
- if (vimeoPlayer) {
395
- vimeoContainer.style.display = '';
396
- }
397
- };
398
-
399
- vimeo.destroy = function () {};
400
-
401
- return vimeo;
402
- }
403
- };
404
-
405
- mejs.Utils.typeChecks.push(function (url) {
406
- return (/(\/\/player\.vimeo|vimeo\.com)/i.test(url) ? 'video/x-vimeo' : null
407
- );
408
- });
409
-
410
- mejs.Renderers.add(vimeoIframeRenderer);
411
-
412
- },{}]},{},[1]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/mediaelement/renderers/vimeo.min.js DELETED
@@ -1,12 +0,0 @@
1
- /*!
2
- * MediaElement.js
3
- * http://www.mediaelementjs.com/
4
- *
5
- * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
- * using a variety of technologies (pure JavaScript, Flash, iframe)
7
- *
8
- * Copyright 2010-2017, John Dyer (http://j.hn/)
9
- * License: MIT
10
- *
11
- */
12
- !function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return i(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){"use strict";var r={promise:null,load:function(e){"undefined"!=typeof Vimeo?r._createPlayer(e):(r.promise=r.promise||mejs.Utils.loadScript("https://player.vimeo.com/api/player.js"),r.promise.then(function(){r._createPlayer(e)}))},_createPlayer:function(e){var t=new Vimeo.Player(e.iframe);window["__ready__"+e.id](t)},getVimeoId:function(e){return void 0===e||null===e?null:(e=e.split("?")[0],parseInt(e.substring(e.lastIndexOf("/")+1),10))}},i={name:"vimeo_iframe",options:{prefix:"vimeo_iframe"},canPlayType:function(e){return~["video/vimeo","video/x-vimeo"].indexOf(e.toLowerCase())},create:function(e,t,n){var i=[],a={},o=!0,s=1,u=s,c=0,l=0,d=!1,f=0,p=null,m="";a.options=t,a.id=e.id+"_"+t.prefix,a.mediaElement=e;for(var v=function(t){e.generateError("Code "+t.name+": "+t.message,n)},h=mejs.html5media.properties,y=0,g=h.length;y<g;y++)!function(t){var n=""+t.substring(0,1).toUpperCase()+t.substring(1);a["get"+n]=function(){if(null!==p){switch(t){case"currentTime":return c;case"duration":return f;case"volume":return s;case"muted":return 0===s;case"paused":return o;case"ended":return d;case"src":return p.getVideoUrl().then(function(e){m=e}).catch(function(e){return v(e)}),m;case"buffered":return{start:function(){return 0},end:function(){return l*f},length:1};case"readyState":return 4}return null}return null},a["set"+n]=function(n){if(null!==p)switch(t){case"src":var o="string"==typeof n?n:n[0].src,l=r.getVimeoId(o);p.loadVideo(l).then(function(){e.originalNode.autoplay&&p.play()}).catch(function(e){return v(e)});break;case"currentTime":p.setCurrentTime(n).then(function(){c=n,setTimeout(function(){var t=mejs.Utils.createEvent("timeupdate",a);e.dispatchEvent(t)},50)}).catch(function(e){return v(e)});break;case"volume":p.setVolume(n).then(function(){u=s=n,setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50)}).catch(function(e){return v(e)});break;case"loop":p.setLoop(n).catch(function(e){return v(e)});break;case"muted":n?p.setVolume(0).then(function(){s=0,setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50)}).catch(function(e){return v(e)}):p.setVolume(u).then(function(){s=u,setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50)}).catch(function(e){return v(e)});break;case"readyState":var d=mejs.Utils.createEvent("canplay",a);e.dispatchEvent(d)}else i.push({type:"set",propName:t,value:n})}}(h[y]);for(var E=mejs.html5media.methods,U=0,b=E.length;U<b;U++)!function(e){a[e]=function(){if(null!==p)switch(e){case"play":return o=!1,p.play();case"pause":return o=!0,p.pause();case"load":return null}else i.push({type:"call",methodName:e})}}(E[U]);window["__ready__"+a.id]=function(t){if(e.vimeoPlayer=p=t,i.length)for(var n=0,r=i.length;n<r;n++){var u=i[n];if("set"===u.type){var m=u.propName,h=""+m.substring(0,1).toUpperCase()+m.substring(1);a["set"+h](u.value)}else"call"===u.type&&a[u.methodName]()}e.originalNode.muted&&(p.setVolume(0),s=0);for(var y=document.getElementById(a.id),g=void 0,E=0,U=(g=["mouseover","mouseout"]).length;E<U;E++)y.addEventListener(g[E],function(t){var n=mejs.Utils.createEvent(t.type,a);e.dispatchEvent(n)},!1);p.on("loaded",function(){p.getDuration().then(function(t){if((f=t)>0&&(l=f*t,e.originalNode.autoplay)){o=!1,d=!1;var n=mejs.Utils.createEvent("play",a);e.dispatchEvent(n)}}).catch(function(e){v(e)})}),p.on("progress",function(){p.getDuration().then(function(t){if((f=t)>0&&(l=f*t,e.originalNode.autoplay)){var n=mejs.Utils.createEvent("play",a);e.dispatchEvent(n);var r=mejs.Utils.createEvent("playing",a);e.dispatchEvent(r)}var i=mejs.Utils.createEvent("progress",a);e.dispatchEvent(i)}).catch(function(e){return v(e)})}),p.on("timeupdate",function(){p.getCurrentTime().then(function(t){c=t;var n=mejs.Utils.createEvent("timeupdate",a);e.dispatchEvent(n)}).catch(function(e){return v(e)})}),p.on("play",function(){o=!1,d=!1;var t=mejs.Utils.createEvent("play",a);e.dispatchEvent(t);var n=mejs.Utils.createEvent("playing",a);e.dispatchEvent(n)}),p.on("pause",function(){o=!0,d=!1;var t=mejs.Utils.createEvent("pause",a);e.dispatchEvent(t)}),p.on("ended",function(){o=!1,d=!0;var t=mejs.Utils.createEvent("ended",a);e.dispatchEvent(t)});for(var b=0,j=(g=["rendererready","loadedmetadata","loadeddata","canplay"]).length;b<j;b++){var w=mejs.Utils.createEvent(g[b],a);e.dispatchEvent(w)}};var j=e.originalNode.height,w=e.originalNode.width,N=document.createElement("iframe"),_="https://player.vimeo.com/video/"+r.getVimeoId(n[0].src),x=~n[0].src.indexOf("?")?"?"+n[0].src.slice(n[0].src.indexOf("?")+1):"";return x&&e.originalNode.autoplay&&-1===x.indexOf("autoplay")&&(x+="&autoplay=1"),x&&e.originalNode.loop&&-1===x.indexOf("loop")&&(x+="&loop=1"),N.setAttribute("id",a.id),N.setAttribute("width",w),N.setAttribute("height",j),N.setAttribute("frameBorder","0"),N.setAttribute("src",""+_+x),N.setAttribute("webkitallowfullscreen","true"),N.setAttribute("mozallowfullscreen","true"),N.setAttribute("allowfullscreen","true"),N.setAttribute("allow","autoplay"),e.originalNode.parentNode.insertBefore(N,e.originalNode),e.originalNode.style.display="none",r.load({iframe:N,id:a.id}),a.hide=function(){a.pause(),p&&(N.style.display="none")},a.setSize=function(e,t){N.setAttribute("width",e),N.setAttribute("height",t)},a.show=function(){p&&(N.style.display="")},a.destroy=function(){},a}};mejs.Utils.typeChecks.push(function(e){return/(\/\/player\.vimeo|vimeo\.com)/i.test(e)?"video/x-vimeo":null}),mejs.Renderers.add(i)},{}]},{},[1]);
 
 
 
 
 
 
 
 
 
 
 
 
public/assets/player/can-autoplay/can-autoplay.min.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.owns=function(a,c){return Object.prototype.hasOwnProperty.call(a,c)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,e){a!=Array.prototype&&a!=Object.prototype&&(a[c]=e.value)};
2
+ $jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,c,e,f){if(c){e=$jscomp.global;a=a.split(".");for(f=0;f<a.length-1;f++){var b=a[f];b in e||(e[b]={});e=e[b]}a=a[a.length-1];f=e[a];c=c(f);c!=f&&null!=c&&$jscomp.defineProperty(e,a,{configurable:!0,writable:!0,value:c})}};
3
+ $jscomp.polyfill("Object.assign",function(a){return a?a:function(a,e){for(var c=1;c<arguments.length;c++){var b=arguments[c];if(b)for(var g in b)$jscomp.owns(b,g)&&(a[g]=b[g])}return a}},"es6","es3");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var a=0;return function(c){return $jscomp.SYMBOL_PREFIX+(c||"")+a++}}();
4
+ $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var c=0;return $jscomp.iteratorPrototype(function(){return c<a.length?{done:!1,value:a[c++]}:{done:!0}})};
5
+ $jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.makeIterator=function(a){$jscomp.initSymbolIterator();var c=a[Symbol.iterator];return c?c.call(a):$jscomp.arrayIterator(a)};$jscomp.FORCE_POLYFILL_PROMISE=!1;
6
+ $jscomp.polyfill("Promise",function(a){function c(){this.batch_=null}function e(d){return d instanceof b?d:new b(function(a,b){a(d)})}if(a&&!$jscomp.FORCE_POLYFILL_PROMISE)return a;c.prototype.asyncExecute=function(d){null==this.batch_&&(this.batch_=[],this.asyncExecuteBatch_());this.batch_.push(d);return this};c.prototype.asyncExecuteBatch_=function(){var d=this;this.asyncExecuteFunction(function(){d.executeBatch_()})};var f=$jscomp.global.setTimeout;c.prototype.asyncExecuteFunction=function(d){f(d,
7
+ 0)};c.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var d=this.batch_;this.batch_=[];for(var a=0;a<d.length;++a){var b=d[a];delete d[a];try{b()}catch(h){this.asyncThrow_(h)}}}this.batch_=null};c.prototype.asyncThrow_=function(d){this.asyncExecuteFunction(function(){throw d;})};var b=function(d){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var a=this.createResolveAndReject_();try{d(a.resolve,a.reject)}catch(l){a.reject(l)}};b.prototype.createResolveAndReject_=
8
+ function(){function a(a){return function(d){c||(c=!0,a.call(b,d))}}var b=this,c=!1;return{resolve:a(this.resolveTo_),reject:a(this.reject_)}};b.prototype.resolveTo_=function(a){if(a===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(a instanceof b)this.settleSameAsPromise_(a);else{a:switch(typeof a){case "object":var d=null!=a;break a;case "function":d=!0;break a;default:d=!1}d?this.resolveToNonPromiseObj_(a):this.fulfill_(a)}};b.prototype.resolveToNonPromiseObj_=function(a){var b=
9
+ void 0;try{b=a.then}catch(l){this.reject_(l);return}"function"==typeof b?this.settleSameAsThenable_(b,a):this.fulfill_(a)};b.prototype.reject_=function(a){this.settle_(2,a)};b.prototype.fulfill_=function(a){this.settle_(1,a)};b.prototype.settle_=function(a,b){if(0!=this.state_)throw Error("Cannot settle("+a+", "+b|"): Promise already settled in state"+this.state_);this.state_=a;this.result_=b;this.executeOnSettledCallbacks_()};b.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var a=
10
+ this.onSettledCallbacks_,b=0;b<a.length;++b)a[b].call(),a[b]=null;this.onSettledCallbacks_=null}};var g=new c;b.prototype.settleSameAsPromise_=function(a){var b=this.createResolveAndReject_();a.callWhenSettled_(b.resolve,b.reject)};b.prototype.settleSameAsThenable_=function(a,b){var c=this.createResolveAndReject_();try{a.call(b,c.resolve,c.reject)}catch(h){c.reject(h)}};b.prototype.then=function(a,c){function d(a,b){return"function"==typeof a?function(b){try{h(a(b))}catch(m){e(m)}}:b}var h,e,g=new b(function(a,
11
+ b){h=a;e=b});this.callWhenSettled_(d(a,h),d(c,e));return g};b.prototype.catch=function(a){return this.then(void 0,a)};b.prototype.callWhenSettled_=function(a,b){function c(){switch(d.state_){case 1:a(d.result_);break;case 2:b(d.result_);break;default:throw Error("Unexpected state: "+d.state_);}}var d=this;null==this.onSettledCallbacks_?g.asyncExecute(c):this.onSettledCallbacks_.push(function(){g.asyncExecute(c)})};b.resolve=e;b.reject=function(a){return new b(function(b,c){c(a)})};b.race=function(a){return new b(function(b,
12
+ c){for(var d=$jscomp.makeIterator(a),g=d.next();!g.done;g=d.next())e(g.value).callWhenSettled_(b,c)})};b.all=function(a){var c=$jscomp.makeIterator(a),d=c.next();return d.done?e([]):new b(function(a,b){function g(b){return function(c){f[b]=c;h--;0==h&&a(f)}}var f=[],h=0;do f.push(void 0),h++,e(d.value).callWhenSettled_(g(f.length-1),b),d=c.next();while(!d.done)})};return b},"es6","es3");
13
+ (function(a,c){"object"===typeof exports&&"undefined"!==typeof module?module.exports=c():"function"===typeof define&&define.amd?define(c):a.canAutoplay=c()})(this,function(){function a(a){return Object.assign({muted:!1,timeout:250,inline:!1},a)}function c(a,c){var b=a.muted,e=a.timeout;a=a.inline;c=c();var f=c.element;c=c.source;var h=void 0,g=void 0,k=void 0;f.muted=b;!0===b&&f.setAttribute("muted","muted");!0===a&&f.setAttribute("playsinline","playsinline");f.src=c;return new Promise(function(a){h=
14
+ f.play();g=setTimeout(function(){k(!1,Error("Timeout "+e+" ms has been reached"))},e);k=function(b){var c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;clearTimeout(g);a({result:b,error:c})};void 0!==h?h.then(function(){return k(!0)}).catch(function(a){return k(!1,a)}):k(!0)})}var e=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,
15
+ 59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
16
+ 170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),f=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
17
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
18
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
19
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,
20
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,
21
+ 0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,
22
+ 1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,
23
+ 29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});return{audio:function(b){b=a(b);return c(b,function(){return{element:document.createElement("audio"),source:URL.createObjectURL(e)}})},video:function(b){b=a(b);return c(b,function(){return{element:document.createElement("video"),source:URL.createObjectURL(f)}})}}});
public/assets/{mediaelement → player}/index.html RENAMED
File without changes
public/assets/player/videojs-plugins/dailymotion/videojs-dailymotion.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! @name videojs-dailymotion @version 1.0.0 @license Apache-2.0 */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e=e||self).videojsDailymotion=t(e.videojs)}(this,function(e){"use strict";var t,i,o,a,n,s,r,d,l=(e=e&&e.hasOwnProperty("default")?e.default:e).browser.IS_IOS||e.browser.IS_NATIVE_ANDROID,u=e.getComponent("Tech"),c=function(t){var i,o;function a(e,i){var o;return(o=t.call(this,e,i)||this).dailymotionInfo={source:"",state:"unstarted",isSeeking:!1},o.setPoster(e.poster),o.setSrc(o.options_.source.src),o.setTimeout(function(){this.el_&&(this.el_.parentNode.className+=" vjs-dailymotion",l&&(this.el_.parentNode.className+=" vjs-dailymotion-mobile"),e.poster||(this.el_.parentNode.className+=" vjs-no-poster"),a.isApiReady?this.initDailymotionPlayer():a.apiReadyQueue.push(this))}.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(o))),o}o=t,(i=a).prototype=Object.create(o.prototype),i.prototype.constructor=i,i.__proto__=o;var n=a.prototype;return n.dispose=function(){if(this.dailymotionPlayer)DM.destroy(this.options_.techId);else{var e=a.apiReadyQueue.indexOf(this);-1!==e&&a.apiReadyQueue.splice(e,1)}this.dailymotionPlayer=null,this.el_.parentNode.className=this.el_.parentNode.className.replace(" vjs-dailymotion","").replace(" vjs-dailymotion-mobile","").replace(" vjs-no-poster",""),this.el_.parentNode.removeChild(this.el_),t.prototype.dispose.call(this)},n.createEl=function(){var e=document.createElement("div");e.setAttribute("id",this.options_.techId),e.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%"),e.setAttribute("class","vjs-tech");var t=document.createElement("div");if(t.appendChild(e),!l&&!this.options_.dailymotionControls){var i=document.createElement("div");i.setAttribute("class","vjs-iframe-blocker"),i.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%"),i.onclick=function(){this.pause()}.bind(this),t.appendChild(i)}return t},n.initDailymotionPlayer=function(){var e={controls:!0,"ui-logo":!1,"ui-start-screen-info":!1,"sharing-enable":!1,mute:!1,start:0};void 0!==this.options_.muted&&(e.mute=!!this.options_.muted),void 0!==this.options_.start&&(e.start=this.options_.start),this.dailymotionPlayer=DM.player(this.options_.techId,{video:this.dailymotionInfo.source.videoId,params:e}),this.trigger("loadstart");for(var t=["playback_ready","start","durationchange","volumechange","waiting","progress","timeupdate","play","playing","pause","seeking","seeked","ad_play","ad_pause","ad_timeupdate","end","error"],i=this.onStateChange.bind(this),o=0;o<t.length;o++)this.dailymotionPlayer.addEventListener(t[o],i)},n.onPlayerReady=function(){this.isReady_=!0,this.triggerReady(),this.trigger("loadedmetadata"),this.trigger("loadeddata"),this.trigger("canplay"),this.trigger("volumechange"),this.playOnReady&&this.play()},n.onStateChange=function(e){switch(e.type){case"playback_ready":this.onPlayerReady();break;case"start":this.dailymotionPlayer.setControls(!1);break;case"durationchange":this.trigger("durationchange");break;case"volumechange":this.trigger("volumechange");break;case"waiting":this.dailymotionInfo.state="buffering",this.trigger("waiting");break;case"progress":this.trigger("progress");break;case"timeupdate":case"ad_timeupdate":this.trigger("timeupdate");break;case"play":case"ad_play":this.dailymotionInfo.state="playing",this.trigger("play");break;case"playing":this.dailymotionInfo.state="playing",this.trigger("playing");break;case"pause":case"ad_pause":this.dailymotionInfo.state="paused",this.trigger("pause");break;case"seeking":this.dailymotionInfo.isSeeking=!0,this.trigger("seeking");break;case"seeked":this.dailymotionInfo.isSeeking=!1,this.trigger("seeked");break;case"end":this.options_.loop?this.setCurrentTime(0):(this.dailymotionInfo.state="ended",this.trigger("ended"));break;case"error":console.log(error)}},n.poster=function(){return this.poster_},n.setPoster=function(e){this.poster_=e},n.src=function(e){if(void 0===e)return this.options_.source;this.setSrc(e)},n.setSrc=function(e){e&&(this.dailymotionInfo.source=a.parseUrl(e),this.options_.autoplay&&!l&&this.play())},n.currentSrc=function(){return this.options_.source.src},n.play=function(){this.isReady_?this.dailymotionPlayer.play():(this.trigger("waiting"),this.playOnReady=!0)},n.pause=function(){this.dailymotionPlayer&&this.dailymotionPlayer.pause()},n.paused=function(){return"playing"!==this.dailymotionInfo.state&&"buffering"!==this.dailymotionInfo.state},n.currentTime=function(){return this.dailymotionPlayer?this.dailymotionPlayer.currentTime:0},n.setCurrentTime=function(e){this.dailymotionPlayer&&(this.dailymotionPlayer.seek(e),this.trigger("timeupdate"))},n.duration=function(){return this.dailymotionPlayer?this.dailymotionPlayer.duration:0},n.buffered=function(){return this.dailymotionPlayer?e.createTimeRange(0,this.dailymotionPlayer.bufferedTime):e.createTimeRange()},n.seeking=function(){return this.dailymotionInfo.isSeeking},n.seekable=function(){return this.dailymotionPlayer?e.createTimeRange(0,this.dailymotionPlayer.duration):e.createTimeRange()},n.volume=function(){return this.dailymotionPlayer?this.dailymotionPlayer.volume:1},n.setVolume=function(e){this.dailymotionPlayer&&this.dailymotionPlayer.setVolume(e)},n.muted=function(){return!!this.dailymotionPlayer&&this.dailymotionPlayer.muted},n.setMuted=function(e){this.dailymotionPlayer&&this.dailymotionPlayer.setMuted(e)},n.ended=function(){return"ended"===this.dailymotionInfo.state},n.playbackRate=function(){return 1},n.supportsFullScreen=function(){return!0},a}(u);return c.prototype.featuresProgressEvents=!0,c.prototype.featuresTimeupdateEvents=!0,c.isSupported=function(){return!0},c.parseUrl=function(e){var t={videoId:null},i=e.match(/^.+dailymotion.com\/((video|hub)\/([^_]+))?[^#]*(#video=([^_&]+))?/);return i&&(t.videoId=i[5]||i[3]),t},u.withSourceHandlers(c),c.nativeSourceHandler={},c.nativeSourceHandler.canPlayType=function(e){return"video/dailymotion"===e?"maybe":""},c.nativeSourceHandler.canHandleSource=function(e,t){if(e.type)return c.nativeSourceHandler.canPlayType(e.type);if(e.src){var i=/dailymotion.com/.test(e.src)?"video/dailymotion":"";return c.nativeSourceHandler.canPlayType(i)}return""},c.nativeSourceHandler.handleSource=function(e,t,i){t.setSrc(e.src)},c.nativeSourceHandler.dispose=function(){},c.registerSourceHandler(c.nativeSourceHandler),c.apiReadyQueue=[],"undefined"!=typeof document&&(a="https://api.dmcdn.net/all.js",n=function(){DM.init({apiKey:null,status:!0,cookie:!0}),c.isApiReady=!0;for(var e=0;e<c.apiReadyQueue.length;++e)c.apiReadyQueue[e].initDailymotionPlayer()},s=!1,r=document.createElement("script"),(d=document.getElementsByTagName("script")[0]).parentNode.insertBefore(r,d),r.onload=function(){s||(s=!0,n())},r.onreadystatechange=function(){s||"complete"!==this.readyState&&"loaded"!==this.readyState||(s=!0,n())},r.src=a,t=".vjs-dailymotion iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }.vjs-dailymotion .vjs-iframe-blocker { display: none; }.vjs-dailymotion.vjs-has-started.vjs-user-inactive .vjs-iframe-blocker { display: block; }.vjs-dailymotion:not(.vjs-has-started) .vjs-poster, .vjs-dailymotion:not(.vjs-has-started) .vjs-big-play-button { pointer-events: none; }.vjs-dailymotion .vjs-poster { background-size: cover; }.vjs-no-poster:not(.vjs-ended) .vjs-big-play-button { display: none; }",i=document.head||document.getElementsByTagName("head")[0],(o=document.createElement("style")).type="text/css",o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t)),i.appendChild(o)),c.VERSION="1.0.0",u.registerTech("Dailymotion",c),c});
public/assets/player/videojs-plugins/facebook/videojs-facebook.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! @name videojs-facebook @version 1.0.0 @license Apache-2.0 */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e=e||self).videojsFacebook=t(e.videojs)}(this,function(e){"use strict";var t,o,i,n,a,s,r,c,u=(e=e&&e.hasOwnProperty("default")?e.default:e).browser.IS_IOS||e.browser.IS_NATIVE_ANDROID,f=e.getComponent("Tech"),d=function(t){var o,i;function n(e,o){var i;return(i=t.call(this,e,o)||this).facebookInfo={source:"",state:"unstarted",volume:1,muted:!!i.options_.muted,duration:0,isSeeking:!1},i.setPoster(e.poster),i.setSrc(i.options_.source.src),i.setTimeout(function(){this.el_&&(this.el_.parentNode.className+=" vjs-facebook",u&&(this.el_.parentNode.className+=" vjs-facebook-mobile"),e.poster||(this.el_.parentNode.className+=" vjs-no-poster"),n.isApiReady?this.initFacebookPlayer():n.apiReadyQueue.push(this))}.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(i))),i}i=t,(o=n).prototype=Object.create(i.prototype),o.prototype.constructor=o,o.__proto__=i;var a=n.prototype;return a.dispose=function(){if(this.facebookPlayer)DM.destroy(this.options_.techId);else{var e=n.apiReadyQueue.indexOf(this);-1!==e&&n.apiReadyQueue.splice(e,1)}this.facebookPlayer=null,this.el_.parentNode.className=this.el_.parentNode.className.replace(" vjs-facebook","").replace(" vjs-facebook-mobile","").replace(" vjs-no-poster",""),this.el_.parentNode.removeChild(this.el_),t.prototype.dispose.call(this)},a.createEl=function(){var e=document.createElement("div");e.setAttribute("id",this.options_.techId),e.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%"),e.setAttribute("class","fb-video vjs-tech"),e.setAttribute("data-href",this.options_.source.src),e.setAttribute("data-allowfullscreen",!0),e.setAttribute("data-controls",!1);var t=document.createElement("div");if(t.appendChild(e),!u&&!this.options_.facebookControls){var o=document.createElement("div");o.setAttribute("class","vjs-iframe-blocker"),o.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%"),o.onclick=function(){this.pause()}.bind(this),t.appendChild(o)}return t},a.initFacebookPlayer=function(){var e=this;this.facebookPlayer=null,FB.Event.subscribe("xfbml.ready",function(t){"video"===t.type&&t.id===e.options_.techId&&(e.facebookPlayer=t.instance,e.trigger("loadstart"),e.onPlayerReady(),e.facebookPlayer.subscribe("startedBuffering",function(t){e.onStateChange("startedBuffering")}),e.facebookPlayer.subscribe("finishedBuffering",function(t){e.onStateChange("finishedBuffering")}),e.facebookPlayer.subscribe("startedPlaying",function(t){e.onStateChange("startedPlaying")}),e.facebookPlayer.subscribe("paused",function(t){e.onStateChange("paused")}),e.facebookPlayer.subscribe("finishedPlaying",function(t){e.onStateChange("finishedPlaying")}),e.facebookPlayer.subscribe("error",function(t){e.onStateChange("error")}))})},a.onPlayerReady=function(){this.facebookInfo.muted=this.facebookPlayer.isMuted(),this.isReady_=!0,this.triggerReady(),this.trigger("loadedmetadata"),this.trigger("loadeddata"),this.trigger("canplay"),this.trigger("volumechange"),this.playOnReady&&this.play()},a.onStateChange=function(e){switch(e){case"startedBuffering":this.facebookInfo.state="buffering";break;case"finishedBuffering":break;case"startedPlaying":this.facebookInfo.state="playing",this.trigger("play"),this.trigger("playing"),this.facebookInfo.isSeeking&&this.onSeeked();break;case"paused":this.facebookInfo.state="paused",this.trigger("pause");break;case"finishedPlaying":this.options_.loop?this.facebookPlayer.play():(this.facebookInfo.state="ended",this.trigger("ended"));break;case"error":console.log("error")}},a.poster=function(){return this.poster_},a.setPoster=function(e){this.poster_=e},a.src=function(e){if(void 0===e)return this.options_.source;this.setSrc(e)},a.setSrc=function(e){e&&(this.facebookInfo.source={src:e},this.options_.autoplay&&!u&&this.play())},a.currentSrc=function(){return this.options_.source.src},a.play=function(){this.isReady_?this.facebookPlayer.play():(this.trigger("waiting"),this.playOnReady=!0)},a.pause=function(){this.facebookPlayer&&this.facebookPlayer.pause()},a.paused=function(){return"playing"!==this.facebookInfo.state&&"buffering"!==this.facebookInfo.state},a.currentTime=function(){return this.facebookPlayer?this.facebookPlayer.getCurrentPosition():0},a.setCurrentTime=function(e){this.facebookPlayer&&(this.facebookPlayer.seek(e),this.trigger("timeupdate"),this.facebookInfo.isSeeking=!0,this.trigger("seeking"))},a.duration=function(){var e=this;if(0===this.facebookInfo.duration){this.on("timeupdate",function t(){e.facebookInfo.duration=e.facebookPlayer.getDuration(),e.facebookInfo.duration>0&&(e.trigger("durationchange"),e.off("timeupdate",t))})}return this.facebookInfo.duration},a.buffered=function(){return e.createTimeRange()},a.seeking=function(){return this.facebookInfo.isSeeking},a.seekable=function(){return e.createTimeRange(0,this.facebookInfo.duration)},a.onSeeked=function(){this.facebookInfo.isSeeking=!1,this.trigger("seeked")},a.volume=function(){return this.facebookInfo.volume},a.setVolume=function(e){this.facebookPlayer&&(this.facebookPlayer.setVolume(e),this.facebookInfo.volume=e,this.trigger("volumechange"))},a.muted=function(){return this.facebookInfo.muted},a.setMuted=function(e){this.facebookPlayer&&(e?this.facebookPlayer.mute():this.facebookPlayer.unmute(),this.facebookInfo.muted=e,this.trigger("volumechange"))},a.ended=function(){return"ended"===this.facebookInfo.state},a.playbackRate=function(){return 1},a.supportsFullScreen=function(){return!0},n}(f);if(d.isSupported=function(){return!0},f.withSourceHandlers(d),d.nativeSourceHandler={},d.nativeSourceHandler.canPlayType=function(e){return"video/facebook"===e?"maybe":""},d.nativeSourceHandler.canHandleSource=function(e,t){if(e.type)return d.nativeSourceHandler.canPlayType(e.type);if(e.src){var o=/facebook.com/.test(e.src)?"video/facebook":"";return d.nativeSourceHandler.canPlayType(o)}return""},d.nativeSourceHandler.handleSource=function(e,t,o){t.setSrc(e.src)},d.nativeSourceHandler.dispose=function(){},d.registerSourceHandler(d.nativeSourceHandler),d.apiReadyQueue=[],"undefined"!=typeof document){var l=document.createElement("div");l.setAttribute("id","fb-root"),document.body.insertBefore(l,document.body.firstChild),n="https://connect.facebook.net/en_US/sdk.js",a=function(){window.fbAsyncInit=function(){FB.init({appId:"",xfbml:!0,version:"v3.2"})},d.isApiReady=!0;for(var e=0;e<d.apiReadyQueue.length;++e)d.apiReadyQueue[e].initFacebookPlayer()},s=!1,r=document.createElement("script"),(c=document.getElementsByTagName("script")[0]).parentNode.insertBefore(r,c),r.onload=function(){s||(s=!0,a())},r.onreadystatechange=function(){s||"complete"!==this.readyState&&"loaded"!==this.readyState||(s=!0,a())},r.src=n,t=".vjs-facebook iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }.vjs-facebook .vjs-iframe-blocker { display: none; }.vjs-facebook.vjs-has-started.vjs-user-inactive .vjs-iframe-blocker { display: block; }.vjs-facebook:not(.vjs-has-started) .vjs-poster, .vjs-facebook:not(.vjs-has-started) .vjs-big-play-button { pointer-events: none; }.vjs-facebook .vjs-poster { background-size: cover; }.vjs-no-poster:not(.vjs-ended) .vjs-big-play-button { display: none; }",o=document.head||document.getElementsByTagName("head")[0],(i=document.createElement("style")).type="text/css",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t)),o.appendChild(i)}return d.VERSION="1.0.0",f.registerTech("Facebook",d),d});
public/assets/{mediaelement/renderers → player/videojs-plugins}/index.html RENAMED
File without changes
public/assets/player/videojs-plugins/overlay/videojs-overlay.css ADDED
@@ -0,0 +1 @@
 
1
+ .video-js .vjs-overlay{color:#fff;position:absolute;text-align:center}.video-js .vjs-overlay-no-background{max-width:33%}.video-js .vjs-overlay-background{background-color:#646464;background-color:rgba(255,255,255,0.4);border-radius:3px;padding:10px;width:33%}.video-js .vjs-overlay-top-left{top:5px;left:5px}.video-js .vjs-overlay-top{left:50%;margin-left:-16.5%;top:5px}.video-js .vjs-overlay-top-right{right:5px;top:5px}.video-js .vjs-overlay-right{right:5px;top:50%;transform:translateY(-50%)}.video-js .vjs-overlay-bottom-right{bottom:3.5em;right:5px}.video-js .vjs-overlay-bottom{bottom:3.5em;left:50%;margin-left:-16.5%}.video-js .vjs-overlay-bottom-left{bottom:3.5em;left:5px}.video-js .vjs-overlay-left{left:5px;top:50%;transform:translateY(-50%)}.video-js .vjs-overlay-center{left:50%;margin-left:-16.5%;top:50%;transform:translateY(-50%)}.video-js .vjs-no-flex .vjs-overlay-left,.video-js .vjs-no-flex .vjs-overlay-center,.video-js .vjs-no-flex .vjs-overlay-right{margin-top:-15px}
public/assets/player/videojs-plugins/overlay/videojs-overlay.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! @name videojs-overlay @version 2.1.4 @license Apache-2.0 */
2
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("video.js"),require("global/window")):"function"==typeof define&&define.amd?define(["video.js","global/window"],e):t.videojsOverlay=e(t.videojs,t.window)}(this,function(t,e){"use strict";function n(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}t=t&&t.hasOwnProperty("default")?t.default:t,e=e&&e.hasOwnProperty("default")?e.default:e;var r={align:"top-left",class:"",content:"This overlay will show up while the video is playing",debug:!1,showBackground:!0,attachToControlBar:!1,overlays:[{start:"playing",end:"paused"}]},i=t.getComponent("Component"),o=t.dom||t,s=t.registerPlugin||t.plugin,a=function(t){return"number"==typeof t&&t==t},h=function(t){return"string"==typeof t&&/^\S+$/.test(t)},d=function(r){var i,s;function d(t,e){var i;return i=r.call(this,t,e)||this,["start","end"].forEach(function(t){var e=i.options_[t];if(a(e))i[t+"Event_"]="timeupdate";else if(h(e))i[t+"Event_"]=e;else if("start"===t)throw new Error('invalid "start" option; expected number or string')}),["endListener_","rewindListener_","startListener_"].forEach(function(t){i[t]=function(e){return d.prototype[t].call(n(n(i)),e)}}),"timeupdate"===i.startEvent_&&i.on(t,"timeupdate",i.rewindListener_),i.debug('created, listening to "'+i.startEvent_+'" for "start" and "'+(i.endEvent_||"nothing")+'" for "end"'),i.hide(),i}s=r,(i=d).prototype=Object.create(s.prototype),i.prototype.constructor=i,i.__proto__=s;var l=d.prototype;return l.createEl=function(){var t=this.options_,n=t.content,r=t.showBackground?"vjs-overlay-background":"vjs-overlay-no-background",i=o.createEl("div",{className:"\n vjs-overlay\n vjs-overlay-"+t.align+"\n "+t.class+"\n "+r+"\n vjs-hidden\n "});return"string"==typeof n?i.innerHTML=n:n instanceof e.DocumentFragment?i.appendChild(n):o.appendContent(i,n),i},l.debug=function(){if(this.options_.debug){for(var e=t.log,n=e,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];e.hasOwnProperty(i[0])&&"function"==typeof e[i[0]]&&(n=e[i.shift()]),n.apply(void 0,["overlay#"+this.id()+": "].concat(i))}},l.hide=function(){return r.prototype.hide.call(this),this.debug("hidden"),this.debug('bound `startListener_` to "'+this.startEvent_+'"'),this.endEvent_&&(this.debug('unbound `endListener_` from "'+this.endEvent_+'"'),this.off(this.player(),this.endEvent_,this.endListener_)),this.on(this.player(),this.startEvent_,this.startListener_),this},l.shouldHide_=function(t,e){var n=this.options_.end;return a(n)?t>=n:n===e},l.show=function(){return r.prototype.show.call(this),this.off(this.player(),this.startEvent_,this.startListener_),this.debug("shown"),this.debug('unbound `startListener_` from "'+this.startEvent_+'"'),this.endEvent_&&(this.debug('bound `endListener_` to "'+this.endEvent_+'"'),this.on(this.player(),this.endEvent_,this.endListener_)),this},l.shouldShow_=function(t,e){var n=this.options_.start,r=this.options_.end;return a(n)?a(r)?t>=n&&t<r:this.hasShownSinceSeek_?Math.floor(t)===n:(this.hasShownSinceSeek_=!0,t>=n):n===e},l.startListener_=function(t){var e=this.player().currentTime();this.shouldShow_(e,t.type)&&this.show()},l.endListener_=function(t){var e=this.player().currentTime();this.shouldHide_(e,t.type)&&this.hide()},l.rewindListener_=function(t){var e=this.player().currentTime(),n=this.previousTime_,r=this.options_.start,i=this.options_.end;e<n&&(this.debug("rewind detected"),a(i)&&!this.shouldShow_(e)?(this.debug("hiding; "+i+" is an integer and overlay should not show at this time"),this.hasShownSinceSeek_=!1,this.hide()):h(i)&&e<r&&(this.debug("hiding; show point ("+r+") is before now ("+e+") and end point ("+i+") is an event"),this.hasShownSinceSeek_=!1,this.hide())),this.previousTime_=e},d}(i);t.registerComponent("Overlay",d);var l=function(e){var n=this,i=t.mergeOptions(r,e);Array.isArray(this.overlays_)&&this.overlays_.forEach(function(t){n.removeChild(t),n.controlBar&&n.controlBar.removeChild(t),t.dispose()});var o=i.overlays;delete i.overlays,this.overlays_=o.map(function(e){var r=t.mergeOptions(i,e),o="string"==typeof r.attachToControlBar||!0===r.attachToControlBar;if(!n.controls()||!n.controlBar)return n.addChild("overlay",r);if(o&&-1!==r.align.indexOf("bottom")){var s=n.controlBar.children()[0];if(void 0!==n.controlBar.getChild(r.attachToControlBar)&&(s=n.controlBar.getChild(r.attachToControlBar)),s){var a=n.controlBar.addChild("overlay",r);return n.controlBar.el().insertBefore(a.el(),s.el()),a}}var h=n.addChild("overlay",r);return n.el().insertBefore(h.el(),n.controlBar.el()),h})};return l.VERSION="2.1.4",s("overlay",l),l});
public/assets/player/videojs-plugins/vimeo/videojs-vimeo2.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! @name videojs-vimeo2 @version 1.0.0 @license Apache-2.0 */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e=e||self).videojsVimeo2=t(e.videojs)}(this,function(e){"use strict";var t,i,o,n,r,s,a,u,c=(e=e&&e.hasOwnProperty("default")?e.default:e).browser.IS_IOS||e.browser.IS_NATIVE_ANDROID,h=e.getComponent("Tech"),d=function(t){var i,o;function n(e,i){var o;return(o=t.call(this,e,i)||this).vimeoInfo={source:"",state:"unstarted",volume:1,muted:!!o.options_.muted,muteVolume:1,buffered:0,currentTime:0,duration:0,isSeeking:!1,error:null},o.setPoster(e.poster),o.setSrc(o.options_.source.src),o.setTimeout(function(){this.el_&&(this.el_.parentNode.className+=" vjs-vimeo",c&&(this.el_.parentNode.className+=" vjs-vimeo-mobile"),n.isApiReady?this.initVimeoPlayer():n.apiReadyQueue.push(this))}.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(o))),o}o=t,(i=n).prototype=Object.create(o.prototype),i.prototype.constructor=i,i.__proto__=o;var r=n.prototype;return r.dispose=function(){if(this.vimeoPlayer)this.vimeoPlayer.unload().then(function(){}).catch(function(e){this.onError(e)}),this.vimeoPlayer.destroy().then(function(){}).catch(function(e){this.onError(e)});else{var e=n.apiReadyQueue.indexOf(this);-1!==e&&n.apiReadyQueue.splice(e,1)}this.vimeoPlayer=null,this.el_.parentNode.className=this.el_.parentNode.className.replace(" vjs-vimeo","").replace(" vjs-vimeo-mobile",""),this.el_.parentNode.removeChild(this.el_),t.prototype.dispose.call(this)},r.createEl=function(){var e=document.createElement("div");e.setAttribute("id",this.options_.techId),e.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%"),e.setAttribute("class","vjs-tech");var t=document.createElement("div");if(t.appendChild(e),!c&&!this.options_.vimeoControls){var i=document.createElement("div");i.setAttribute("class","vjs-iframe-blocker"),i.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%"),t.appendChild(i)}return t},r.initVimeoPlayer=function(){var e=this,t={id:this.vimeoInfo.source.videoId,byline:!1,controls:!1,portrait:!1,title:!1};void 0!==this.options_.byline&&(t.byline=!!this.options_.byline),void 0!==this.options_.color&&(t.color=this.options_.color.replace(/^#/,"")),void 0!==this.options_.vimeoControls&&(t.controls=!!this.options_.vimeoControls),void 0!==this.options_.muted&&(t.muted=!!this.options_.muted),void 0!==this.options_.loop&&(t.loop=!!this.options_.loop),void 0!==this.options_.playsinline&&(t.playsinline=!!this.options_.playsinline),void 0!==this.options_.portrait&&(t.portrait=!!this.options_.portrait),void 0!==this.options_.title&&(t.title=!!this.options_.title),this.vimeoPlayer=new Vimeo.Player(this.options_.techId,t),this.trigger("loadstart"),this.vimeoPlayer.ready().then(function(){e.onPlayerReady();["bufferstart","progress","timeupdate","seeking","seeked","play","pause","ended","volumechange"].forEach(function(t){e.vimeoPlayer.on(t,function(i){return e.onStateChange(t,i)})})})},r.onPlayerReady=function(){this.isReady_=!0,this.triggerReady(),this.trigger("loadedmetadata"),this.trigger("loadeddata"),this.trigger("canplay"),this.trigger("volumechange"),this.playOnReady&&this.play()},r.onStateChange=function(e,t){switch(void 0!==t.duration&&this.vimeoInfo.duration!==t.duration&&(this.vimeoInfo.duration=t.duration,this.trigger("durationchange")),e){case"bufferstart":this.vimeoInfo.state="buffering";break;case"progress":this.vimeoInfo.buffered=t.percent,this.trigger("progress");break;case"timeupdate":this.vimeoInfo.currentTime=t.seconds,this.trigger("timeupdate");break;case"seeking":this.vimeoInfo.isSeeking=!0,this.trigger("seeking");break;case"seeked":this.vimeoInfo.isSeeking=!1,this.trigger("seeked");break;case"play":this.vimeoInfo.state="playing",this.trigger("play"),this.trigger("playing");break;case"pause":this.vimeoInfo.state="paused",this.trigger("pause");break;case"ended":this.vimeoInfo.state="ended",this.trigger("ended");break;case"volumechange":this.trigger("volumechange")}},r.onError=function(e){this.vimeoInfo.error=e,console.log(e)},r.poster=function(){return this.poster_},r.setPoster=function(e){this.poster_=e,this.trigger("posterchange")},r.src=function(e){if(void 0===e)return this.options_.source;this.setSrc(e)},r.setSrc=function(e){e&&(this.vimeoInfo.error=null,this.vimeoInfo.source=n.parseUrl(e),this.options_.autoplay&&!c&&this.play())},r.currentSrc=function(){return this.options_.source.src},r.play=function(){var e=this;this.isReady_?this.vimeoPlayer.play().then(function(){}).catch(function(t){e.onError(t)}):this.playOnReady=!0},r.pause=function(){var e=this;this.vimeoPlayer&&this.vimeoPlayer.pause().then(function(){}).catch(function(t){e.onError(t)})},r.paused=function(){return"playing"!==this.vimeoInfo.state&&"buffering"!==this.vimeoInfo.state},r.currentTime=function(){return this.vimeoInfo.currentTime},r.setCurrentTime=function(e){var t=this;this.vimeoPlayer&&(this.vimeoInfo.currentTime=e,this.vimeoPlayer.setCurrentTime(e).then(function(){t.vimeoInfo.currentTime=e}).catch(function(e){t.onError(e)}),this.trigger("timeupdate"))},r.duration=function(){return this.vimeoInfo.duration},r.buffered=function(){return e.createTimeRange(0,this.vimeoInfo.buffered*this.vimeoInfo.duration)},r.seeking=function(){return this.vimeoInfo.isSeeking},r.seekable=function(){return e.createTimeRange(0,this.vimeoInfo.duration)},r.volume=function(){return this.vimeoInfo.muted?this.vimeoInfo.muteVolume:this.vimeoInfo.volume},r.setVolume=function(e){var t=this;this.vimeoPlayer&&("unstarted"==this.vimeoInfo.state&&this.vimeoInfo.muted||this.vimeoPlayer.setVolume(e).then(function(){t.vimeoInfo.volume=e}).catch(function(e){t.onError(e)}))},r.muted=function(){return this.vimeoInfo.muted},r.setMuted=function(e){e?(this.vimeoInfo.muteVolume=this.vimeoInfo.volume,this.setVolume(0)):this.setVolume(this.vimeoInfo.muteVolume),this.vimeoInfo.muted=e},r.ended=function(){return"ended"===this.vimeoInfo.state},r.playbackRate=function(){return 1},r.supportsFullScreen=function(){return!0},n}(h);return d.prototype.featuresProgressEvents=!0,d.prototype.featuresTimeupdateEvents=!0,d.isSupported=function(){return!0},d.parseUrl=function(e){var t={videoId:null},i=e.match(/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/);return i&&(t.videoId=i[5]),t},h.withSourceHandlers(d),d.nativeSourceHandler={},d.nativeSourceHandler.canPlayType=function(e){return"video/vimeo"===e?"maybe":""},d.nativeSourceHandler.canHandleSource=function(e,t){if(e.type)return d.nativeSourceHandler.canPlayType(e.type);if(e.src){var i=/vimeo.com/.test(e.src)?"video/vimeo":"";return d.nativeSourceHandler.canPlayType(i)}return""},d.nativeSourceHandler.handleSource=function(e,t,i){t.setSrc(e.src)},d.nativeSourceHandler.dispose=function(){},d.registerSourceHandler(d.nativeSourceHandler),d.apiReadyQueue=[],"undefined"!=typeof document&&(n="https://player.vimeo.com/api/player.js",r=function(){d.isApiReady=!0;for(var e=0;e<d.apiReadyQueue.length;++e)d.apiReadyQueue[e].initVimeoPlayer()},s=!1,a=document.createElement("script"),(u=document.getElementsByTagName("script")[0]).parentNode.insertBefore(a,u),a.onload=function(){s||(s=!0,r())},a.onreadystatechange=function(){s||"complete"!==this.readyState&&"loaded"!==this.readyState||(s=!0,r())},a.src=n,t=".vjs-vimeo iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }.vjs-vimeo .vjs-poster { background-size: cover; }",i=document.head||document.getElementsByTagName("head")[0],(o=document.createElement("style")).type="text/css",o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t)),i.appendChild(o)),d.VERSION="1.0.0",h.registerTech("Vimeo2",d),d});
public/assets/player/videojs-plugins/youtube/Youtube.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(root,factory){if(typeof exports==="object"&&typeof module!=="undefined"){var videojs=require("video.js");module.exports=factory(videojs.default||videojs)}else if(typeof define==="function"&&define.amd){define(["videojs"],function(videojs){return root.Youtube=factory(videojs)})}else{root.Youtube=factory(root.videojs)}})(this,function(videojs){"use strict";var _isOnMobile=videojs.browser.IS_IOS||videojs.browser.IS_NATIVE_ANDROID;var Tech=videojs.getTech("Tech");var Youtube=videojs.extend(Tech,{constructor:function(options,ready){Tech.call(this,options,ready);this.setPoster(options.poster);this.setSrc(this.options_.source,true);this.setTimeout(function(){if(this.el_){this.el_.parentNode.className+=" vjs-youtube";if(_isOnMobile){this.el_.parentNode.className+=" vjs-youtube-mobile"}if(Youtube.isApiReady){this.initYTPlayer()}else{Youtube.apiReadyQueue.push(this)}}}.bind(this))},dispose:function(){if(this.ytPlayer){if(this.ytPlayer.stopVideo){this.ytPlayer.stopVideo()}if(this.ytPlayer.destroy){this.ytPlayer.destroy()}}else{var index=Youtube.apiReadyQueue.indexOf(this);if(index!==-1){Youtube.apiReadyQueue.splice(index,1)}}this.ytPlayer=null;this.el_.parentNode.className=this.el_.parentNode.className.replace(" vjs-youtube","").replace(" vjs-youtube-mobile","");this.el_.parentNode.removeChild(this.el_);Tech.prototype.dispose.call(this)},createEl:function(){var div=document.createElement("div");div.setAttribute("id",this.options_.techId);div.setAttribute("style","width:100%;height:100%;top:0;left:0;position:absolute");div.setAttribute("class","vjs-tech");var divWrapper=document.createElement("div");divWrapper.appendChild(div);if(!_isOnMobile&&!this.options_.ytControls){var divBlocker=document.createElement("div");divBlocker.setAttribute("class","vjs-iframe-blocker");divBlocker.setAttribute("style","position:absolute;top:0;left:0;width:100%;height:100%");divBlocker.onclick=function(){this.pause()}.bind(this);divWrapper.appendChild(divBlocker)}return divWrapper},initYTPlayer:function(){var playerVars={controls:0,modestbranding:1,rel:0,showinfo:0,loop:this.options_.loop?1:0};if(typeof this.options_.autohide!=="undefined"){playerVars.autohide=this.options_.autohide}if(typeof this.options_["cc_load_policy"]!=="undefined"){playerVars["cc_load_policy"]=this.options_["cc_load_policy"]}if(typeof this.options_.ytControls!=="undefined"){playerVars.controls=this.options_.ytControls}if(typeof this.options_.disablekb!=="undefined"){playerVars.disablekb=this.options_.disablekb}if(typeof this.options_.color!=="undefined"){playerVars.color=this.options_.color}if(!playerVars.controls){playerVars.fs=0}else if(typeof this.options_.fs!=="undefined"){playerVars.fs=this.options_.fs}if(this.options_.source.src.indexOf("end=")!==-1){var srcEndTime=this.options_.source.src.match(/end=([0-9]*)/);this.options_.end=parseInt(srcEndTime[1])}if(typeof this.options_.end!=="undefined"){playerVars.end=this.options_.end}if(typeof this.options_.hl!=="undefined"){playerVars.hl=this.options_.hl}else if(typeof this.options_.language!=="undefined"){playerVars.hl=this.options_.language.substr(0,2)}if(typeof this.options_["iv_load_policy"]!=="undefined"){playerVars["iv_load_policy"]=this.options_["iv_load_policy"]}if(typeof this.options_.list!=="undefined"){playerVars.list=this.options_.list}else if(this.url&&typeof this.url.listId!=="undefined"){playerVars.list=this.url.listId}if(typeof this.options_.listType!=="undefined"){playerVars.listType=this.options_.listType}if(typeof this.options_.modestbranding!=="undefined"){playerVars.modestbranding=this.options_.modestbranding}if(typeof this.options_.playlist!=="undefined"){playerVars.playlist=this.options_.playlist}if(typeof this.options_.playsinline!=="undefined"){playerVars.playsinline=this.options_.playsinline}if(typeof this.options_.rel!=="undefined"){playerVars.rel=this.options_.rel}if(typeof this.options_.showinfo!=="undefined"){playerVars.showinfo=this.options_.showinfo}if(this.options_.source.src.indexOf("start=")!==-1){var srcStartTime=this.options_.source.src.match(/start=([0-9]*)/);this.options_.start=parseInt(srcStartTime[1])}if(typeof this.options_.start!=="undefined"){playerVars.start=this.options_.start}if(typeof this.options_.theme!=="undefined"){playerVars.theme=this.options_.theme}if(typeof this.options_.customVars!=="undefined"){var customVars=this.options_.customVars;Object.keys(customVars).forEach(function(key){playerVars[key]=customVars[key]})}this.activeVideoId=this.url?this.url.videoId:null;this.activeList=playerVars.list;var playerConfig={videoId:this.activeVideoId,playerVars:playerVars,events:{onReady:this.onPlayerReady.bind(this),onPlaybackQualityChange:this.onPlayerPlaybackQualityChange.bind(this),onPlaybackRateChange:this.onPlayerPlaybackRateChange.bind(this),onStateChange:this.onPlayerStateChange.bind(this),onVolumeChange:this.onPlayerVolumeChange.bind(this),onError:this.onPlayerError.bind(this)}};if(typeof this.options_.enablePrivacyEnhancedMode!=="undefined"&&this.options_.enablePrivacyEnhancedMode){playerConfig.host="https://www.youtube-nocookie.com"}this.ytPlayer=new YT.Player(this.options_.techId,playerConfig)},onPlayerReady:function(){if(this.options_.muted){this.ytPlayer.mute()}var playbackRates=this.ytPlayer.getAvailablePlaybackRates();if(playbackRates.length>1){this.featuresPlaybackRate=true}this.playerReady_=true;this.triggerReady();if(this.playOnReady){this.play()}else if(this.cueOnReady){this.cueVideoById_(this.url.videoId);this.activeVideoId=this.url.videoId}},onPlayerPlaybackQualityChange:function(){},onPlayerPlaybackRateChange:function(){this.trigger("ratechange")},onPlayerStateChange:function(e){var state=e.data;if(state===this.lastState||this.errorNumber){return}this.lastState=state;switch(state){case-1:this.trigger("loadstart");this.trigger("loadedmetadata");this.trigger("durationchange");this.trigger("ratechange");break;case YT.PlayerState.ENDED:this.trigger("ended");break;case YT.PlayerState.PLAYING:this.trigger("timeupdate");this.trigger("durationchange");this.trigger("playing");this.trigger("play");if(this.isSeeking){this.onSeeked()}break;case YT.PlayerState.PAUSED:this.trigger("canplay");if(this.isSeeking){this.onSeeked()}else{this.trigger("pause")}break;case YT.PlayerState.BUFFERING:this.player_.trigger("timeupdate");this.player_.trigger("waiting");break}},onPlayerVolumeChange:function(){this.trigger("volumechange")},onPlayerError:function(e){this.errorNumber=e.data;this.trigger("pause");this.trigger("error")},error:function(){var code=1e3+this.errorNumber;switch(this.errorNumber){case 5:return{code:code,message:"Error while trying to play the video"};case 2:case 100:return{code:code,message:"Unable to find the video"};case 101:case 150:return{code:code,message:"Playback on other Websites has been disabled by the video owner."}}return{code:code,message:"YouTube unknown error ("+this.errorNumber+")"}},loadVideoById_:function(id){var options={videoId:id};if(this.options_.start){options.startSeconds=this.options_.start}if(this.options_.end){options.endEnd=this.options_.end}this.ytPlayer.loadVideoById(options)},cueVideoById_:function(id){var options={videoId:id};if(this.options_.start){options.startSeconds=this.options_.start}if(this.options_.end){options.endEnd=this.options_.end}this.ytPlayer.cueVideoById(options)},src:function(src){if(src){this.setSrc({src:src})}return this.source},poster:function(){if(_isOnMobile){return null}return this.poster_},setPoster:function(poster){this.poster_=poster},setSrc:function(source){if(!source||!source.src){return}delete this.errorNumber;this.source=source;this.url=Youtube.parseUrl(source.src);if(!this.options_.poster){if(this.url.videoId){this.poster_="https://img.youtube.com/vi/"+this.url.videoId+"/0.jpg";this.trigger("posterchange");this.checkHighResPoster()}}if(this.options_.autoplay&&!_isOnMobile){if(this.isReady_){this.play()}else{this.playOnReady=true}}else if(this.activeVideoId!==this.url.videoId){if(this.isReady_){this.cueVideoById_(this.url.videoId);this.activeVideoId=this.url.videoId}else{this.cueOnReady=true}}},autoplay:function(){return this.options_.autoplay},setAutoplay:function(val){this.options_.autoplay=val},loop:function(){return this.options_.loop},setLoop:function(val){this.options_.loop=val},play:function(){if(!this.url||!this.url.videoId){return}this.wasPausedBeforeSeek=false;if(this.isReady_){if(this.url.listId){if(this.activeList===this.url.listId){this.ytPlayer.playVideo()}else{this.ytPlayer.loadPlaylist(this.url.listId);this.activeList=this.url.listId}}if(this.activeVideoId===this.url.videoId){this.ytPlayer.playVideo()}else{this.loadVideoById_(this.url.videoId);this.activeVideoId=this.url.videoId}}else{this.trigger("waiting");this.playOnReady=true}},pause:function(){if(this.ytPlayer){this.ytPlayer.pauseVideo()}},paused:function(){return this.ytPlayer?this.lastState!==YT.PlayerState.PLAYING&&this.lastState!==YT.PlayerState.BUFFERING:true},currentTime:function(){return this.ytPlayer?this.ytPlayer.getCurrentTime():0},setCurrentTime:function(seconds){if(this.lastState===YT.PlayerState.PAUSED){this.timeBeforeSeek=this.currentTime()}if(!this.isSeeking){this.wasPausedBeforeSeek=this.paused()}this.ytPlayer.seekTo(seconds,true);this.trigger("timeupdate");this.trigger("seeking");this.isSeeking=true;if(this.lastState===YT.PlayerState.PAUSED&&this.timeBeforeSeek!==seconds){clearInterval(this.checkSeekedInPauseInterval);this.checkSeekedInPauseInterval=setInterval(function(){if(this.lastState!==YT.PlayerState.PAUSED||!this.isSeeking){clearInterval(this.checkSeekedInPauseInterval)}else if(this.currentTime()!==this.timeBeforeSeek){this.trigger("timeupdate");this.onSeeked()}}.bind(this),250)}},seeking:function(){return this.isSeeking},seekable:function(){if(!this.ytPlayer){return videojs.createTimeRange()}return videojs.createTimeRange(0,this.ytPlayer.getDuration())},onSeeked:function(){clearInterval(this.checkSeekedInPauseInterval);this.isSeeking=false;if(this.wasPausedBeforeSeek){this.pause()}this.trigger("seeked")},playbackRate:function(){return this.ytPlayer?this.ytPlayer.getPlaybackRate():1},setPlaybackRate:function(suggestedRate){if(!this.ytPlayer){return}this.ytPlayer.setPlaybackRate(suggestedRate)},duration:function(){return this.ytPlayer?this.ytPlayer.getDuration():0},currentSrc:function(){return this.source&&this.source.src},ended:function(){return this.ytPlayer?this.lastState===YT.PlayerState.ENDED:false},volume:function(){return this.ytPlayer?this.ytPlayer.getVolume()/100:1},setVolume:function(percentAsDecimal){if(!this.ytPlayer){return}this.ytPlayer.setVolume(percentAsDecimal*100)},muted:function(){return this.ytPlayer?this.ytPlayer.isMuted():false},setMuted:function(mute){if(!this.ytPlayer){return}else{this.muted(true)}if(mute){this.ytPlayer.mute()}else{this.ytPlayer.unMute()}this.setTimeout(function(){this.trigger("volumechange")},50)},buffered:function(){if(!this.ytPlayer||!this.ytPlayer.getVideoLoadedFraction){return videojs.createTimeRange()}var bufferedEnd=this.ytPlayer.getVideoLoadedFraction()*this.ytPlayer.getDuration();return videojs.createTimeRange(0,bufferedEnd)},preload:function(){},load:function(){},reset:function(){},networkState:function(){if(!this.ytPlayer){return 0}switch(this.ytPlayer.getPlayerState()){case-1:return 0;case 3:return 2;default:return 1}},readyState:function(){if(!this.ytPlayer){return 0}switch(this.ytPlayer.getPlayerState()){case-1:return 0;case 5:return 1;case 3:return 2;default:return 4}},supportsFullScreen:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled},checkHighResPoster:function(){var uri="https://img.youtube.com/vi/"+this.url.videoId+"/maxresdefault.jpg";try{var image=new Image;image.onload=function(){if("naturalHeight"in image){if(image.naturalHeight<=90||image.naturalWidth<=120){return}}else if(image.height<=90||image.width<=120){return}this.poster_=uri;this.trigger("posterchange")}.bind(this);image.onerror=function(){};image.src=uri}catch(e){}}});Youtube.isSupported=function(){return true};Youtube.canPlaySource=function(e){return Youtube.canPlayType(e.type)};Youtube.canPlayType=function(e){return e==="video/youtube"};Youtube.parseUrl=function(url){var result={videoId:null};var regex=/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;var match=url.match(regex);if(match&&match[2].length===11){result.videoId=match[2]}var regPlaylist=/[?&]list=([^#\&\?]+)/;match=url.match(regPlaylist);if(match&&match[1]){result.listId=match[1]}return result};function apiLoaded(){YT.ready(function(){Youtube.isApiReady=true;for(var i=0;i<Youtube.apiReadyQueue.length;++i){Youtube.apiReadyQueue[i].initYTPlayer()}})}function loadScript(src,callback){var loaded=false;var tag=document.createElement("script");var firstScriptTag=document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(tag,firstScriptTag);tag.onload=function(){if(!loaded){loaded=true;callback()}};tag.onreadystatechange=function(){if(!loaded&&(this.readyState==="complete"||this.readyState==="loaded")){loaded=true;callback()}};tag.src=src}function injectCss(){var css=".vjs-youtube .vjs-iframe-blocker { display: none; }"+".vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }"+".vjs-youtube .vjs-poster { background-size: cover; }"+".vjs-youtube-mobile .vjs-big-play-button { display: none; }";var head=document.head||document.getElementsByTagName("head")[0];var style=document.createElement("style");style.type="text/css";if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}head.appendChild(style)}Youtube.apiReadyQueue=[];if(typeof document!=="undefined"){loadScript("https://www.youtube.com/iframe_api",apiLoaded);injectCss()}if(typeof videojs.registerTech!=="undefined"){videojs.registerTech("Youtube",Youtube)}else{videojs.registerComponent("Youtube",Youtube)}});
public/assets/player/videojs/font/VideoJS.svg ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <font id="VideoJS" horiz-adv-x="1792">
6
+ <font-face font-family="VideoJS"
7
+ units-per-em="1792" ascent="1792"
8
+ descent="0" />
9
+ <missing-glyph horiz-adv-x="0" />
10
+ <glyph glyph-name="play"
11
+ unicode="&#xF101;"
12
+ horiz-adv-x="1792" d=" M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z" />
13
+ <glyph glyph-name="play-circle"
14
+ unicode="&#xF102;"
15
+ horiz-adv-x="1792" d=" M746.6666666666667 560L1194.6666666666667 896L746.6666666666667 1232V560zM896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
16
+ <glyph glyph-name="pause"
17
+ unicode="&#xF103;"
18
+ horiz-adv-x="1792" d=" M448 373.3333333333333H746.6666666666667V1418.6666666666665H448V373.3333333333333zM1045.3333333333335 1418.6666666666665V373.3333333333333H1344V1418.6666666666665H1045.3333333333335z" />
19
+ <glyph glyph-name="volume-mute"
20
+ unicode="&#xF104;"
21
+ horiz-adv-x="1792" d=" M1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V1031.52L1228.6399999999999 848.2133333333334C1230.88 863.8933333333334 1232 879.9466666666667 1232 896.0000000000001zM1418.6666666666667 896C1418.6666666666667 825.8133333333333 1403.3600000000001 759.7333333333333 1378.3466666666668 698.8799999999999L1491.466666666667 585.7599999999998C1540 678.72 1568 783.9999999999999 1568 896C1568 1215.5733333333333 1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896zM319.2000000000001 1568L224 1472.8L576.8 1120H224V672H522.6666666666667L896 298.6666666666665V800.8L1213.7066666666667 483.0933333333332C1163.68 444.6399999999999 1107.3066666666666 413.6533333333332 1045.3333333333335 394.9866666666665V240.7999999999998C1148 264.32 1241.7066666666667 311.3599999999997 1320.48 375.9466666666663L1472.8000000000002 224L1568 319.1999999999998L896 991.1999999999998L319.2000000000001 1568zM896 1493.3333333333333L739.9466666666667 1337.28L896 1181.2266666666667V1493.3333333333333z" />
22
+ <glyph glyph-name="volume-low"
23
+ unicode="&#xF105;"
24
+ horiz-adv-x="1792" d=" M522.6666666666667 1120V672H821.3333333333334L1194.6666666666667 298.6666666666665V1493.3333333333333L821.3333333333334 1120H522.6666666666667z" />
25
+ <glyph glyph-name="volume-mid"
26
+ unicode="&#xF106;"
27
+ horiz-adv-x="1792" d=" M1381.3333333333335 896C1381.3333333333335 1027.7866666666666 1305.1733333333334 1141.6533333333332 1194.6666666666667 1196.5333333333333V595.0933333333332C1305.1733333333334 650.3466666666666 1381.3333333333335 764.2133333333331 1381.3333333333335 896zM373.3333333333334 1120V672H672L1045.3333333333335 298.6666666666665V1493.3333333333333L672 1120H373.3333333333334z" />
28
+ <glyph glyph-name="volume-high"
29
+ unicode="&#xF107;"
30
+ horiz-adv-x="1792" d=" M224 1120V672H522.6666666666667L896 298.6666666666665V1493.3333333333333L522.6666666666667 1120H224zM1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V595.0933333333332C1155.8400000000001 650.3466666666666 1232 764.2133333333331 1232 896zM1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896S1261.1200000000001 459.5733333333333 1045.3333333333335 395.3600000000002V241.1733333333332C1344.3733333333334 309.1199999999999 1568 576.0533333333333 1568 896S1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666z" />
31
+ <glyph glyph-name="fullscreen-enter"
32
+ unicode="&#xF108;"
33
+ horiz-adv-x="1792" d=" M522.6666666666667 746.6666666666665H373.3333333333334V373.3333333333333H746.6666666666667V522.6666666666665H522.6666666666667V746.6666666666665zM373.3333333333334 1045.3333333333333H522.6666666666667V1269.3333333333333H746.6666666666667V1418.6666666666665H373.3333333333334V1045.3333333333333zM1269.3333333333335 522.6666666666665H1045.3333333333335V373.3333333333333H1418.6666666666667V746.6666666666665H1269.3333333333335V522.6666666666665zM1045.3333333333335 1418.6666666666665V1269.3333333333333H1269.3333333333335V1045.3333333333333H1418.6666666666667V1418.6666666666665H1045.3333333333335z" />
34
+ <glyph glyph-name="fullscreen-exit"
35
+ unicode="&#xF109;"
36
+ horiz-adv-x="1792" d=" M373.3333333333334 597.3333333333333H597.3333333333334V373.3333333333333H746.6666666666667V746.6666666666665H373.3333333333334V597.3333333333333zM597.3333333333334 1194.6666666666665H373.3333333333334V1045.3333333333333H746.6666666666667V1418.6666666666665H597.3333333333334V1194.6666666666665zM1045.3333333333335 373.3333333333333H1194.6666666666667V597.3333333333333H1418.6666666666667V746.6666666666665H1045.3333333333335V373.3333333333333zM1194.6666666666667 1194.6666666666665V1418.6666666666665H1045.3333333333335V1045.3333333333333H1418.6666666666667V1194.6666666666665H1194.6666666666667z" />
37
+ <glyph glyph-name="square"
38
+ unicode="&#xF10A;"
39
+ horiz-adv-x="1792" d=" M1344 1493.3333333333333H448C365.4933333333334 1493.3333333333333 298.6666666666667 1426.5066666666667 298.6666666666667 1344V448C298.6666666666667 365.4933333333331 365.4933333333334 298.6666666666665 448 298.6666666666665H1344C1426.506666666667 298.6666666666665 1493.3333333333335 365.4933333333331 1493.3333333333335 448V1344C1493.3333333333335 1426.5066666666667 1426.506666666667 1493.3333333333333 1344 1493.3333333333333zM1344 448H448V1344H1344V448z" />
40
+ <glyph glyph-name="spinner"
41
+ unicode="&#xF10B;"
42
+ horiz-adv-x="1792" d=" M701.8666666666668 1008L1057.6533333333334 1624.3733333333334C1005.7600000000002 1635.9466666666667 951.6266666666666 1642.6666666666667 896 1642.6666666666667C716.8000000000001 1642.6666666666667 552.9066666666668 1579.5733333333333 424.1066666666667 1474.2933333333333L697.76 1000.5333333333334L701.8666666666666 1008zM1608.32 1120C1539.6266666666666 1338.4 1373.1200000000001 1512.7466666666667 1160.6933333333332 1593.3866666666668L887.4133333333334 1120H1608.32zM1627.7333333333336 1045.3333333333333H1068.48L1090.1333333333334 1008L1445.92 392C1567.6266666666668 524.9066666666668 1642.6666666666667 701.4933333333333 1642.6666666666667 896C1642.6666666666667 947.1466666666666 1637.44 997.1733333333332 1627.7333333333336 1045.3333333333333zM637.2800000000001 896L346.08 1400C224.3733333333333 1267.0933333333332 149.3333333333334 1090.5066666666667 149.3333333333334 896C149.3333333333334 844.8533333333332 154.56 794.8266666666666 164.2666666666667 746.6666666666665H723.5200000000001L637.2800000000002 896zM183.68 672C252.3733333333334 453.5999999999999 418.88 279.2533333333334 631.3066666666667 198.6133333333332L904.5866666666668 672H183.68zM1025.1733333333334 672L733.9733333333334 167.6266666666666C786.24 156.0533333333333 840.3733333333334 149.3333333333333 896 149.3333333333333C1075.2 149.3333333333333 1239.0933333333332 212.4266666666665 1367.8933333333334 317.7066666666665L1094.24 791.4666666666666L1025.1733333333334 672z" />
43
+ <glyph glyph-name="subtitles"
44
+ unicode="&#xF10C;"
45
+ horiz-adv-x="1792" d=" M1493.3333333333335 1493.3333333333333H298.6666666666667C216.16 1493.3333333333333 149.3333333333334 1426.5066666666667 149.3333333333334 1344V448C149.3333333333334 365.4933333333331 216.16 298.6666666666665 298.6666666666667 298.6666666666665H1493.3333333333335C1575.8400000000001 298.6666666666665 1642.6666666666667 365.4933333333331 1642.6666666666667 448V1344C1642.6666666666667 1426.5066666666667 1575.8400000000001 1493.3333333333333 1493.3333333333335 1493.3333333333333zM298.6666666666667 896H597.3333333333334V746.6666666666665H298.6666666666667V896zM1045.3333333333335 448H298.6666666666667V597.3333333333333H1045.3333333333335V448zM1493.3333333333335 448H1194.6666666666667V597.3333333333333H1493.3333333333335V448zM1493.3333333333335 746.6666666666665H746.6666666666667V896H1493.3333333333335V746.6666666666665z" />
46
+ <glyph glyph-name="captions"
47
+ unicode="&#xF10D;"
48
+ horiz-adv-x="1792" d=" M1418.6666666666667 1493.3333333333333H373.3333333333334C290.8266666666667 1493.3333333333333 224 1426.5066666666667 224 1344V448C224 365.4933333333331 290.8266666666667 298.6666666666665 373.3333333333334 298.6666666666665H1418.6666666666667C1501.1733333333334 298.6666666666665 1568 365.4933333333331 1568 448V1344C1568 1426.5066666666667 1501.1733333333334 1493.3333333333333 1418.6666666666667 1493.3333333333333zM821.3333333333334 970.6666666666666H709.3333333333334V1008H560V783.9999999999999H709.3333333333334V821.3333333333333H821.3333333333334V746.6666666666665C821.3333333333334 705.5999999999999 788.1066666666667 672 746.6666666666667 672H522.6666666666667C481.2266666666667 672 448 705.5999999999999 448 746.6666666666665V1045.3333333333333C448 1086.4 481.2266666666667 1120 522.6666666666667 1120H746.6666666666667C788.1066666666667 1120 821.3333333333334 1086.4 821.3333333333334 1045.3333333333333V970.6666666666666zM1344 970.6666666666666H1232V1008H1082.6666666666667V783.9999999999999H1232V821.3333333333333H1344V746.6666666666665C1344 705.5999999999999 1310.7733333333333 672 1269.3333333333335 672H1045.3333333333335C1003.8933333333334 672 970.6666666666669 705.5999999999999 970.6666666666669 746.6666666666665V1045.3333333333333C970.6666666666669 1086.4 1003.8933333333334 1120 1045.3333333333335 1120H1269.3333333333335C1310.7733333333333 1120 1344 1086.4 1344 1045.3333333333333V970.6666666666666z" />
49
+ <glyph glyph-name="chapters"
50
+ unicode="&#xF10E;"
51
+ horiz-adv-x="1792" d=" M224 821.3333333333333H373.3333333333334V970.6666666666666H224V821.3333333333333zM224 522.6666666666665H373.3333333333334V672H224V522.6666666666665zM224 1120H373.3333333333334V1269.3333333333333H224V1120zM522.6666666666667 821.3333333333333H1568V970.6666666666666H522.6666666666667V821.3333333333333zM522.6666666666667 522.6666666666665H1568V672H522.6666666666667V522.6666666666665zM522.6666666666667 1269.3333333333333V1120H1568V1269.3333333333333H522.6666666666667z" />
52
+ <glyph glyph-name="share"
53
+ unicode="&#xF10F;"
54
+ horiz-adv-x="1792" d=" M1344 590.9866666666665C1287.2533333333333 590.9866666666665 1236.1066666666668 568.9599999999998 1197.2800000000002 533.4933333333331L665.2800000000001 843.7333333333333C669.3866666666667 860.5333333333333 672 878.08 672 896S669.3866666666667 931.4666666666666 665.2800000000001 948.2666666666667L1191.68 1255.52C1231.6266666666668 1218.1866666666665 1285.0133333333335 1195.04 1344 1195.04C1467.5733333333335 1195.04 1568 1295.4666666666665 1568 1419.04S1467.5733333333335 1643.04 1344 1643.04S1120 1542.6133333333332 1120 1419.04C1120 1401.12 1122.6133333333335 1383.5733333333333 1126.72 1366.773333333333L600.3199999999999 1059.5199999999998C560.3733333333333 1096.853333333333 506.9866666666666 1119.9999999999998 448 1119.9999999999998C324.4266666666666 1119.9999999999998 224 1019.5733333333332 224 895.9999999999998S324.4266666666666 671.9999999999998 448 671.9999999999998C506.9866666666666 671.9999999999998 560.3733333333333 695.1466666666665 600.3199999999999 732.4799999999998L1132.32 422.2399999999998C1128.5866666666666 406.5599999999997 1126.3466666666666 390.133333333333 1126.3466666666666 373.3333333333331C1126.3466666666666 253.1199999999997 1223.7866666666669 155.6799999999996 1344 155.6799999999996S1561.6533333333334 253.1199999999997 1561.6533333333334 373.3333333333331S1464.2133333333334 590.9866666666662 1344 590.9866666666662z" />
55
+ <glyph glyph-name="cog"
56
+ unicode="&#xF110;"
57
+ horiz-adv-x="1792" d=" M1450.7733333333333 823.1999999999999C1453.76 847.0933333333334 1456 871.3599999999999 1456 896S1453.76 944.9066666666666 1450.7733333333333 968.8L1608.6933333333336 1092.3733333333332C1622.8800000000003 1103.5733333333333 1626.986666666667 1123.7333333333331 1617.6533333333336 1140.1599999999999L1468.3200000000004 1398.8799999999999C1458.986666666667 1414.9333333333334 1439.5733333333335 1421.6533333333332 1422.7733333333338 1414.9333333333334L1236.8533333333337 1339.8933333333332C1198.4000000000003 1369.3866666666668 1156.2133333333338 1394.3999999999999 1110.6666666666672 1413.44L1082.6666666666667 1611.3066666666666C1079.3066666666668 1628.8533333333332 1064 1642.6666666666667 1045.3333333333335 1642.6666666666667H746.6666666666667C728 1642.6666666666667 712.6933333333334 1628.8533333333332 709.7066666666668 1611.3066666666666L681.7066666666668 1413.44C636.1600000000002 1394.4 593.9733333333335 1369.76 555.5200000000001 1339.8933333333332L369.6 1414.9333333333334C352.8000000000001 1421.28 333.3866666666667 1414.9333333333334 324.0533333333334 1398.88L174.72 1140.1599999999999C165.3866666666667 1124.1066666666666 169.4933333333334 1103.9466666666667 183.68 1092.3733333333332L341.2266666666667 968.8C338.2400000000001 944.9066666666666 336 920.64 336 896S338.2400000000001 847.0933333333334 341.2266666666667 823.1999999999999L183.68 699.6266666666668C169.4933333333334 688.4266666666667 165.3866666666667 668.2666666666667 174.72 651.8399999999999L324.0533333333334 393.1199999999999C333.3866666666667 377.0666666666666 352.8 370.3466666666666 369.6 377.0666666666666L555.5200000000001 452.1066666666666C593.9733333333334 422.6133333333333 636.16 397.5999999999999 681.7066666666668 378.56L709.7066666666668 180.6933333333334C712.6933333333334 163.1466666666668 728 149.3333333333333 746.6666666666667 149.3333333333333H1045.3333333333335C1064 149.3333333333333 1079.3066666666668 163.1466666666665 1082.2933333333333 180.6933333333334L1110.2933333333333 378.56C1155.84 397.5999999999999 1198.0266666666666 422.24 1236.48 452.1066666666666L1422.3999999999999 377.0666666666666C1439.2 370.7199999999998 1458.6133333333332 377.0666666666666 1467.9466666666665 393.1199999999999L1617.2799999999997 651.8399999999999C1626.6133333333332 667.8933333333332 1622.5066666666664 688.0533333333333 1608.3199999999997 699.6266666666668L1450.773333333333 823.1999999999999zM896 634.6666666666665C751.52 634.6666666666665 634.6666666666667 751.52 634.6666666666667 896S751.52 1157.3333333333333 896 1157.3333333333333S1157.3333333333335 1040.48 1157.3333333333335 896S1040.48 634.6666666666665 896 634.6666666666665z" />
58
+ <glyph glyph-name="circle"
59
+ unicode="&#xF111;"
60
+ horiz-adv-x="1792" d=" M149.3333333333334 896C149.3333333333334 483.6273867930074 483.6273867930075 149.3333333333333 896 149.3333333333333C1308.3726132069926 149.3333333333333 1642.6666666666667 483.6273867930074 1642.6666666666667 896C1642.6666666666667 1308.3726132069926 1308.3726132069926 1642.6666666666667 896 1642.6666666666667C483.6273867930075 1642.6666666666667 149.3333333333334 1308.3726132069926 149.3333333333334 896z" />
61
+ <glyph glyph-name="circle-outline"
62
+ unicode="&#xF112;"
63
+ horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
64
+ <glyph glyph-name="circle-inner-circle"
65
+ unicode="&#xF113;"
66
+ horiz-adv-x="1792" d=" M896 1642.6666666666667C484.2133333333334 1642.6666666666667 149.3333333333334 1307.7866666666666 149.3333333333334 896S484.2133333333334 149.3333333333333 896 149.3333333333333S1642.6666666666667 484.2133333333331 1642.6666666666667 896S1307.7866666666669 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665zM1120 896C1120 772.4266666666666 1019.5733333333334 672 896 672S672 772.4266666666666 672 896S772.4266666666667 1120 896 1120S1120 1019.5733333333332 1120 896z" />
67
+ <glyph glyph-name="hd"
68
+ unicode="&#xF114;"
69
+ horiz-adv-x="1792" d=" M1418.6666666666667 1568H373.3333333333334C290.4533333333333 1568 224 1500.8 224 1418.6666666666665V373.3333333333333C224 291.1999999999998 290.4533333333334 224 373.3333333333334 224H1418.6666666666667C1500.8000000000002 224 1568 291.1999999999998 1568 373.3333333333333V1418.6666666666665C1568 1500.8 1500.8000000000002 1568 1418.6666666666667 1568zM821.3333333333334 672H709.3333333333334V821.3333333333333H560V672H448V1120H560V933.3333333333331H709.3333333333334V1120H821.3333333333334V672zM970.6666666666669 1120H1269.3333333333335C1310.4 1120 1344 1086.4 1344 1045.3333333333333V746.6666666666665C1344 705.5999999999999 1310.4 672 1269.3333333333335 672H970.6666666666669V1120zM1082.6666666666667 783.9999999999999H1232V1008H1082.6666666666667V783.9999999999999z" />
70
+ <glyph glyph-name="cancel"
71
+ unicode="&#xF115;"
72
+ horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM1269.3333333333335 628.3199999999999L1163.68 522.6666666666665L896 790.3466666666667L628.3199999999999 522.6666666666665L522.6666666666667 628.3199999999999L790.3466666666668 896L522.6666666666667 1163.68L628.3199999999999 1269.3333333333333L896 1001.6533333333332L1163.68 1269.3333333333333L1269.3333333333335 1163.68L1001.6533333333334 896L1269.3333333333335 628.3199999999999z" />
73
+ <glyph glyph-name="replay"
74
+ unicode="&#xF116;"
75
+ horiz-adv-x="1792" d=" M896 1418.6666666666665V1717.3333333333333L522.6666666666667 1344L896 970.6666666666666V1269.3333333333333C1143.52 1269.3333333333333 1344 1068.8533333333332 1344 821.3333333333333S1143.52 373.3333333333333 896 373.3333333333333S448 573.813333333333 448 821.3333333333333H298.6666666666667C298.6666666666667 491.3066666666664 565.9733333333334 224 896 224S1493.3333333333335 491.3066666666664 1493.3333333333335 821.3333333333333S1226.0266666666669 1418.6666666666665 896 1418.6666666666665z" />
76
+ <glyph glyph-name="facebook"
77
+ unicode="&#xF117;"
78
+ horiz-adv-x="1792" d=" M1343 1780V1516H1186Q1100 1516 1070 1480T1040 1372V1183H1333L1294 887H1040V128H734V887H479V1183H734V1401Q734 1587 838 1689.5T1115 1792Q1262 1792 1343 1780z" />
79
+ <glyph glyph-name="gplus"
80
+ unicode="&#xF118;"
81
+ horiz-adv-x="1792" d=" M799 996Q799 960 831 925.5T908.5 857.5T999 784T1076 680T1108 538Q1108 448 1060 365Q988 243 849 185.5T551 128Q419 128 304.5 169.5T133 307Q96 367 96 438Q96 519 140.5 588T259 703Q390 785 663 803Q631 845 615.5 877T600 950Q600 986 621 1035Q575 1031 553 1031Q405 1031 303.5 1127.5T202 1372Q202 1454 238 1531T337 1662Q414 1728 519.5 1760T737 1792H1155L1017 1704H886Q960 1641 998 1571T1036 1411Q1036 1339 1011.5 1281.5T952.5 1188.5T883 1123.5T823.5 1062T799 996zM653 1092Q691 1092 731 1108.5T797 1152Q850 1209 850 1311Q850 1369 833 1436T784.5 1565.5T700 1669T583 1710Q541 1710 500.5 1690.5T435 1638Q388 1579 388 1478Q388 1432 398 1380.5T429.5 1277.5T481.5 1185T556.5 1118T653 1092zM655 219Q713 219 766.5 232T865.5 271T938.5 344T966 453Q966 478 959 502T944.5 544T917.5 585.5T888 620.5T849.5 655T813 684T771.5 714T735 740Q719 742 687 742Q634 742 582 735T474.5 710T377.5 664T309 589.5T282 484Q282 414 317 360.5T408.5 277.5T527.5 233.5T655 219zM1465 1095H1678V987H1465V768H1360V987H1148V1095H1360V1312H1465V1095z" />
82
+ <glyph glyph-name="linkedin"
83
+ unicode="&#xF119;"
84
+ horiz-adv-x="1792" d=" M477 1167V176H147V1167H477zM498 1473Q499 1400 447.5 1351T312 1302H310Q228 1302 178 1351T128 1473Q128 1547 179.5 1595.5T314 1644T447 1595.5T498 1473zM1664 744V176H1335V706Q1335 811 1294.5 870.5T1168 930Q1105 930 1062.5 895.5T999 810Q988 780 988 729V176H659Q661 575 661 823T660 1119L659 1167H988V1023H986Q1006 1055 1027 1079T1083.5 1131T1170.5 1174.5T1285 1190Q1456 1190 1560 1076.5T1664 744z" />
85
+ <glyph glyph-name="twitter"
86
+ unicode="&#xF11A;"
87
+ horiz-adv-x="1792" d=" M1684 1384Q1617 1286 1522 1217Q1523 1203 1523 1175Q1523 1045 1485 915.5T1369.5 667T1185 456.5T927 310.5T604 256Q333 256 108 401Q143 397 186 397Q411 397 587 535Q482 537 399 599.5T285 759Q318 754 346 754Q389 754 431 765Q319 788 245.5 876.5T172 1082V1086Q240 1048 318 1045Q252 1089 213 1160T174 1314Q174 1402 218 1477Q339 1328 512.5 1238.5T884 1139Q876 1177 876 1213Q876 1347 970.5 1441.5T1199 1536Q1339 1536 1435 1434Q1544 1455 1640 1512Q1603 1397 1498 1334Q1591 1344 1684 1384z" />
88
+ <glyph glyph-name="tumblr"
89
+ unicode="&#xF11B;"
90
+ horiz-adv-x="1792" d=" M1328 463L1408 226Q1385 191 1297 160T1120 128Q1016 126 929.5 154T787 228T692 334T636.5 454T620 572V1116H452V1331Q524 1357 581 1400.5T672 1490.5T730 1592.5T764 1691.5T779 1780Q780 1785 783.5 1788.5T791 1792H1035V1368H1368V1116H1034V598Q1034 568 1040.5 542T1063 489.5T1112.5 448T1194 434Q1272 436 1328 463z" />
91
+ <glyph glyph-name="pinterest"
92
+ unicode="&#xF11C;"
93
+ horiz-adv-x="1792" d=" M1664 896Q1664 687 1561 510.5T1281.5 231T896 128Q785 128 678 160Q737 253 756 324Q765 358 810 535Q830 496 883 467.5T997 439Q1118 439 1213 507.5T1360 696T1412 966Q1412 1080 1352.5 1180T1180 1343T925 1406Q820 1406 729 1377T574.5 1300T465.5 1189.5T398.5 1060T377 926Q377 822 417 743T534 632Q564 620 572 652Q574 659 580 683T588 713Q594 736 577 756Q526 817 526 907Q526 1058 630.5 1166.5T904 1275Q1055 1275 1139.5 1193T1224 980Q1224 810 1155.5 691T980 572Q919 572 882 615.5T859 720Q867 755 885.5 813.5T915.5 916.5T927 992Q927 1042 900 1075T823 1108Q761 1108 718 1051T675 909Q675 836 700 787L601 369Q584 299 588 192Q382 283 255 473T128 896Q128 1105 231 1281.5T510.5 1561T896 1664T1281.5 1561T1561 1281.5T1664 896z" />
94
+ <glyph glyph-name="audio-description"
95
+ unicode="&#xF11D;"
96
+ horiz-adv-x="1792" d=" M795.5138904615 457.270933L795.5138904615 1221.5248286325C971.84576475 1225.085121904 1107.39330415 1232.12360523 1207.223857 1161.5835220499998C1303.033991 1093.8857027 1377.7922305 962.20560625 1364.3373135 792.9476205000001C1350.102593 613.9029365000001 1219.6655764999998 463.4600215 1050.12389545 448.2843645000001C965.8259268 440.7398275000001 798.21890505 448.2843645000001 798.21890505 448.2843645000001C798.21890505 448.2843645000001 795.2791410655 453.016494 795.5138904615 457.270933M966.1564647 649.0863960000001C1076.16084135 644.6767075 1152.385591 707.3020429999999 1163.8910079999998 807.9351875C1179.2994744999999 942.71878505 1089.73043585 1030.3691748 960.74508635 1020.7227954L960.74508635 658.08043C960.6196169500002 652.9482330000001 962.7606933 650.3134680000001 966.1564647 649.0863960000001 M1343.2299685 457.3517725000002C1389.9059734 444.3690160000001 1404.0840274999998 496.0596970000001 1424.48294065 532.2791494999999C1469.0084255 611.2788500000001 1502.5101322 712.8584189999999 1503.0416912 828.9881705C1503.8147453000001 995.5680973 1438.8404296 1117.7973688000002 1378.4383305 1200.62456881045L1348.652139905 1200.62456881045C1346.6001063899998 1187.06858424 1356.44474056 1175.024791325 1362.18395859 1164.6588891000001C1408.2649952 1081.49431985 1450.96645015 966.7230041 1451.57490975 834.9817034999999C1452.27106325 683.8655425000002 1402.00636065 557.5072264999999 1343.2299685 457.3517725000002 M1488.0379675 457.3517725000002C1534.7139723999999 444.3690160000001 1548.8825828 496.0671625 1569.29093965 532.2791494999999C1613.8164245 611.2788500000001 1647.3113856500001 712.8584189999999 1647.8496902000002 828.9881705C1648.6227442999998 995.5680973 1583.6484286 1117.7973688000002 1523.2463295 1200.62456881045L1493.460138905 1200.62456881045C1491.40810539 1187.06858424 1501.250041305 1175.021805755 1506.9919575899999 1164.6588891000001C1553.0729942 1081.49431985 1595.7757984 966.7230041 1596.3829087499998 834.9817034999999C1597.07906225 683.8655425000002 1546.8143596500001 557.5072264999999 1488.0379675 457.3517725000002 M1631.9130380000001 457.3517725000002C1678.5890429 444.3690160000001 1692.7576533 496.0671625 1713.1660101500001 532.2791494999999C1757.691495 611.2788500000001 1791.1864561500001 712.8584189999999 1791.7247607000002 828.9881705C1792.4978148 995.5680973 1727.5234991000002 1117.7973688000002 1667.1214 1200.62456881045L1637.3352094050001 1200.62456881045C1635.28317589 1187.06858424 1645.1251118050002 1175.02329854 1650.86702809 1164.6588891000001C1696.9480647 1081.49431985 1739.64951965 966.7230041 1740.25797925 834.9817034999999C1740.95413275 683.8655425000002 1690.6894301500001 557.5072264999999 1631.9130380000001 457.3517725000002 M15.66796875 451.481947L254.03034755 451.481947L319.0356932 551.1747990000001L543.6261075 551.6487970000001C543.6261075 551.6487970000001 543.8541115 483.7032095 543.8541115 451.481947L714.4993835 451.481947L714.4993835 1230.9210795L508.643051 1230.9210795C488.8579955 1197.5411595 15.66796875 451.481947 15.66796875 451.481947L15.66796875 451.481947zM550.0048155000001 959.9708615L550.0048155000001 710.916297L408.4199 711.8642895L550.0048155000001 959.9708615L550.0048155000001 959.9708615z" />
97
+ <glyph glyph-name="audio"
98
+ unicode="&#xF11E;"
99
+ horiz-adv-x="1792" d=" M896 1717.3333333333333C524.9066666666668 1717.3333333333333 224 1416.4266666666667 224 1045.3333333333333V522.6666666666665C224 399.0933333333333 324.4266666666667 298.6666666666665 448 298.6666666666665H672V896H373.3333333333334V1045.3333333333333C373.3333333333334 1333.92 607.4133333333334 1568 896 1568S1418.6666666666667 1333.92 1418.6666666666667 1045.3333333333333V896H1120V298.6666666666665H1344C1467.5733333333335 298.6666666666665 1568 399.0933333333333 1568 522.6666666666665V1045.3333333333333C1568 1416.4266666666667 1267.0933333333332 1717.3333333333333 896 1717.3333333333333z" />
100
+ <glyph glyph-name="next-item"
101
+ unicode="&#xF11F;"
102
+ horiz-adv-x="1792" d=" M448 448L1082.6666666666667 896L448 1344V448zM1194.6666666666667 1344V448H1344V1344H1194.6666666666667z" />
103
+ <glyph glyph-name="previous-item"
104
+ unicode="&#xF120;"
105
+ horiz-adv-x="1792" d=" M448 1344H597.3333333333334V448H448zM709.3333333333334 896L1344 448V1344z" />
106
+ <glyph glyph-name="picture-in-picture-enter"
107
+ unicode="&#xF121;"
108
+ horiz-adv-x="1792" d=" M1418.6666666666667 970.6666666666666H821.3333333333334V523.0399999999997H1418.6666666666667V970.6666666666666zM1717.3333333333335 373.3333333333333V1420.1599999999999C1717.3333333333335 1502.2933333333333 1650.1333333333334 1568 1568 1568H224C141.8666666666667 1568 74.6666666666667 1502.2933333333333 74.6666666666667 1420.1599999999999V373.3333333333333C74.6666666666667 291.1999999999998 141.8666666666667 224 224 224H1568C1650.1333333333334 224 1717.3333333333335 291.1999999999998 1717.3333333333335 373.3333333333333zM1568 371.8399999999999H224V1420.9066666666668H1568V371.8399999999999z" />
109
+ <glyph glyph-name="picture-in-picture-exit"
110
+ unicode="&#xF122;"
111
+ horiz-adv-x="2190.222222222222" d=" M1792 1393.7777777777778H398.2222222222223V398.2222222222222H1792V1393.7777777777778zM2190.222222222222 199.1111111111111V1594.88C2190.222222222222 1704.391111111111 2100.6222222222223 1792 1991.1111111111113 1792H199.1111111111111C89.6 1792 0 1704.391111111111 0 1594.88V199.1111111111111C0 89.5999999999999 89.6 0 199.1111111111111 0H1991.1111111111113C2100.6222222222223 0 2190.222222222222 89.5999999999999 2190.222222222222 199.1111111111111zM1991.1111111111113 197.1200000000001H199.1111111111111V1595.8755555555556H1991.1111111111113V197.1200000000001z" />
112
+ </font>
113
+ </defs>
114
+ </svg>
public/assets/player/videojs/font/VideoJS.ttf ADDED
Binary file
public/assets/player/videojs/font/VideoJS.woff ADDED
Binary file
public/assets/player/videojs/index.html ADDED
@@ -0,0 +1 @@
 
1
+ <!DOCTYPE html><title></title>
public/assets/player/videojs/lang/ar.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('ar', {
2
+ "Play": "تشغيل",
3
+ "Pause": "إيقاف",
4
+ "Current Time": "الوقت الحالي",
5
+ "Duration": "مدة",
6
+ "Remaining Time": "الوقت المتبقي",
7
+ "Stream Type": "نوع التيار",
8
+ "LIVE": "مباشر",
9
+ "Loaded": "تم التحميل",
10
+ "Progress": "التقدم",
11
+ "Fullscreen": "ملء الشاشة",
12
+ "Non-Fullscreen": "تعطيل ملء الشاشة",
13
+ "Mute": "صامت",
14
+ "Unmute": "غير الصامت",
15
+ "Playback Rate": "معدل التشغيل",
16
+ "Subtitles": "الترجمة",
17
+ "subtitles off": "إيقاف الترجمة",
18
+ "Captions": "التعليقات",
19
+ "captions off": "إيقاف التعليقات",
20
+ "Chapters": "فصول",
21
+ "You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
22
+ "A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادوم أو الشبكة ، أو فشل بسبب عدم إمكانية قراءة تنسيق الفيديو.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم إيقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
25
+ "No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو.",
26
+ "Play Video": "تشغيل الفيديو",
27
+ "Close": "أغلق",
28
+ "Modal Window": "نافذة مشروطة",
29
+ "This is a modal window": "هذه نافذة مشروطة",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "يمكن غلق هذه النافذة المشروطة عن طريق الضغط على زر الخروج أو تفعيل زر الإغلاق",
31
+ ", opens captions settings dialog": ", تفتح نافذة خيارات التعليقات",
32
+ ", opens subtitles settings dialog": ", تفتح نافذة خيارات الترجمة",
33
+ ", selected": ", مختار"
34
+ });
public/assets/player/videojs/lang/ar.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "تشغيل",
3
+ "Pause": "إيقاف",
4
+ "Current Time": "الوقت الحالي",
5
+ "Duration": "مدة",
6
+ "Remaining Time": "الوقت المتبقي",
7
+ "Stream Type": "نوع التيار",
8
+ "LIVE": "مباشر",
9
+ "Loaded": "تم التحميل",
10
+ "Progress": "التقدم",
11
+ "Fullscreen": "ملء الشاشة",
12
+ "Non-Fullscreen": "تعطيل ملء الشاشة",
13
+ "Mute": "صامت",
14
+ "Unmute": "غير الصامت",
15
+ "Playback Rate": "معدل التشغيل",
16
+ "Subtitles": "الترجمة",
17
+ "subtitles off": "إيقاف الترجمة",
18
+ "Captions": "التعليقات",
19
+ "captions off": "إيقاف التعليقات",
20
+ "Chapters": "فصول",
21
+ "You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
22
+ "A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادوم أو الشبكة ، أو فشل بسبب عدم إمكانية قراءة تنسيق الفيديو.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم إيقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
25
+ "No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو.",
26
+ "Play Video": "تشغيل الفيديو",
27
+ "Close": "أغلق",
28
+ "Modal Window": "نافذة مشروطة",
29
+ "This is a modal window": "هذه نافذة مشروطة",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "يمكن غلق هذه النافذة المشروطة عن طريق الضغط على زر الخروج أو تفعيل زر الإغلاق",
31
+ ", opens captions settings dialog": ", تفتح نافذة خيارات التعليقات",
32
+ ", opens subtitles settings dialog": ", تفتح نافذة خيارات الترجمة",
33
+ ", selected": ", مختار"
34
+ }
public/assets/player/videojs/lang/ba.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('ba', {
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
+ });
public/assets/player/videojs/lang/ba.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
+ }
public/assets/player/videojs/lang/bg.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('bg', {
2
+ "Play": "Възпроизвеждане",
3
+ "Pause": "Пауза",
4
+ "Current Time": "Текущо време",
5
+ "Duration": "Продължителност",
6
+ "Remaining Time": "Оставащо време",
7
+ "Stream Type": "Тип на потока",
8
+ "LIVE": "НА ЖИВО",
9
+ "Loaded": "Заредено",
10
+ "Progress": "Прогрес",
11
+ "Fullscreen": "Цял екран",
12
+ "Non-Fullscreen": "Спиране на цял екран",
13
+ "Mute": "Без звук",
14
+ "Unmute": "Със звук",
15
+ "Playback Rate": "Скорост на възпроизвеждане",
16
+ "Subtitles": "Субтитри",
17
+ "subtitles off": "Спряни субтитри",
18
+ "Captions": "Аудио надписи",
19
+ "captions off": "Спряни аудио надписи",
20
+ "Chapters": "Глави",
21
+ "You aborted the media playback": "Спряхте възпроизвеждането на видеото",
22
+ "A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
25
+ "No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
26
+ });
public/assets/player/videojs/lang/bg.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Възпроизвеждане",
3
+ "Pause": "Пауза",
4
+ "Current Time": "Текущо време",
5
+ "Duration": "Продължителност",
6
+ "Remaining Time": "Оставащо време",
7
+ "Stream Type": "Тип на потока",
8
+ "LIVE": "НА ЖИВО",
9
+ "Loaded": "Заредено",
10
+ "Progress": "Прогрес",
11
+ "Fullscreen": "Цял екран",
12
+ "Non-Fullscreen": "Спиране на цял екран",
13
+ "Mute": "Без звук",
14
+ "Unmute": "Със звук",
15
+ "Playback Rate": "Скорост на възпроизвеждане",
16
+ "Subtitles": "Субтитри",
17
+ "subtitles off": "Спряни субтитри",
18
+ "Captions": "Аудио надписи",
19
+ "captions off": "Спряни аудио надписи",
20
+ "Chapters": "Глави",
21
+ "You aborted the media playback": "Спряхте възпроизвеждането на видеото",
22
+ "A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
25
+ "No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
26
+ }
public/assets/player/videojs/lang/ca.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('ca', {
2
+ "Play": "Reproducció",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Temps reproduït",
5
+ "Duration": "Durada total",
6
+ "Remaining Time": "Temps restant",
7
+ "Stream Type": "Tipus de seqüència",
8
+ "LIVE": "EN DIRECTE",
9
+ "Loaded": "Carregat",
10
+ "Progress": "Progrés",
11
+ "Fullscreen": "Pantalla completa",
12
+ "Non-Fullscreen": "Pantalla no completa",
13
+ "Mute": "Silencia",
14
+ "Unmute": "Amb so",
15
+ "Playback Rate": "Velocitat de reproducció",
16
+ "Subtitles": "Subtítols",
17
+ "subtitles off": "Subtítols desactivats",
18
+ "Captions": "Llegendes",
19
+ "captions off": "Llegendes desactivades",
20
+ "Chapters": "Capítols",
21
+ "You aborted the media playback": "Heu interromput la reproducció del vídeo.",
22
+ "A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
25
+ "No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
26
+ });
public/assets/player/videojs/lang/ca.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Reproducció",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Temps reproduït",
5
+ "Duration": "Durada total",
6
+ "Remaining Time": "Temps restant",
7
+ "Stream Type": "Tipus de seqüència",
8
+ "LIVE": "EN DIRECTE",
9
+ "Loaded": "Carregat",
10
+ "Progress": "Progrés",
11
+ "Fullscreen": "Pantalla completa",
12
+ "Non-Fullscreen": "Pantalla no completa",
13
+ "Mute": "Silencia",
14
+ "Unmute": "Amb so",
15
+ "Playback Rate": "Velocitat de reproducció",
16
+ "Subtitles": "Subtítols",
17
+ "subtitles off": "Subtítols desactivats",
18
+ "Captions": "Llegendes",
19
+ "captions off": "Llegendes desactivades",
20
+ "Chapters": "Capítols",
21
+ "You aborted the media playback": "Heu interromput la reproducció del vídeo.",
22
+ "A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
25
+ "No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
26
+ }
public/assets/player/videojs/lang/cs.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('cs', {
2
+ "Audio Player": "Audio Přehravač",
3
+ "Video Player": "Video Přehravač",
4
+ "Play": "Přehrát",
5
+ "Pause": "Pauza",
6
+ "Replay": "Spustit znovu",
7
+ "Current Time": "Aktuální čas",
8
+ "Duration": "Doba trvání",
9
+ "Remaining Time": "Zbývající čas",
10
+ "Stream Type": "Typ streamu",
11
+ "LIVE": "ŽIVĚ",
12
+ "Loaded": "Načteno",
13
+ "Progress": "Stav",
14
+ "Progress Bar": "Ukazatel průběhu",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} z {2}",
16
+ "Fullscreen": "Celá obrazovka",
17
+ "Non-Fullscreen": "Běžné zobrazení",
18
+ "Mute": "Ztlumit zvuk",
19
+ "Unmute": "Zapnout zvuk",
20
+ "Playback Rate": "Rychlost přehrávání",
21
+ "Subtitles": "Titulky",
22
+ "subtitles off": "Bez titulků",
23
+ "Captions": "Popisky",
24
+ "captions off": "Popisky vypnuty",
25
+ "Chapters": "Kapitoly",
26
+ "Descriptions": "Popisy",
27
+ "descriptions off": "Bez popisů",
28
+ "Audio Track": "Zvuková stopa",
29
+ "Volume Level": "Hlasitost",
30
+ "You aborted the media playback": "Přehrávání videa bylo přerušeno.",
31
+ "A network error caused the media download to fail part-way.": "Video nemohlo být načteno kvůli chybě v síti.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru, sítě nebo proto, že daný formát není podporován.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje tento formát videa.",
34
+ "No compatible source was found for this media.": "Nevalidní zadaný zdroj videa.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Chyba při dešifrování videa.",
36
+ "Play Video": "Přehrát video",
37
+ "Close": "Zavřit",
38
+ "Close Modal Dialog": "Zavřít okno",
39
+ "Modal Window": "Modální okno",
40
+ "This is a modal window": "Toto je modální okno",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Toto okno se dá zavřít křížkem nebo klávesou Esc.",
42
+ ", opens captions settings dialog": ", otevřít okno pro nastavení popisků",
43
+ ", opens subtitles settings dialog": ", otevřít okno pro nastavení titulků",
44
+ ", opens descriptions settings dialog": ", otevře okno pro nastavení popisků pro nevidomé",
45
+ ", selected": ", vybráno",
46
+ "captions settings": "nastavení popisků",
47
+ "subtitles settings": "nastavení titulků",
48
+ "descriptions settings": "nastavení popisků pro nevidomé",
49
+ "Text": "Titulky",
50
+ "White": "Bílé",
51
+ "Black": "Černé",
52
+ "Red": "Červené",
53
+ "Green": "Zelené",
54
+ "Blue": "Modré",
55
+ "Yellow": "Žluté",
56
+ "Magenta": "Fialové",
57
+ "Cyan": "Azurové",
58
+ "Background": "Pozadí titulků",
59
+ "Window": "Okno",
60
+ "Transparent": "Průhledné",
61
+ "Semi-Transparent": "Poloprůhledné",
62
+ "Opaque": "Neprůhledné",
63
+ "Font Size": "Velikost písma",
64
+ "Text Edge Style": "Okraje písma",
65
+ "None": "Bez okraje",
66
+ "Raised": "Zvýšený",
67
+ "Depressed": "Propadlý",
68
+ "Uniform": "Rovnoměrný",
69
+ "Dropshadow": "Stínovaný",
70
+ "Font Family": "Rodina písma",
71
+ "Proportional Sans-Serif": "Proporcionální bezpatkové",
72
+ "Monospace Sans-Serif": "Monospace bezpatkové",
73
+ "Proportional Serif": "Proporcionální patkové",
74
+ "Monospace Serif": "Monospace patkové",
75
+ "Casual": "Hravé",
76
+ "Script": "Ručně psané",
77
+ "Small Caps": "Malé kapitálky",
78
+ "Reset": "Obnovit",
79
+ "restore all settings to the default values": "Vrátit nastavení do výchozího stavu",
80
+ "Done": "Hotovo",
81
+ "Caption Settings Dialog": "Okno s nastavením titulků",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Začátek dialogového okna. Klávesa Esc okno zavře.",
83
+ "End of dialog window.": "Konec dialogového okna.",
84
+ "{1} is loading.": "{1} se načítá."
85
+ });
public/assets/player/videojs/lang/cs.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Audio Přehravač",
3
+ "Video Player": "Video Přehravač",
4
+ "Play": "Přehrát",
5
+ "Pause": "Pauza",
6
+ "Replay": "Spustit znovu",
7
+ "Current Time": "Aktuální čas",
8
+ "Duration": "Doba trvání",
9
+ "Remaining Time": "Zbývající čas",
10
+ "Stream Type": "Typ streamu",
11
+ "LIVE": "ŽIVĚ",
12
+ "Loaded": "Načteno",
13
+ "Progress": "Stav",
14
+ "Progress Bar": "Ukazatel průběhu",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} z {2}",
16
+ "Fullscreen": "Celá obrazovka",
17
+ "Non-Fullscreen": "Běžné zobrazení",
18
+ "Mute": "Ztlumit zvuk",
19
+ "Unmute": "Zapnout zvuk",
20
+ "Playback Rate": "Rychlost přehrávání",
21
+ "Subtitles": "Titulky",
22
+ "subtitles off": "Bez titulků",
23
+ "Captions": "Popisky",
24
+ "captions off": "Popisky vypnuty",
25
+ "Chapters": "Kapitoly",
26
+ "Descriptions": "Popisy",
27
+ "descriptions off": "Bez popisů",
28
+ "Audio Track": "Zvuková stopa",
29
+ "Volume Level": "Hlasitost",
30
+ "You aborted the media playback": "Přehrávání videa bylo přerušeno.",
31
+ "A network error caused the media download to fail part-way.": "Video nemohlo být načteno kvůli chybě v síti.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru, sítě nebo proto, že daný formát není podporován.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje tento formát videa.",
34
+ "No compatible source was found for this media.": "Nevalidní zadaný zdroj videa.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Chyba při dešifrování videa.",
36
+ "Play Video": "Přehrát video",
37
+ "Close": "Zavřit",
38
+ "Close Modal Dialog": "Zavřít okno",
39
+ "Modal Window": "Modální okno",
40
+ "This is a modal window": "Toto je modální okno",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Toto okno se dá zavřít křížkem nebo klávesou Esc.",
42
+ ", opens captions settings dialog": ", otevřít okno pro nastavení popisků",
43
+ ", opens subtitles settings dialog": ", otevřít okno pro nastavení titulků",
44
+ ", opens descriptions settings dialog": ", otevře okno pro nastavení popisků pro nevidomé",
45
+ ", selected": ", vybráno",
46
+ "captions settings": "nastavení popisků",
47
+ "subtitles settings": "nastavení titulků",
48
+ "descriptions settings": "nastavení popisků pro nevidomé",
49
+ "Text": "Titulky",
50
+ "White": "Bílé",
51
+ "Black": "Černé",
52
+ "Red": "Červené",
53
+ "Green": "Zelené",
54
+ "Blue": "Modré",
55
+ "Yellow": "Žluté",
56
+ "Magenta": "Fialové",
57
+ "Cyan": "Azurové",
58
+ "Background": "Pozadí titulků",
59
+ "Window": "Okno",
60
+ "Transparent": "Průhledné",
61
+ "Semi-Transparent": "Poloprůhledné",
62
+ "Opaque": "Neprůhledné",
63
+ "Font Size": "Velikost písma",
64
+ "Text Edge Style": "Okraje písma",
65
+ "None": "Bez okraje",
66
+ "Raised": "Zvýšený",
67
+ "Depressed": "Propadlý",
68
+ "Uniform": "Rovnoměrný",
69
+ "Dropshadow": "Stínovaný",
70
+ "Font Family": "Rodina písma",
71
+ "Proportional Sans-Serif": "Proporcionální bezpatkové",
72
+ "Monospace Sans-Serif": "Monospace bezpatkové",
73
+ "Proportional Serif": "Proporcionální patkové",
74
+ "Monospace Serif": "Monospace patkové",
75
+ "Casual": "Hravé",
76
+ "Script": "Ručně psané",
77
+ "Small Caps": "Malé kapitálky",
78
+ "Reset": "Obnovit",
79
+ "restore all settings to the default values": "Vrátit nastavení do výchozího stavu",
80
+ "Done": "Hotovo",
81
+ "Caption Settings Dialog": "Okno s nastavením titulků",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Začátek dialogového okna. Klávesa Esc okno zavře.",
83
+ "End of dialog window.": "Konec dialogového okna.",
84
+ "{1} is loading.": "{1} se načítá."
85
+ }
public/assets/player/videojs/lang/cy.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('cy', {
2
+ "Audio Player": "Chwaraewr sain",
3
+ "Video Player": "Chwaraewr fideo",
4
+ "Play": "Chwarae",
5
+ "Pause": "Oedi",
6
+ "Replay": "Ailchwarae",
7
+ "Current Time": "Amser Cyfredol",
8
+ "Duration": "Parhad",
9
+ "Remaining Time": "Amser ar ôl",
10
+ "Stream Type": "Math o Ffrwd",
11
+ "LIVE": "YN FYW",
12
+ "Loaded": "Llwythwyd",
13
+ "Progress": "Cynnydd",
14
+ "Progress Bar": "Bar Cynnydd",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} o {2}",
16
+ "Fullscreen": "Sgrîn Lawn",
17
+ "Non-Fullscreen": "Ffenestr",
18
+ "Mute": "Pylu",
19
+ "Unmute": "Dad-bylu",
20
+ "Playback Rate": "Cyfradd Chwarae",
21
+ "Subtitles": "Isdeitlau",
22
+ "subtitles off": "Isdeitlau i ffwrdd",
23
+ "Captions": "Capsiynau",
24
+ "captions off": "Capsiynau i ffwrdd",
25
+ "Chapters": "Penodau",
26
+ "Descriptions": "Disgrifiadau",
27
+ "descriptions off": "disgrifiadau i ffwrdd",
28
+ "Audio Track": "Trac Sain",
29
+ "Volume Level": "Lefel Sain",
30
+ "You aborted the media playback": "Atalwyd y fideo gennych",
31
+ "A network error caused the media download to fail part-way.": "Mae gwall rhwydwaith wedi achosi methiant lawrlwytho.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Ni lwythodd y fideo, oherwydd methiant gweinydd neu rwydwaith, neu achos nid yw'r system yn cefnogi'r fformat.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Atalwyd y fideo oherwydd problem llygredd data neu oherwydd nid yw'ch porwr yn cefnogi nodweddion penodol o'r fideo.",
34
+ "No compatible source was found for this media.": "Nid oedd modd canfod ffynhonnell cytûn am y fideo hwn.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Mae'r fideo wedi ei amgryptio ac nid oes allweddion gennym.",
36
+ "Play Video": "Chwarae Fideo",
37
+ "Close": "Cau",
38
+ "Close Modal Dialog": "Cau Blwch Deialog Moddol",
39
+ "Modal Window": "Ffenestr Foddol",
40
+ "This is a modal window": "Mae hon yn ffenestr foddol",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Gallech chi gau'r ffenestr foddol hon trwy wasgu Escape neu glicio'r botwm cau.",
42
+ ", opens captions settings dialog": ", yn agor gosodiadau capsiynau",
43
+ ", opens subtitles settings dialog": ", yn agor gosodiadau isdeitlau",
44
+ ", opens descriptions settings dialog": ", yn agor gosodiadau disgrifiadau",
45
+ ", selected": ", detholwyd",
46
+ "captions settings": "gosodiadau capsiynau",
47
+ "subtitles settings": "gosodiadau isdeitlau",
48
+ "descriptions settings": "gosodiadau disgrifiadau",
49
+ "Text": "Testun",
50
+ "White": "Gwyn",
51
+ "Black": "Du",
52
+ "Red": "Coch",
53
+ "Green": "Gwyrdd",
54
+ "Blue": "Glas",
55
+ "Yellow": "Melyn",
56
+ "Magenta": "Piws",
57
+ "Cyan": "Cyan",
58
+ "Background": "Cefndir",
59
+ "Window": "Ffenestr",
60
+ "Transparent": "Tryloyw",
61
+ "Semi-Transparent": "Hanner-dryloyw",
62
+ "Opaque": "Di-draidd",
63
+ "Font Size": "Maint y Ffont",
64
+ "Text Edge Style": "Arddull Ymylon Testun",
65
+ "None": "Dim",
66
+ "Raised": "Uwch",
67
+ "Depressed": "Is",
68
+ "Uniform": "Unffurf",
69
+ "Dropshadow": "Cysgod cefn",
70
+ "Font Family": "Teulu y Ffont",
71
+ "Proportional Sans-Serif": "Heb-Seriff Cyfraneddol",
72
+ "Monospace Sans-Serif": "Heb-Seriff Unlled",
73
+ "Proportional Serif": "Seriff Gyfraneddol",
74
+ "Monospace Serif": "Seriff Unlled",
75
+ "Casual": "Llawysgrif",
76
+ "Script": "Sgript",
77
+ "Small Caps": "Prif Lythyrennau Bychain",
78
+ "Reset": "Ailosod",
79
+ "restore all settings to the default values": "Adfer yr holl osodiadau diofyn",
80
+ "Done": "Gorffenwyd",
81
+ "Caption Settings Dialog": "Blwch Gosodiadau Capsiynau",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Dechrau ffenestr deialog. Bydd Escape yn canslo a chau'r ffenestr.",
83
+ "End of dialog window.": "Diwedd ffenestr deialog.",
84
+ "{1} is loading.": "{1} yn llwytho."
85
+ });
public/assets/player/videojs/lang/cy.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player":"Chwaraewr sain",
3
+ "Video Player":"Chwaraewr fideo",
4
+ "Play":"Chwarae",
5
+ "Pause":"Oedi",
6
+ "Replay":"Ailchwarae",
7
+ "Current Time":"Amser Cyfredol",
8
+ "Duration":"Parhad",
9
+ "Remaining Time":"Amser ar ôl",
10
+ "Stream Type":"Math o Ffrwd",
11
+ "LIVE":"YN FYW",
12
+ "Loaded":"Llwythwyd",
13
+ "Progress":"Cynnydd",
14
+ "Progress Bar":"Bar Cynnydd",
15
+ "progress bar timing: currentTime={1} duration={2}":"{1} o {2}",
16
+ "Fullscreen":"Sgrîn Lawn",
17
+ "Non-Fullscreen":"Ffenestr",
18
+ "Mute":"Pylu",
19
+ "Unmute":"Dad-bylu",
20
+ "Playback Rate":"Cyfradd Chwarae",
21
+ "Subtitles":"Isdeitlau",
22
+ "subtitles off":"Isdeitlau i ffwrdd",
23
+ "Captions":"Capsiynau",
24
+ "captions off":"Capsiynau i ffwrdd",
25
+ "Chapters":"Penodau",
26
+ "Descriptions":"Disgrifiadau",
27
+ "descriptions off":"disgrifiadau i ffwrdd",
28
+ "Audio Track":"Trac Sain",
29
+ "Volume Level":"Lefel Sain",
30
+ "You aborted the media playback":"Atalwyd y fideo gennych",
31
+ "A network error caused the media download to fail part-way.":"Mae gwall rhwydwaith wedi achosi methiant lawrlwytho.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.":"Ni lwythodd y fideo, oherwydd methiant gweinydd neu rwydwaith, neu achos nid yw'r system yn cefnogi'r fformat.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Atalwyd y fideo oherwydd problem llygredd data neu oherwydd nid yw'ch porwr yn cefnogi nodweddion penodol o'r fideo.",
34
+ "No compatible source was found for this media.":"Nid oedd modd canfod ffynhonnell cytûn am y fideo hwn.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.":"Mae'r fideo wedi ei amgryptio ac nid oes allweddion gennym.",
36
+ "Play Video":"Chwarae Fideo",
37
+ "Close":"Cau",
38
+ "Close Modal Dialog":"Cau Blwch Deialog Moddol",
39
+ "Modal Window":"Ffenestr Foddol",
40
+ "This is a modal window":"Mae hon yn ffenestr foddol",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.":"Gallech chi gau'r ffenestr foddol hon trwy wasgu Escape neu glicio'r botwm cau.",
42
+ ", opens captions settings dialog":", yn agor gosodiadau capsiynau",
43
+ ", opens subtitles settings dialog":", yn agor gosodiadau isdeitlau",
44
+ ", opens descriptions settings dialog":", yn agor gosodiadau disgrifiadau",
45
+ ", selected":", detholwyd",
46
+ "captions settings":"gosodiadau capsiynau",
47
+ "subtitles settings":"gosodiadau isdeitlau",
48
+ "descriptions settings":"gosodiadau disgrifiadau",
49
+ "Text":"Testun",
50
+ "White":"Gwyn",
51
+ "Black":"Du",
52
+ "Red":"Coch",
53
+ "Green":"Gwyrdd",
54
+ "Blue":"Glas",
55
+ "Yellow":"Melyn",
56
+ "Magenta":"Piws",
57
+ "Cyan":"Cyan",
58
+ "Background":"Cefndir",
59
+ "Window":"Ffenestr",
60
+ "Transparent":"Tryloyw",
61
+ "Semi-Transparent":"Hanner-dryloyw",
62
+ "Opaque":"Di-draidd",
63
+ "Font Size":"Maint y Ffont",
64
+ "Text Edge Style":"Arddull Ymylon Testun",
65
+ "None":"Dim",
66
+ "Raised":"Uwch",
67
+ "Depressed":"Is",
68
+ "Uniform":"Unffurf",
69
+ "Dropshadow":"Cysgod cefn",
70
+ "Font Family":"Teulu y Ffont",
71
+ "Proportional Sans-Serif":"Heb-Seriff Cyfraneddol",
72
+ "Monospace Sans-Serif":"Heb-Seriff Unlled",
73
+ "Proportional Serif":"Seriff Gyfraneddol",
74
+ "Monospace Serif":"Seriff Unlled",
75
+ "Casual":"Llawysgrif",
76
+ "Script":"Sgript",
77
+ "Small Caps":"Prif Lythyrennau Bychain",
78
+ "Reset":"Ailosod",
79
+ "restore all settings to the default values":"Adfer yr holl osodiadau diofyn",
80
+ "Done":"Gorffenwyd",
81
+ "Caption Settings Dialog":"Blwch Gosodiadau Capsiynau",
82
+ "Beginning of dialog window. Escape will cancel and close the window.":"Dechrau ffenestr deialog. Bydd Escape yn canslo a chau'r ffenestr.",
83
+ "End of dialog window.":"Diwedd ffenestr deialog.",
84
+ "{1} is loading.": "{1} yn llwytho."
85
+ }
public/assets/player/videojs/lang/da.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('da', {
2
+ "Play": "Afspil",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuel tid",
5
+ "Duration": "Varighed",
6
+ "Remaining Time": "Resterende tid",
7
+ "Stream Type": "Stream-type",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Indlæst",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fuldskærm",
12
+ "Non-Fullscreen": "Luk fuldskærm",
13
+ "Mute": "Uden lyd",
14
+ "Unmute": "Med lyd",
15
+ "Playback Rate": "Afspilningsrate",
16
+ "Subtitles": "Undertekster",
17
+ "subtitles off": "Uden undertekster",
18
+ "Captions": "Undertekster for hørehæmmede",
19
+ "captions off": "Uden undertekster for hørehæmmede",
20
+ "Chapters": "Kapitler",
21
+ "You aborted the media playback": "Du afbrød videoafspilningen.",
22
+ "A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
25
+ "No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
26
+ });
public/assets/player/videojs/lang/da.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Afspil",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuel tid",
5
+ "Duration": "Varighed",
6
+ "Remaining Time": "Resterende tid",
7
+ "Stream Type": "Stream-type",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Indlæst",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fuldskærm",
12
+ "Non-Fullscreen": "Luk fuldskærm",
13
+ "Mute": "Uden lyd",
14
+ "Unmute": "Med lyd",
15
+ "Playback Rate": "Afspilningsrate",
16
+ "Subtitles": "Undertekster",
17
+ "subtitles off": "Uden undertekster",
18
+ "Captions": "Undertekster for hørehæmmede",
19
+ "captions off": "Uden undertekster for hørehæmmede",
20
+ "Chapters": "Kapitler",
21
+ "You aborted the media playback": "Du afbrød videoafspilningen.",
22
+ "A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
25
+ "No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
26
+ }
public/assets/player/videojs/lang/de.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('de', {
2
+ "Play": "Wiedergabe",
3
+ "Pause": "Pause",
4
+ "Replay": "Erneut abspielen",
5
+ "Current Time": "Aktueller Zeitpunkt",
6
+ "Duration": "Dauer",
7
+ "Remaining Time": "Verbleibende Zeit",
8
+ "Stream Type": "Streamtyp",
9
+ "LIVE": "LIVE",
10
+ "Loaded": "Geladen",
11
+ "Progress": "Status",
12
+ "Fullscreen": "Vollbild",
13
+ "Non-Fullscreen": "Kein Vollbild",
14
+ "Mute": "Ton aus",
15
+ "Unmute": "Ton ein",
16
+ "Playback Rate": "Wiedergabegeschwindigkeit",
17
+ "Subtitles": "Untertitel",
18
+ "subtitles off": "Untertitel aus",
19
+ "Captions": "Untertitel",
20
+ "captions off": "Untertitel aus",
21
+ "Chapters": "Kapitel",
22
+ "You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
23
+ "A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
24
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
25
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
26
+ "No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden.",
27
+ "Play Video": "Video abspielen",
28
+ "Close": "Schließen",
29
+ "Modal Window": "Modales Fenster",
30
+ "This is a modal window": "Dies ist ein modales Fenster",
31
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Durch Drücken der Esc-Taste bzw. Betätigung der Schaltfläche \"Schließen\" wird dieses modale Fenster geschlossen.",
32
+ ", opens captions settings dialog": ", öffnet Einstellungen für Untertitel",
33
+ ", opens subtitles settings dialog": ", öffnet Einstellungen für Untertitel",
34
+ ", selected": ", ausgewählt",
35
+ "captions settings": "Untertiteleinstellungen",
36
+ "subtitles settings": "Untertiteleinstellungen",
37
+ "descriptions settings": "Einstellungen für Beschreibungen",
38
+ "Close Modal Dialog": "Modales Fenster schließen",
39
+ "Descriptions": "Beschreibungen",
40
+ "descriptions off": "Beschreibungen aus",
41
+ "The media is encrypted and we do not have the keys to decrypt it.": "Die Entschlüsselungsschlüssel für den verschlüsselten Medieninhalt sind nicht verfügbar.",
42
+ ", opens descriptions settings dialog": ", öffnet Einstellungen für Beschreibungen",
43
+ "Audio Track": "Tonspur",
44
+ "Text": "Schrift",
45
+ "White": "Weiß",
46
+ "Black": "Schwarz",
47
+ "Red": "Rot",
48
+ "Green": "Grün",
49
+ "Blue": "Blau",
50
+ "Yellow": "Gelb",
51
+ "Magenta": "Magenta",
52
+ "Cyan": "Türkis",
53
+ "Background": "Hintergrund",
54
+ "Window": "Fenster",
55
+ "Transparent": "Durchsichtig",
56
+ "Semi-Transparent": "Halbdurchsichtig",
57
+ "Opaque": "Undurchsichtig",
58
+ "Font Size": "Schriftgröße",
59
+ "Text Edge Style": "Textkantenstil",
60
+ "None": "Kein",
61
+ "Raised": "Erhoben",
62
+ "Depressed": "Gedrückt",
63
+ "Uniform": "Uniform",
64
+ "Dropshadow": "Schlagschatten",
65
+ "Font Family": "Schristfamilie",
66
+ "Proportional Sans-Serif": "Proportionale Sans-Serif",
67
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
68
+ "Proportional Serif": "Proportionale Serif",
69
+ "Monospace Serif": "Monospace Serif",
70
+ "Casual": "Zwanglos",
71
+ "Script": "Schreibeschrift",
72
+ "Small Caps": "Small-Caps",
73
+ "Reset": "Zurücksetzen",
74
+ "restore all settings to the default values": "Alle Einstellungen auf die Standardwerte zurücksetzen",
75
+ "Done": "Fertig",
76
+ "Caption Settings Dialog": "Einstellungsdialog für Untertitel",
77
+ "Beginning of dialog window. Escape will cancel and close the window.": "Anfang des Dialogfensters. Esc bricht ab und schließt das Fenster.",
78
+ "End of dialog window.": "Ende des Dialogfensters.",
79
+ "Audio Player": "Audio-Player",
80
+ "Video Player": "Video-Player",
81
+ "Progress Bar": "Forschrittsbalken",
82
+ "progress bar timing: currentTime={1} duration={2}": "{1} von {2}",
83
+ "Volume Level": "Lautstärkestufe",
84
+ "{1} is loading.": "{1} wird geladen.",
85
+ "Seek to live, currently behind live": "Zur Live-Übertragung wechseln. Aktuell wird es nicht live abgespielt.",
86
+ "Seek to live, currently playing live": "Zur Live-Übertragung wechseln. Es wird aktuell live abgespielt."
87
+ });
public/assets/player/videojs/lang/de.json ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Wiedergabe",
3
+ "Pause": "Pause",
4
+ "Replay": "Erneut abspielen",
5
+ "Current Time": "Aktueller Zeitpunkt",
6
+ "Duration": "Dauer",
7
+ "Remaining Time": "Verbleibende Zeit",
8
+ "Stream Type": "Streamtyp",
9
+ "LIVE": "LIVE",
10
+ "Loaded": "Geladen",
11
+ "Progress": "Status",
12
+ "Fullscreen": "Vollbild",
13
+ "Non-Fullscreen": "Kein Vollbild",
14
+ "Mute": "Ton aus",
15
+ "Unmute": "Ton ein",
16
+ "Playback Rate": "Wiedergabegeschwindigkeit",
17
+ "Subtitles": "Untertitel",
18
+ "subtitles off": "Untertitel aus",
19
+ "Captions": "Untertitel",
20
+ "captions off": "Untertitel aus",
21
+ "Chapters": "Kapitel",
22
+ "You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
23
+ "A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
24
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
25
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
26
+ "No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden.",
27
+ "Play Video": "Video abspielen",
28
+ "Close": "Schließen",
29
+ "Modal Window": "Modales Fenster",
30
+ "This is a modal window": "Dies ist ein modales Fenster",
31
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Durch Drücken der Esc-Taste bzw. Betätigung der Schaltfläche \"Schließen\" wird dieses modale Fenster geschlossen.",
32
+ ", opens captions settings dialog": ", öffnet Einstellungen für Untertitel",
33
+ ", opens subtitles settings dialog": ", öffnet Einstellungen für Untertitel",
34
+ ", selected": ", ausgewählt",
35
+ "captions settings": "Untertiteleinstellungen",
36
+ "subtitles settings": "Untertiteleinstellungen",
37
+ "descriptions settings": "Einstellungen für Beschreibungen",
38
+ "Close Modal Dialog": "Modales Fenster schließen",
39
+ "Descriptions": "Beschreibungen",
40
+ "descriptions off": "Beschreibungen aus",
41
+ "The media is encrypted and we do not have the keys to decrypt it.": "Die Entschlüsselungsschlüssel für den verschlüsselten Medieninhalt sind nicht verfügbar.",
42
+ ", opens descriptions settings dialog": ", öffnet Einstellungen für Beschreibungen",
43
+ "Audio Track": "Tonspur",
44
+ "Text": "Schrift",
45
+ "White": "Weiß",
46
+ "Black": "Schwarz",
47
+ "Red": "Rot",
48
+ "Green": "Grün",
49
+ "Blue": "Blau",
50
+ "Yellow": "Gelb",
51
+ "Magenta": "Magenta",
52
+ "Cyan": "Türkis",
53
+ "Background": "Hintergrund",
54
+ "Window": "Fenster",
55
+ "Transparent": "Durchsichtig",
56
+ "Semi-Transparent": "Halbdurchsichtig",
57
+ "Opaque": "Undurchsichtig",
58
+ "Font Size": "Schriftgröße",
59
+ "Text Edge Style": "Textkantenstil",
60
+ "None": "Kein",
61
+ "Raised": "Erhoben",
62
+ "Depressed": "Gedrückt",
63
+ "Uniform": "Uniform",
64
+ "Dropshadow": "Schlagschatten",
65
+ "Font Family": "Schristfamilie",
66
+ "Proportional Sans-Serif": "Proportionale Sans-Serif",
67
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
68
+ "Proportional Serif": "Proportionale Serif",
69
+ "Monospace Serif": "Monospace Serif",
70
+ "Casual": "Zwanglos",
71
+ "Script": "Schreibeschrift",
72
+ "Small Caps": "Small-Caps",
73
+ "Reset": "Zurücksetzen",
74
+ "restore all settings to the default values": "Alle Einstellungen auf die Standardwerte zurücksetzen",
75
+ "Done": "Fertig",
76
+ "Caption Settings Dialog": "Einstellungsdialog für Untertitel",
77
+ "Beginning of dialog window. Escape will cancel and close the window.": "Anfang des Dialogfensters. Esc bricht ab und schließt das Fenster.",
78
+ "End of dialog window.": "Ende des Dialogfensters.",
79
+ "Audio Player": "Audio-Player",
80
+ "Video Player": "Video-Player",
81
+ "Progress Bar": "Forschrittsbalken",
82
+ "progress bar timing: currentTime={1} duration={2}": "{1} von {2}",
83
+ "Volume Level": "Lautstärkestufe",
84
+ "{1} is loading.": "{1} wird geladen.",
85
+ "Seek to live, currently behind live": "Zur Live-Übertragung wechseln. Aktuell wird es nicht live abgespielt.",
86
+ "Seek to live, currently playing live": "Zur Live-Übertragung wechseln. Es wird aktuell live abgespielt."
87
+
88
+ }
public/assets/player/videojs/lang/el.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('el', {
2
+ "Play": "Aναπαραγωγή",
3
+ "Pause": "Παύση",
4
+ "Current Time": "Τρέχων χρόνος",
5
+ "Duration": "Συνολικός χρόνος",
6
+ "Remaining Time": "Υπολοιπόμενος χρόνος",
7
+ "Stream Type": "Τύπος ροής",
8
+ "LIVE": "ΖΩΝΤΑΝΑ",
9
+ "Loaded": "Φόρτωση επιτυχής",
10
+ "Progress": "Πρόοδος",
11
+ "Fullscreen": "Πλήρης οθόνη",
12
+ "Non-Fullscreen": "Έξοδος από πλήρη οθόνη",
13
+ "Mute": "Σίγαση",
14
+ "Unmute": "Kατάργηση σίγασης",
15
+ "Playback Rate": "Ρυθμός αναπαραγωγής",
16
+ "Subtitles": "Υπότιτλοι",
17
+ "subtitles off": "απόκρυψη υπότιτλων",
18
+ "Captions": "Λεζάντες",
19
+ "captions off": "απόκρυψη λεζάντων",
20
+ "Chapters": "Κεφάλαια",
21
+ "Close Modal Dialog": "Κλείσιμο παραθύρου",
22
+ "Descriptions": "Περιγραφές",
23
+ "descriptions off": "απόκρυψη περιγραφών",
24
+ "Audio Track": "Ροή ήχου",
25
+ "You aborted the media playback": "Ακυρώσατε την αναπαραγωγή",
26
+ "A network error caused the media download to fail part-way.": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία μεταφόρτωσης του αρχείου προς αναπαραγωγή.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Το αρχείο προς αναπαραγωγή δεν ήταν δυνατό να φορτωθεί είτε γιατί υπήρξε σφάλμα στον διακομιστή ή το δίκτυο, είτε γιατί ο τύπος του αρχείου δεν υποστηρίζεται.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Η αναπαραγωγή ακυρώθηκε είτε λόγω κατεστραμμένου αρχείου, είτε γιατί το αρχείο απαιτεί λειτουργίες που δεν υποστηρίζονται από το πρόγραμμα περιήγησης που χρησιμοποιείτε.",
29
+ "No compatible source was found for this media.": "Δεν βρέθηκε συμβατή πηγή αναπαραγωγής για το συγκεκριμένο αρχείο.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "Το αρχείο προς αναπαραγωγή είναι κρυπτογραφημένo και δεν υπάρχουν τα απαραίτητα κλειδιά αποκρυπτογράφησης.",
31
+ "Play Video": "Αναπαραγωγή βίντεο",
32
+ "Close": "Κλείσιμο",
33
+ "Modal Window": "Aναδυόμενο παράθυρο",
34
+ "This is a modal window": "Το παρών είναι ένα αναδυόμενο παράθυρο",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Αυτό το παράθυρο μπορεί να εξαφανιστεί πατώντας το πλήκτρο Escape ή πατώντας το κουμπί κλεισίματος.",
36
+ ", opens captions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις λεζάντες",
37
+ ", opens subtitles settings dialog": ", εμφανίζει τις ρυθμίσεις για τους υπότιτλους",
38
+ ", opens descriptions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις περιγραφές",
39
+ ", selected": ", επιλεγμένο"
40
+ });
public/assets/player/videojs/lang/el.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Aναπαραγωγή",
3
+ "Pause": "Παύση",
4
+ "Current Time": "Τρέχων χρόνος",
5
+ "Duration": "Συνολικός χρόνος",
6
+ "Remaining Time": "Υπολοιπόμενος χρόνος",
7
+ "Stream Type": "Τύπος ροής",
8
+ "LIVE": "ΖΩΝΤΑΝΑ",
9
+ "Loaded": "Φόρτωση επιτυχής",
10
+ "Progress": "Πρόοδος",
11
+ "Fullscreen": "Πλήρης οθόνη",
12
+ "Non-Fullscreen": "Έξοδος από πλήρη οθόνη",
13
+ "Mute": "Σίγαση",
14
+ "Unmute": "Kατάργηση σίγασης",
15
+ "Playback Rate": "Ρυθμός αναπαραγωγής",
16
+ "Subtitles": "Υπότιτλοι",
17
+ "subtitles off": "απόκρυψη υπότιτλων",
18
+ "Captions": "Λεζάντες",
19
+ "captions off": "απόκρυψη λεζάντων",
20
+ "Chapters": "Κεφάλαια",
21
+ "Close Modal Dialog": "Κλείσιμο παραθύρου",
22
+ "Descriptions": "Περιγραφές",
23
+ "descriptions off": "απόκρυψη περιγραφών",
24
+ "Audio Track": "Ροή ήχου",
25
+ "You aborted the media playback": "Ακυρώσατε την αναπαραγωγή",
26
+ "A network error caused the media download to fail part-way.": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία μεταφόρτωσης του αρχείου προς αναπαραγωγή.",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Το αρχείο προς αναπαραγωγή δεν ήταν δυνατό να φορτωθεί είτε γιατί υπήρξε σφάλμα στον διακομιστή ή το δίκτυο, είτε γιατί ο τύπος του αρχείου δεν υποστηρίζεται.",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Η αναπαραγωγή ακυρώθηκε είτε λόγω κατεστραμμένου αρχείου, είτε γιατί το αρχείο απαιτεί λειτουργίες που δεν υποστηρίζονται από το πρόγραμμα περιήγησης που χρησιμοποιείτε.",
29
+ "No compatible source was found for this media.": "Δεν βρέθηκε συμβατή πηγή αναπαραγωγής για το συγκεκριμένο αρχείο.",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "Το αρχείο προς αναπαραγωγή είναι κρυπτογραφημένo και δεν υπάρχουν τα απαραίτητα κλειδιά αποκρυπτογράφησης.",
31
+ "Play Video": "Αναπαραγωγή βίντεο",
32
+ "Close": "Κλείσιμο",
33
+ "Modal Window": "Aναδυόμενο παράθυρο",
34
+ "This is a modal window": "Το παρών είναι ένα αναδυόμενο παράθυρο",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Αυτό το παράθυρο μπορεί να εξαφανιστεί πατώντας το πλήκτρο Escape ή πατώντας το κουμπί κλεισίματος.",
36
+ ", opens captions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις λεζάντες",
37
+ ", opens subtitles settings dialog": ", εμφανίζει τις ρυθμίσεις για τους υπότιτλους",
38
+ ", opens descriptions settings dialog": ", εμφανίζει τις ρυθμίσεις για τις περιγραφές",
39
+ ", selected": ", επιλεγμένο"
40
+ }
public/assets/player/videojs/lang/en.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('en', {
2
+ "Audio Player": "Audio Player",
3
+ "Video Player": "Video Player",
4
+ "Play": "Play",
5
+ "Pause": "Pause",
6
+ "Replay": "Replay",
7
+ "Current Time": "Current Time",
8
+ "Duration": "Duration",
9
+ "Remaining Time": "Remaining Time",
10
+ "Stream Type": "Stream Type",
11
+ "LIVE": "LIVE",
12
+ "Seek to live, currently behind live": "Seek to live, currently behind live",
13
+ "Seek to live, currently playing live": "Seek to live, currently playing live",
14
+ "Loaded": "Loaded",
15
+ "Progress": "Progress",
16
+ "Progress Bar": "Progress Bar",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} of {2}",
18
+ "Fullscreen": "Fullscreen",
19
+ "Non-Fullscreen": "Non-Fullscreen",
20
+ "Mute": "Mute",
21
+ "Unmute": "Unmute",
22
+ "Playback Rate": "Playback Rate",
23
+ "Subtitles": "Subtitles",
24
+ "subtitles off": "subtitles off",
25
+ "Captions": "Captions",
26
+ "captions off": "captions off",
27
+ "Chapters": "Chapters",
28
+ "Descriptions": "Descriptions",
29
+ "descriptions off": "descriptions off",
30
+ "Audio Track": "Audio Track",
31
+ "Volume Level": "Volume Level",
32
+ "You aborted the media playback": "You aborted the media playback",
33
+ "A network error caused the media download to fail part-way.": "A network error caused the media download to fail part-way.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "The media could not be loaded, either because the server or network failed or because the format is not supported.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
36
+ "No compatible source was found for this media.": "No compatible source was found for this media.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "The media is encrypted and we do not have the keys to decrypt it.",
38
+ "Play Video": "Play Video",
39
+ "Close": "Close",
40
+ "Close Modal Dialog": "Close Modal Dialog",
41
+ "Modal Window": "Modal Window",
42
+ "This is a modal window": "This is a modal window",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "This modal can be closed by pressing the Escape key or activating the close button.",
44
+ ", opens captions settings dialog": ", opens captions settings dialog",
45
+ ", opens subtitles settings dialog": ", opens subtitles settings dialog",
46
+ ", opens descriptions settings dialog": ", opens descriptions settings dialog",
47
+ ", selected": ", selected",
48
+ "captions settings": "captions settings",
49
+ "subtitles settings": "subititles settings",
50
+ "descriptions settings": "descriptions settings",
51
+ "Text": "Text",
52
+ "White": "White",
53
+ "Black": "Black",
54
+ "Red": "Red",
55
+ "Green": "Green",
56
+ "Blue": "Blue",
57
+ "Yellow": "Yellow",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Cyan",
60
+ "Background": "Background",
61
+ "Window": "Window",
62
+ "Transparent": "Transparent",
63
+ "Semi-Transparent": "Semi-Transparent",
64
+ "Opaque": "Opaque",
65
+ "Font Size": "Font Size",
66
+ "Text Edge Style": "Text Edge Style",
67
+ "None": "None",
68
+ "Raised": "Raised",
69
+ "Depressed": "Depressed",
70
+ "Uniform": "Uniform",
71
+ "Dropshadow": "Dropshadow",
72
+ "Font Family": "Font Family",
73
+ "Proportional Sans-Serif": "Proportional Sans-Serif",
74
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
75
+ "Proportional Serif": "Proportional Serif",
76
+ "Monospace Serif": "Monospace Serif",
77
+ "Casual": "Casual",
78
+ "Script": "Script",
79
+ "Small Caps": "Small Caps",
80
+ "Reset": "Reset",
81
+ "restore all settings to the default values": "restore all settings to the default values",
82
+ "Done": "Done",
83
+ "Caption Settings Dialog": "Caption Settings Dialog",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Beginning of dialog window. Escape will cancel and close the window.",
85
+ "End of dialog window.": "End of dialog window.",
86
+ "{1} is loading.": "{1} is loading."
87
+ });
public/assets/player/videojs/lang/en.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Audio Player",
3
+ "Video Player": "Video Player",
4
+ "Play": "Play",
5
+ "Pause": "Pause",
6
+ "Replay": "Replay",
7
+ "Current Time": "Current Time",
8
+ "Duration": "Duration",
9
+ "Remaining Time": "Remaining Time",
10
+ "Stream Type": "Stream Type",
11
+ "LIVE": "LIVE",
12
+ "Seek to live, currently behind live": "Seek to live, currently behind live",
13
+ "Seek to live, currently playing live": "Seek to live, currently playing live",
14
+ "Loaded": "Loaded",
15
+ "Progress": "Progress",
16
+ "Progress Bar": "Progress Bar",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} of {2}",
18
+ "Fullscreen": "Fullscreen",
19
+ "Non-Fullscreen": "Non-Fullscreen",
20
+ "Mute": "Mute",
21
+ "Unmute": "Unmute",
22
+ "Playback Rate": "Playback Rate",
23
+ "Subtitles": "Subtitles",
24
+ "subtitles off": "subtitles off",
25
+ "Captions": "Captions",
26
+ "captions off": "captions off",
27
+ "Chapters": "Chapters",
28
+ "Descriptions": "Descriptions",
29
+ "descriptions off": "descriptions off",
30
+ "Audio Track": "Audio Track",
31
+ "Volume Level": "Volume Level",
32
+ "You aborted the media playback": "You aborted the media playback",
33
+ "A network error caused the media download to fail part-way.": "A network error caused the media download to fail part-way.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "The media could not be loaded, either because the server or network failed or because the format is not supported.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
36
+ "No compatible source was found for this media.": "No compatible source was found for this media.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "The media is encrypted and we do not have the keys to decrypt it.",
38
+ "Play Video": "Play Video",
39
+ "Close": "Close",
40
+ "Close Modal Dialog": "Close Modal Dialog",
41
+ "Modal Window": "Modal Window",
42
+ "This is a modal window": "This is a modal window",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "This modal can be closed by pressing the Escape key or activating the close button.",
44
+ ", opens captions settings dialog": ", opens captions settings dialog",
45
+ ", opens subtitles settings dialog": ", opens subtitles settings dialog",
46
+ ", opens descriptions settings dialog": ", opens descriptions settings dialog",
47
+ ", selected": ", selected",
48
+ "captions settings": "captions settings",
49
+ "subtitles settings": "subititles settings",
50
+ "descriptions settings": "descriptions settings",
51
+ "Text": "Text",
52
+ "White": "White",
53
+ "Black": "Black",
54
+ "Red": "Red",
55
+ "Green": "Green",
56
+ "Blue": "Blue",
57
+ "Yellow": "Yellow",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Cyan",
60
+ "Background": "Background",
61
+ "Window": "Window",
62
+ "Transparent": "Transparent",
63
+ "Semi-Transparent": "Semi-Transparent",
64
+ "Opaque": "Opaque",
65
+ "Font Size": "Font Size",
66
+ "Text Edge Style": "Text Edge Style",
67
+ "None": "None",
68
+ "Raised": "Raised",
69
+ "Depressed": "Depressed",
70
+ "Uniform": "Uniform",
71
+ "Dropshadow": "Dropshadow",
72
+ "Font Family": "Font Family",
73
+ "Proportional Sans-Serif": "Proportional Sans-Serif",
74
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
75
+ "Proportional Serif": "Proportional Serif",
76
+ "Monospace Serif": "Monospace Serif",
77
+ "Casual": "Casual",
78
+ "Script": "Script",
79
+ "Small Caps": "Small Caps",
80
+ "Reset": "Reset",
81
+ "restore all settings to the default values": "restore all settings to the default values",
82
+ "Done": "Done",
83
+ "Caption Settings Dialog": "Caption Settings Dialog",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Beginning of dialog window. Escape will cancel and close the window.",
85
+ "End of dialog window.": "End of dialog window.",
86
+ "{1} is loading.": "{1} is loading."
87
+ }
public/assets/player/videojs/lang/es.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('es', {
2
+ "Play": "Reproducir",
3
+ "Play Video": "Reproducir Vídeo",
4
+ "Pause": "Pausa",
5
+ "Current Time": "Tiempo reproducido",
6
+ "Duration": "Duración total",
7
+ "Remaining Time": "Tiempo restante",
8
+ "Stream Type": "Tipo de secuencia",
9
+ "LIVE": "DIRECTO",
10
+ "Loaded": "Cargado",
11
+ "Progress": "Progreso",
12
+ "Fullscreen": "Pantalla completa",
13
+ "Non-Fullscreen": "Pantalla no completa",
14
+ "Mute": "Silenciar",
15
+ "Unmute": "No silenciado",
16
+ "Playback Rate": "Velocidad de reproducción",
17
+ "Subtitles": "Subtítulos",
18
+ "subtitles off": "Subtítulos desactivados",
19
+ "Captions": "Subtítulos especiales",
20
+ "captions off": "Subtítulos especiales desactivados",
21
+ "Chapters": "Capítulos",
22
+ "You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
23
+ "A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
24
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
25
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
26
+ "No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo.",
27
+ "Audio Player": "Reproductor de audio",
28
+ "Video Player": "Reproductor de video",
29
+ "Replay": "Volver a reproducir",
30
+ "Seek to live, currently behind live": "Buscar en vivo, actualmente demorado con respecto a la transmisión en vivo",
31
+ "Seek to live, currently playing live": "Buscar en vivo, actualmente reproduciendo en vivo",
32
+ "Progress Bar": "Barra de progreso",
33
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
34
+ "Descriptions": "Descripciones",
35
+ "descriptions off": "descripciones desactivadas",
36
+ "Audio Track": "Pista de audio",
37
+ "Volume Level": "Nivel de volumen",
38
+ "The media is encrypted and we do not have the keys to decrypt it.": "El material audiovisual está cifrado y no tenemos las claves para descifrarlo.",
39
+ "Close": "Cerrar",
40
+ "Modal Window": "Ventana modal",
41
+ "This is a modal window": "Esta es una ventana modal",
42
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Esta ventana modal puede cerrarse presionando la tecla Escape o activando el botón de cierre.",
43
+ ", opens captions settings dialog": ", abre el diálogo de configuración de leyendas",
44
+ ", opens subtitles settings dialog": ", abre el diálogo de configuración de subtítulos",
45
+ ", selected": ", seleccionado",
46
+ "Close Modal Dialog": "Cierra cuadro de diálogo modal",
47
+ ", opens descriptions settings dialog": ", abre el diálogo de configuración de las descripciones",
48
+ "captions settings": "configuración de leyendas",
49
+ "subtitles settings": "configuración de subtítulos",
50
+ "descriptions settings": "configuración de descripciones",
51
+ "Text": "Texto",
52
+ "White": "Blanco",
53
+ "Black": "Negro",
54
+ "Red": "Rojo",
55
+ "Green": "Verde",
56
+ "Blue": "Azul",
57
+ "Yellow": "Amarillo",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Cian",
60
+ "Background": "Fondo",
61
+ "Window": "Ventana",
62
+ "Transparent": "Transparente",
63
+ "Semi-Transparent": "Semitransparente",
64
+ "Opaque": "Opaca",
65
+ "Font Size": "Tamaño de fuente",
66
+ "Text Edge Style": "Estilo de borde del texto",
67
+ "None": "Ninguno",
68
+ "Raised": "En relieve",
69
+ "Depressed": "Hundido",
70
+ "Uniform": "Uniforme",
71
+ "Dropshadow": "Sombra paralela",
72
+ "Font Family": "Familia de fuente",
73
+ "Proportional Sans-Serif": "Sans-Serif proporcional",
74
+ "Monospace Sans-Serif": "Sans-Serif monoespacio",
75
+ "Proportional Serif": "Serif proporcional",
76
+ "Monospace Serif": "Serif monoespacio",
77
+ "Casual": "Informal",
78
+ "Script": "Cursiva",
79
+ "Small Caps": "Minúsculas",
80
+ "Reset": "Restablecer",
81
+ "restore all settings to the default values": "restablece todas las configuraciones a los valores predeterminados",
82
+ "Done": "Listo",
83
+ "Caption Settings Dialog": "Diálogo de configuración de leyendas",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Comienzo de la ventana de diálogo. La tecla Escape cancelará la operación y cerrará la ventana.",
85
+ "End of dialog window.": "Final de la ventana de diálogo.",
86
+ "{1} is loading.": "{1} se está cargando."
87
+ });
public/assets/player/videojs/lang/es.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Reproducir",
3
+ "Play Video": "Reproducir Vídeo",
4
+ "Pause": "Pausa",
5
+ "Current Time": "Tiempo reproducido",
6
+ "Duration": "Duración total",
7
+ "Remaining Time": "Tiempo restante",
8
+ "Stream Type": "Tipo de secuencia",
9
+ "LIVE": "DIRECTO",
10
+ "Loaded": "Cargado",
11
+ "Progress": "Progreso",
12
+ "Fullscreen": "Pantalla completa",
13
+ "Non-Fullscreen": "Pantalla no completa",
14
+ "Mute": "Silenciar",
15
+ "Unmute": "No silenciado",
16
+ "Playback Rate": "Velocidad de reproducción",
17
+ "Subtitles": "Subtítulos",
18
+ "subtitles off": "Subtítulos desactivados",
19
+ "Captions": "Subtítulos especiales",
20
+ "captions off": "Subtítulos especiales desactivados",
21
+ "Chapters": "Capítulos",
22
+ "You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
23
+ "A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
24
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
25
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
26
+ "No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo.",
27
+ "Audio Player": "Reproductor de audio",
28
+ "Video Player": "Reproductor de video",
29
+ "Replay": "Volver a reproducir",
30
+ "Seek to live, currently behind live": "Buscar en vivo, actualmente demorado con respecto a la transmisión en vivo",
31
+ "Seek to live, currently playing live": "Buscar en vivo, actualmente reproduciendo en vivo",
32
+ "Progress Bar": "Barra de progreso",
33
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
34
+ "Descriptions": "Descripciones",
35
+ "descriptions off": "descripciones desactivadas",
36
+ "Audio Track": "Pista de audio",
37
+ "Volume Level": "Nivel de volumen",
38
+ "The media is encrypted and we do not have the keys to decrypt it.": "El material audiovisual está cifrado y no tenemos las claves para descifrarlo.",
39
+ "Close": "Cerrar",
40
+ "Modal Window": "Ventana modal",
41
+ "This is a modal window": "Esta es una ventana modal",
42
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Esta ventana modal puede cerrarse presionando la tecla Escape o activando el botón de cierre.",
43
+ ", opens captions settings dialog": ", abre el diálogo de configuración de leyendas",
44
+ ", opens subtitles settings dialog": ", abre el diálogo de configuración de subtítulos",
45
+ ", selected": ", seleccionado",
46
+ "Close Modal Dialog": "Cierra cuadro de diálogo modal",
47
+ ", opens descriptions settings dialog": ", abre el diálogo de configuración de las descripciones",
48
+ "captions settings": "configuración de leyendas",
49
+ "subtitles settings": "configuración de subtítulos",
50
+ "descriptions settings": "configuración de descripciones",
51
+ "Text": "Texto",
52
+ "White": "Blanco",
53
+ "Black": "Negro",
54
+ "Red": "Rojo",
55
+ "Green": "Verde",
56
+ "Blue": "Azul",
57
+ "Yellow": "Amarillo",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Cian",
60
+ "Background": "Fondo",
61
+ "Window": "Ventana",
62
+ "Transparent": "Transparente",
63
+ "Semi-Transparent": "Semitransparente",
64
+ "Opaque": "Opaca",
65
+ "Font Size": "Tamaño de fuente",
66
+ "Text Edge Style": "Estilo de borde del texto",
67
+ "None": "Ninguno",
68
+ "Raised": "En relieve",
69
+ "Depressed": "Hundido",
70
+ "Uniform": "Uniforme",
71
+ "Dropshadow": "Sombra paralela",
72
+ "Font Family": "Familia de fuente",
73
+ "Proportional Sans-Serif": "Sans-Serif proporcional",
74
+ "Monospace Sans-Serif": "Sans-Serif monoespacio",
75
+ "Proportional Serif": "Serif proporcional",
76
+ "Monospace Serif": "Serif monoespacio",
77
+ "Casual": "Informal",
78
+ "Script": "Cursiva",
79
+ "Small Caps": "Minúsculas",
80
+ "Reset": "Restablecer",
81
+ "restore all settings to the default values": "restablece todas las configuraciones a los valores predeterminados",
82
+ "Done": "Listo",
83
+ "Caption Settings Dialog": "Diálogo de configuración de leyendas",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Comienzo de la ventana de diálogo. La tecla Escape cancelará la operación y cerrará la ventana.",
85
+ "End of dialog window.": "Final de la ventana de diálogo.",
86
+ "{1} is loading.": "{1} se está cargando."
87
+ }
public/assets/player/videojs/lang/fa.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('fa', {
2
+ "Audio Player": "پخش کننده صوتی",
3
+ "Video Player": "پخش کننده ویدیو",
4
+ "Play": "پخش",
5
+ "Pause": "مکث",
6
+ "Replay": "بازپخش",
7
+ "Current Time": "زمان کنونی",
8
+ "Duration": "مدت زمان",
9
+ "Remaining Time": "زمان باقیمانده",
10
+ "Stream Type": "نوع استریم",
11
+ "LIVE": "زنده",
12
+ "Loaded": "بارگیری شده",
13
+ "Progress": "پیشرفت",
14
+ "Progress Bar": "نوار پیشرفت",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} از {2}",
16
+ "Fullscreen": "تمام‌صفحه",
17
+ "Non-Fullscreen": "غیر تمام‌صفحه",
18
+ "Mute": "بی صدا",
19
+ "Unmute": "صدا دار",
20
+ "Playback Rate": "سرعت پخش",
21
+ "Subtitles": "زیرنویس",
22
+ "subtitles off": "بدون زیرنویس",
23
+ "Captions": "زیرتوضیح",
24
+ "captions off": "بدون زیرتوضیح",
25
+ "Chapters": "قسمت‌ها",
26
+ "Descriptions": "توصیف",
27
+ "descriptions off": "بدون توصیف",
28
+ "Audio Track": "صوت",
29
+ "Volume Level": "میزان صدا",
30
+ "You aborted the media playback": "شما پخش را قطع کردید.",
31
+ "A network error caused the media download to fail part-way.": "خطای شبکه باعث عدم بارگیری بخشی از رسانه شد.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": ".رسانه قابل بارگیری نیست. علت آن ممکن است خطا در اتصال یا عدم پشتیبانی از فرمت باشد",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "پخش رسانه به علت اشکال در آن یا عدم پشتیبانی مرورگر شما قطع شد.",
34
+ "No compatible source was found for this media.": "هیچ منبع سازگاری، برای این رسانه پیدا نشد.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "این رسانه رمزنگاری شده است و ما کلید رمزگشایی آن را نداریم.",
36
+ "Play Video": "پخش ویدیو",
37
+ "Close": "بستن",
38
+ "Close Modal Dialog": "بستن پنجره مودال",
39
+ "Modal Window": "پنجره مودال",
40
+ "This is a modal window": "این پنجره مودال",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "این پنجره با دکمه اسکیپ با دکمه بستن قابل بسته شدن میباشد.",
42
+ ", opens captions settings dialog": ", تنظیمات زیرتوضیح را باز میکند",
43
+ ", opens subtitles settings dialog": ", تنظیمات زیرنویس را باز میکند",
44
+ ", opens descriptions settings dialog": ", تنظیمات توصیفات را باز میکند",
45
+ ", selected": ", انتخاب شده",
46
+ "captions settings": "تنظیمات زیرتوضیح",
47
+ "subtitles settings": "تنظیمات زیرنویس",
48
+ "descriptions settings": "تنظیمات توصیفات",
49
+ "Text": "متن",
50
+ "White": "سفید",
51
+ "Black": "سیاه",
52
+ "Red": "قرمز",
53
+ "Green": "سبز",
54
+ "Blue": "آبی",
55
+ "Yellow": "زرد",
56
+ "Magenta": "ارغوانی",
57
+ "Cyan": "سبزآبی",
58
+ "Background": "زمینه",
59
+ "Window": "پنجره",
60
+ "Transparent": "شفاف",
61
+ "Semi-Transparent": "نیمه شفاف",
62
+ "Opaque": "مات",
63
+ "Font Size": "اندازه فونت",
64
+ "Text Edge Style": "سبک لبه متن",
65
+ "None": "هیچ",
66
+ "Raised": "برآمده",
67
+ "Depressed": "فرورفته",
68
+ "Uniform": "یکنواخت",
69
+ "Dropshadow": "سایه دار",
70
+ "Font Family": "نوع فونت",
71
+ "Proportional Sans-Serif": "سنس-سریف متناسب",
72
+ "Monospace Sans-Serif": "سنس-سریف هم اندازه",
73
+ "Proportional Serif": "سریف متناسب",
74
+ "Monospace Serif": "سریف هم اندازه",
75
+ "Casual": "فانتزی",
76
+ "Script": "دست خط",
77
+ "Small Caps": "حروف کوچک به بزرگ",
78
+ "Reset": "باز نشاندن",
79
+ "restore all settings to the default values": "بازیابی همه تنظیمات به حالت اولیه",
80
+ "Done": "تکمیل",
81
+ "Caption Settings Dialog": "پنجره تنظیمات عناوین",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "ابتدای پنجره محاوره‌ای. دکمه اسکیپ پنجره را لغو میکند و میبندد.",
83
+ "End of dialog window.": "انتهای پنجره محاوره‌ای."
84
+ });
public/assets/player/videojs/lang/fa.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "پخش کننده صوتی",
3
+ "Video Player": "پخش کننده ویدیو",
4
+ "Play": "پخش",
5
+ "Pause": "مکث",
6
+ "Replay": "بازپخش",
7
+ "Current Time": "زمان کنونی",
8
+ "Duration": "مدت زمان",
9
+ "Remaining Time": "زمان باقیمانده",
10
+ "Stream Type": "نوع استریم",
11
+ "LIVE": "زنده",
12
+ "Loaded": "بارگیری شده",
13
+ "Progress": "پیشرفت",
14
+ "Progress Bar": "نوار پیشرفت",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} از {2}",
16
+ "Fullscreen": "تمام‌صفحه",
17
+ "Non-Fullscreen": "غیر تمام‌صفحه",
18
+ "Mute": "بی صدا",
19
+ "Unmute": "صدا دار",
20
+ "Playback Rate": "سرعت پخش",
21
+ "Subtitles": "زیرنویس",
22
+ "subtitles off": "بدون زیرنویس",
23
+ "Captions": "زیرتوضیح",
24
+ "captions off": "بدون زیرتوضیح",
25
+ "Chapters": "قسمت‌ها",
26
+ "Descriptions": "توصیف",
27
+ "descriptions off": "بدون توصیف",
28
+ "Audio Track": "صوت",
29
+ "Volume Level": "میزان صدا",
30
+ "You aborted the media playback": "شما پخش را قطع کردید.",
31
+ "A network error caused the media download to fail part-way.": "خطای شبکه باعث عدم بارگیری بخشی از رسانه شد.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": ".رسانه قابل بارگیری نیست. علت آن ممکن است خطا در اتصال یا عدم پشتیبانی از فرمت باشد",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "پخش رسانه به علت اشکال در آن یا عدم پشتیبانی مرورگر شما قطع شد.",
34
+ "No compatible source was found for this media.": "هیچ منبع سازگاری، برای این رسانه پیدا نشد.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "این رسانه رمزنگاری شده است و ما کلید رمزگشایی آن را نداریم.",
36
+ "Play Video": "پخش ویدیو",
37
+ "Close": "بستن",
38
+ "Close Modal Dialog": "بستن پنجره مودال",
39
+ "Modal Window": "پنجره مودال",
40
+ "This is a modal window": "این پنجره مودال",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "این پنجره با دکمه اسکیپ با دکمه بستن قابل بسته شدن میباشد.",
42
+ ", opens captions settings dialog": ", تنظیمات زیرتوضیح را باز میکند",
43
+ ", opens subtitles settings dialog": ", تنظیمات زیرنویس را باز میکند",
44
+ ", opens descriptions settings dialog": ", تنظیمات توصیفات را باز میکند",
45
+ ", selected": ", انتخاب شده",
46
+ "captions settings": "تنظیمات زیرتوضیح",
47
+ "subtitles settings": "تنظیمات زیرنویس",
48
+ "descriptions settings": "تنظیمات توصیفات",
49
+ "Text": "متن",
50
+ "White": "سفید",
51
+ "Black": "سیاه",
52
+ "Red": "قرمز",
53
+ "Green": "سبز",
54
+ "Blue": "آبی",
55
+ "Yellow": "زرد",
56
+ "Magenta": "ارغوانی",
57
+ "Cyan": "سبزآبی",
58
+ "Background": "زمینه",
59
+ "Window": "پنجره",
60
+ "Transparent": "شفاف",
61
+ "Semi-Transparent": "نیمه شفاف",
62
+ "Opaque": "مات",
63
+ "Font Size": "اندازه فونت",
64
+ "Text Edge Style": "سبک لبه متن",
65
+ "None": "هیچ",
66
+ "Raised": "برآمده",
67
+ "Depressed": "فرورفته",
68
+ "Uniform": "یکنواخت",
69
+ "Dropshadow": "سایه دار",
70
+ "Font Family": "نوع فونت",
71
+ "Proportional Sans-Serif": "سنس-سریف متناسب",
72
+ "Monospace Sans-Serif": "سنس-سریف هم اندازه",
73
+ "Proportional Serif": "سریف متناسب",
74
+ "Monospace Serif": "سریف هم اندازه",
75
+ "Casual": "فانتزی",
76
+ "Script": "دست خط",
77
+ "Small Caps": "حروف کوچک به بزرگ",
78
+ "Reset": "باز نشاندن",
79
+ "restore all settings to the default values": "بازیابی همه تنظیمات به حالت اولیه",
80
+ "Done": "تکمیل",
81
+ "Caption Settings Dialog": "پنجره تنظیمات عناوین",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "ابتدای پنجره محاوره‌ای. دکمه اسکیپ پنجره را لغو میکند و میبندد.",
83
+ "End of dialog window.": "انتهای پنجره محاوره‌ای."
84
+ }
public/assets/player/videojs/lang/fi.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('fi', {
2
+ "Play": "Toisto",
3
+ "Pause": "Tauko",
4
+ "Current Time": "Tämänhetkinen aika",
5
+ "Duration": "Kokonaisaika",
6
+ "Remaining Time": "Jäljellä oleva aika",
7
+ "Stream Type": "Lähetystyyppi",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Ladattu",
10
+ "Progress": "Edistyminen",
11
+ "Fullscreen": "Koko näyttö",
12
+ "Non-Fullscreen": "Koko näyttö pois",
13
+ "Mute": "Ääni pois",
14
+ "Unmute": "Ääni päällä",
15
+ "Playback Rate": "Toistonopeus",
16
+ "Subtitles": "Tekstitys",
17
+ "subtitles off": "Tekstitys pois",
18
+ "Captions": "Tekstitys",
19
+ "captions off": "Tekstitys pois",
20
+ "Chapters": "Kappaleet",
21
+ "You aborted the media playback": "Olet keskeyttänyt videotoiston.",
22
+ "A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
25
+ "No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
26
+ });
public/assets/player/videojs/lang/fi.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Toisto",
3
+ "Pause": "Tauko",
4
+ "Current Time": "Tämänhetkinen aika",
5
+ "Duration": "Kokonaisaika",
6
+ "Remaining Time": "Jäljellä oleva aika",
7
+ "Stream Type": "Lähetystyyppi",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Ladattu",
10
+ "Progress": "Edistyminen",
11
+ "Fullscreen": "Koko näyttö",
12
+ "Non-Fullscreen": "Koko näyttö pois",
13
+ "Mute": "Ääni pois",
14
+ "Unmute": "Ääni päällä",
15
+ "Playback Rate": "Toistonopeus",
16
+ "Subtitles": "Tekstitys",
17
+ "subtitles off": "Tekstitys pois",
18
+ "Captions": "Tekstitys",
19
+ "captions off": "Tekstitys pois",
20
+ "Chapters": "Kappaleet",
21
+ "You aborted the media playback": "Olet keskeyttänyt videotoiston.",
22
+ "A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
25
+ "No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
26
+ }
public/assets/player/videojs/lang/fr.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('fr', {
2
+ "Audio Player": "Lecteur audio",
3
+ "Video Player": "Lecteur vidéo",
4
+ "Play": "Lecture",
5
+ "Pause": "Pause",
6
+ "Replay": "Revoir",
7
+ "Current Time": "Temps actuel",
8
+ "Duration": "Durée",
9
+ "Remaining Time": "Temps restant",
10
+ "Stream Type": "Type de flux",
11
+ "LIVE": "EN DIRECT",
12
+ "Loaded": "Chargé",
13
+ "Progress": "Progression",
14
+ "Progress Bar": "Barre de progression",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
16
+ "Fullscreen": "Plein écran",
17
+ "Non-Fullscreen": "Fenêtré",
18
+ "Mute": "Sourdine",
19
+ "Unmute": "Son activé",
20
+ "Playback Rate": "Vitesse de lecture",
21
+ "Subtitles": "Sous-titres",
22
+ "subtitles off": "Sous-titres désactivés",
23
+ "Captions": "Sous-titres transcrits",
24
+ "captions off": "Sous-titres transcrits désactivés",
25
+ "Chapters": "Chapitres",
26
+ "Descriptions": "Descriptions",
27
+ "descriptions off": "descriptions désactivées",
28
+ "Audio Track": "Piste audio",
29
+ "Volume Level": "Niveau de volume",
30
+ "You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
31
+ "A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
34
+ "No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.",
36
+ "Play Video": "Lire la vidéo",
37
+ "Close": "Fermer",
38
+ "Close Modal Dialog": "Fermer la boîte de dialogue modale",
39
+ "Modal Window": "Fenêtre modale",
40
+ "This is a modal window": "Ceci est une fenêtre modale",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Ce modal peut être fermé en appuyant sur la touche Échap ou activer le bouton de fermeture.",
42
+ ", opens captions settings dialog": ", ouvrir les paramètres des sous-titres transcrits",
43
+ ", opens subtitles settings dialog": ", ouvrir les paramètres des sous-titres",
44
+ ", opens descriptions settings dialog": ", ouvrir les paramètres des descriptions",
45
+ ", selected": ", sélectionné",
46
+ "captions settings": "Paramètres des sous-titres transcrits",
47
+ "subtitles settings": "Paramètres des sous-titres",
48
+ "descriptions settings": "Paramètres des descriptions",
49
+ "Text": "Texte",
50
+ "White": "Blanc",
51
+ "Black": "Noir",
52
+ "Red": "Rouge",
53
+ "Green": "Vert",
54
+ "Blue": "Bleu",
55
+ "Yellow": "Jaune",
56
+ "Magenta": "Magenta",
57
+ "Cyan": "Cyan",
58
+ "Background": "Arrière-plan",
59
+ "Window": "Fenêtre",
60
+ "Transparent": "Transparent",
61
+ "Semi-Transparent": "Semi-transparent",
62
+ "Opaque": "Opaque",
63
+ "Font Size": "Taille des caractères",
64
+ "Text Edge Style": "Style des contours du texte",
65
+ "None": "Aucun",
66
+ "Raised": "Élevé",
67
+ "Depressed": "Enfoncé",
68
+ "Uniform": "Uniforme",
69
+ "Dropshadow": "Ombre portée",
70
+ "Font Family": "Famille de polices",
71
+ "Proportional Sans-Serif": "Polices à chasse variable sans empattement (Proportional Sans-Serif)",
72
+ "Monospace Sans-Serif": "Polices à chasse fixe sans empattement (Monospace Sans-Serif)",
73
+ "Proportional Serif": "Polices à chasse variable avec empattement (Proportional Serif)",
74
+ "Monospace Serif": "Polices à chasse fixe avec empattement (Monospace Serif)",
75
+ "Casual": "Manuscrite",
76
+ "Script": "Scripte",
77
+ "Small Caps": "Petites capitales",
78
+ "Reset": "Réinitialiser",
79
+ "restore all settings to the default values": "Restaurer tous les paramètres aux valeurs par défaut",
80
+ "Done": "Terminé",
81
+ "Caption Settings Dialog": "Boîte de dialogue des paramètres des sous-titres transcrits",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Début de la fenêtre de dialogue. La touche d'échappement annulera et fermera la fenêtre.",
83
+ "End of dialog window.": "Fin de la fenêtre de dialogue."
84
+ });
public/assets/player/videojs/lang/fr.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Lecteur audio",
3
+ "Video Player": "Lecteur vidéo",
4
+ "Play": "Lecture",
5
+ "Pause": "Pause",
6
+ "Replay": "Revoir",
7
+ "Current Time": "Temps actuel",
8
+ "Duration": "Durée",
9
+ "Remaining Time": "Temps restant",
10
+ "Stream Type": "Type de flux",
11
+ "LIVE": "EN DIRECT",
12
+ "Loaded": "Chargé",
13
+ "Progress": "Progression",
14
+ "Progress Bar": "Barre de progression",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
16
+ "Fullscreen": "Plein écran",
17
+ "Non-Fullscreen": "Fenêtré",
18
+ "Mute": "Sourdine",
19
+ "Unmute": "Son activé",
20
+ "Playback Rate": "Vitesse de lecture",
21
+ "Subtitles": "Sous-titres",
22
+ "subtitles off": "Sous-titres désactivés",
23
+ "Captions": "Sous-titres transcrits",
24
+ "captions off": "Sous-titres transcrits désactivés",
25
+ "Chapters": "Chapitres",
26
+ "Descriptions": "Descriptions",
27
+ "descriptions off": "descriptions désactivées",
28
+ "Audio Track": "Piste audio",
29
+ "Volume Level": "Niveau de volume",
30
+ "You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
31
+ "A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
34
+ "No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.",
36
+ "Play Video": "Lire la vidéo",
37
+ "Close": "Fermer",
38
+ "Close Modal Dialog": "Fermer la boîte de dialogue modale",
39
+ "Modal Window": "Fenêtre modale",
40
+ "This is a modal window": "Ceci est une fenêtre modale",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Ce modal peut être fermé en appuyant sur la touche Échap ou activer le bouton de fermeture.",
42
+ ", opens captions settings dialog": ", ouvrir les paramètres des sous-titres transcrits",
43
+ ", opens subtitles settings dialog": ", ouvrir les paramètres des sous-titres",
44
+ ", opens descriptions settings dialog": ", ouvrir les paramètres des descriptions",
45
+ ", selected": ", sélectionné",
46
+ "captions settings": "Paramètres des sous-titres transcrits",
47
+ "subtitles settings": "Paramètres des sous-titres",
48
+ "descriptions settings": "Paramètres des descriptions",
49
+ "Text": "Texte",
50
+ "White": "Blanc",
51
+ "Black": "Noir",
52
+ "Red": "Rouge",
53
+ "Green": "Vert",
54
+ "Blue": "Bleu",
55
+ "Yellow": "Jaune",
56
+ "Magenta": "Magenta",
57
+ "Cyan": "Cyan",
58
+ "Background": "Arrière-plan",
59
+ "Window": "Fenêtre",
60
+ "Transparent": "Transparent",
61
+ "Semi-Transparent": "Semi-transparent",
62
+ "Opaque": "Opaque",
63
+ "Font Size": "Taille des caractères",
64
+ "Text Edge Style": "Style des contours du texte",
65
+ "None": "Aucun",
66
+ "Raised": "Élevé",
67
+ "Depressed": "Enfoncé",
68
+ "Uniform": "Uniforme",
69
+ "Dropshadow": "Ombre portée",
70
+ "Font Family": "Famille de polices",
71
+ "Proportional Sans-Serif": "Polices à chasse variable sans empattement (Proportional Sans-Serif)",
72
+ "Monospace Sans-Serif": "Polices à chasse fixe sans empattement (Monospace Sans-Serif)",
73
+ "Proportional Serif": "Polices à chasse variable avec empattement (Proportional Serif)",
74
+ "Monospace Serif": "Polices à chasse fixe avec empattement (Monospace Serif)",
75
+ "Casual": "Manuscrite",
76
+ "Script": "Scripte",
77
+ "Small Caps": "Petites capitales",
78
+ "Reset": "Réinitialiser",
79
+ "restore all settings to the default values": "Restaurer tous les paramètres aux valeurs par défaut",
80
+ "Done": "Terminé",
81
+ "Caption Settings Dialog": "Boîte de dialogue des paramètres des sous-titres transcrits",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Début de la fenêtre de dialogue. La touche d'échappement annulera et fermera la fenêtre.",
83
+ "End of dialog window.": "Fin de la fenêtre de dialogue."
84
+ }
public/assets/player/videojs/lang/gd.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('gd', {
2
+ "Audio Player": "Cluicheadair fuaime",
3
+ "Video Player": "Cluicheadair video",
4
+ "Play": "Cluich",
5
+ "Pause": "Cuir ’na stad",
6
+ "Replay": "Cluich a-rithist",
7
+ "Current Time": "An ùine làithreach",
8
+ "Duration": "Faide",
9
+ "Remaining Time": "An ùine air fhàgail",
10
+ "Stream Type": "Seòrsa an t-sruthaidh",
11
+ "LIVE": "BEÒ",
12
+ "Seek to live, currently behind live": "A’ sireadh sruth beò ’s air dheireadh",
13
+ "Seek to live, currently playing live": "A’ sireadh sruth beò ’s ‘ga chluich",
14
+ "Loaded": "Air a luchdadh",
15
+ "Progress": "Adhartas",
16
+ "Progress Bar": "Bàr adhartais",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} à {2}",
18
+ "Fullscreen": "Làn-sgrìn",
19
+ "Non-Fullscreen": "Fàg modh làn-sgrìn",
20
+ "Mute": "Mùch",
21
+ "Unmute": "Dì-mhùch",
22
+ "Playback Rate": "Reat na cluiche",
23
+ "Subtitles": "Fo-thiotalan",
24
+ "subtitles off": "fo-thiotalan dheth",
25
+ "Captions": "Caipseanan",
26
+ "captions off": "caipseanan dheth",
27
+ "Chapters": "Caibideil",
28
+ "Descriptions": "Tuairisgeulan",
29
+ "descriptions off": "tuairisgeulan dheth",
30
+ "Audio Track": "Traca fuaime",
31
+ "Volume Level": "Àirde na fuaime",
32
+ "You aborted the media playback": "Sguir thu de chluich a’ mheadhain",
33
+ "A network error caused the media download to fail part-way.": "Cha deach leinn an còrr dhen mheadhan a luchdadh a-nuas ri linn mearachd lìonraidh.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cha b’ urrainn dhuinn am meadhan a luchdadh – dh’fhaoidte gun do dh’fhàillig leis an fhrithealaiche no an lìonra no nach cuir sinn taic ris an fhòrmat.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Sguir sinn de chluich a’ mheadhain – dh’fhaoidte gu bheil e coirbte no gu bheil gleus aig a’ mheadhan nach cuir am brabhsair taic ris.",
36
+ "No compatible source was found for this media.": "Cha ceach tùs co-chòrdail a lorg airson a’ mheadhain seo.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "Tha am meadhan crioptaichte ’s chan eil iuchair dì-chrioptachaidh againn dha.",
38
+ "Play Video": "Cluich video",
39
+ "Close": "Dùin",
40
+ "Close Modal Dialog": "Dùin an còmhradh",
41
+ "Modal Window": "Uinneag mòdach",
42
+ "This is a modal window": "Seo uinneag mòdach",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "’S urrainn dhut seo a dhùnadh leis an iuchair Escape no leis a’ phutan dùnaidh.",
44
+ ", opens captions settings dialog": ", fosglaidh e còmhradh nan roghainnean",
45
+ ", opens subtitles settings dialog": ", fosglaidh e còmhradh nam fo-thiotalan",
46
+ ", opens descriptions settings dialog": ", fosglaidh e còmhradh roghainnean nan tuairisgeulan",
47
+ ", selected": ", air a thaghadh",
48
+ "captions settings": "roghainnean nan caipseanan",
49
+ "subtitles settings": "roghainnean nam fo-thiotalan",
50
+ "descriptions settings": "roghainnean nan tuairisgeulan",
51
+ "Text": "Teacsa",
52
+ "White": "Geal",
53
+ "Black": "Dubh",
54
+ "Red": "Dearg",
55
+ "Green": "Uaine",
56
+ "Blue": "Gorm",
57
+ "Yellow": "Buidhe",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Saidhean",
60
+ "Background": "Cùlaibh",
61
+ "Window": "Uinneag",
62
+ "Transparent": "Trìd-shoilleir",
63
+ "Semi-Transparent": "Leth-thrìd-shoilleir",
64
+ "Opaque": "Trìd-dhoilleir",
65
+ "Font Size": "Meud a’ chrutha-chlò",
66
+ "Text Edge Style": "Stoidhle oir an teacsa",
67
+ "None": "Chan eil gin",
68
+ "Raised": "Àrdaichte",
69
+ "Depressed": "Air a bhrùthadh",
70
+ "Uniform": "Cunbhalach",
71
+ "Dropshadow": "Sgàil",
72
+ "Font Family": "Teaghlach a’ chrutha-chlò",
73
+ "Proportional Sans-Serif": "Sans-serif co-rèireach",
74
+ "Monospace Sans-Serif": "Sans-serif aon-leud",
75
+ "Proportional Serif": "Serif co-rèireach",
76
+ "Monospace Serif": "Serif aon-leud",
77
+ "Casual": "Fuasgailte",
78
+ "Script": "Sgriobt",
79
+ "Small Caps": "Ceann-litrichean beaga",
80
+ "Reset": "Ath-shuidhich",
81
+ "restore all settings to the default values": "till dhan a h-uile bun-roghainn",
82
+ "Done": "Deiseil",
83
+ "Caption Settings Dialog": "Còmhradh roghainnean nan caipseanan",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Toiseach uinneag còmhraidh. Sguiridh Escape dheth ’s dùinidh e an uinneag",
85
+ "End of dialog window.": "Deireadh uinneag còmhraidh.",
86
+ "{1} is loading.": "Tha {1} ’ga luchdadh."
87
+ });
public/assets/player/videojs/lang/gd.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Cluicheadair fuaime",
3
+ "Video Player": "Cluicheadair video",
4
+ "Play": "Cluich",
5
+ "Pause": "Cuir ’na stad",
6
+ "Replay": "Cluich a-rithist",
7
+ "Current Time": "An ùine làithreach",
8
+ "Duration": "Faide",
9
+ "Remaining Time": "An ùine air fhàgail",
10
+ "Stream Type": "Seòrsa an t-sruthaidh",
11
+ "LIVE": "BEÒ",
12
+ "Seek to live, currently behind live": "A’ sireadh sruth beò ’s air dheireadh",
13
+ "Seek to live, currently playing live": "A’ sireadh sruth beò ’s ‘ga chluich",
14
+ "Loaded": "Air a luchdadh",
15
+ "Progress": "Adhartas",
16
+ "Progress Bar": "Bàr adhartais",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} à {2}",
18
+ "Fullscreen": "Làn-sgrìn",
19
+ "Non-Fullscreen": "Fàg modh làn-sgrìn",
20
+ "Mute": "Mùch",
21
+ "Unmute": "Dì-mhùch",
22
+ "Playback Rate": "Reat na cluiche",
23
+ "Subtitles": "Fo-thiotalan",
24
+ "subtitles off": "fo-thiotalan dheth",
25
+ "Captions": "Caipseanan",
26
+ "captions off": "caipseanan dheth",
27
+ "Chapters": "Caibideil",
28
+ "Descriptions": "Tuairisgeulan",
29
+ "descriptions off": "tuairisgeulan dheth",
30
+ "Audio Track": "Traca fuaime",
31
+ "Volume Level": "Àirde na fuaime",
32
+ "You aborted the media playback": "Sguir thu de chluich a’ mheadhain",
33
+ "A network error caused the media download to fail part-way.": "Cha deach leinn an còrr dhen mheadhan a luchdadh a-nuas ri linn mearachd lìonraidh.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cha b’ urrainn dhuinn am meadhan a luchdadh – dh’fhaoidte gun do dh’fhàillig leis an fhrithealaiche no an lìonra no nach cuir sinn taic ris an fhòrmat.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Sguir sinn de chluich a’ mheadhain – dh’fhaoidte gu bheil e coirbte no gu bheil gleus aig a’ mheadhan nach cuir am brabhsair taic ris.",
36
+ "No compatible source was found for this media.": "Cha ceach tùs co-chòrdail a lorg airson a’ mheadhain seo.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "Tha am meadhan crioptaichte ’s chan eil iuchair dì-chrioptachaidh againn dha.",
38
+ "Play Video": "Cluich video",
39
+ "Close": "Dùin",
40
+ "Close Modal Dialog": "Dùin an còmhradh",
41
+ "Modal Window": "Uinneag mòdach",
42
+ "This is a modal window": "Seo uinneag mòdach",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "’S urrainn dhut seo a dhùnadh leis an iuchair Escape no leis a’ phutan dùnaidh.",
44
+ ", opens captions settings dialog": ", fosglaidh e còmhradh nan roghainnean",
45
+ ", opens subtitles settings dialog": ", fosglaidh e còmhradh nam fo-thiotalan",
46
+ ", opens descriptions settings dialog": ", fosglaidh e còmhradh roghainnean nan tuairisgeulan",
47
+ ", selected": ", air a thaghadh",
48
+ "captions settings": "roghainnean nan caipseanan",
49
+ "subtitles settings": "roghainnean nam fo-thiotalan",
50
+ "descriptions settings": "roghainnean nan tuairisgeulan",
51
+ "Text": "Teacsa",
52
+ "White": "Geal",
53
+ "Black": "Dubh",
54
+ "Red": "Dearg",
55
+ "Green": "Uaine",
56
+ "Blue": "Gorm",
57
+ "Yellow": "Buidhe",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Saidhean",
60
+ "Background": "Cùlaibh",
61
+ "Window": "Uinneag",
62
+ "Transparent": "Trìd-shoilleir",
63
+ "Semi-Transparent": "Leth-thrìd-shoilleir",
64
+ "Opaque": "Trìd-dhoilleir",
65
+ "Font Size": "Meud a’ chrutha-chlò",
66
+ "Text Edge Style": "Stoidhle oir an teacsa",
67
+ "None": "Chan eil gin",
68
+ "Raised": "Àrdaichte",
69
+ "Depressed": "Air a bhrùthadh",
70
+ "Uniform": "Cunbhalach",
71
+ "Dropshadow": "Sgàil",
72
+ "Font Family": "Teaghlach a’ chrutha-chlò",
73
+ "Proportional Sans-Serif": "Sans-serif co-rèireach",
74
+ "Monospace Sans-Serif": "Sans-serif aon-leud",
75
+ "Proportional Serif": "Serif co-rèireach",
76
+ "Monospace Serif": "Serif aon-leud",
77
+ "Casual": "Fuasgailte",
78
+ "Script": "Sgriobt",
79
+ "Small Caps": "Ceann-litrichean beaga",
80
+ "Reset": "Ath-shuidhich",
81
+ "restore all settings to the default values": "till dhan a h-uile bun-roghainn",
82
+ "Done": "Deiseil",
83
+ "Caption Settings Dialog": "Còmhradh roghainnean nan caipseanan",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Toiseach uinneag còmhraidh. Sguiridh Escape dheth ’s dùinidh e an uinneag",
85
+ "End of dialog window.": "Deireadh uinneag còmhraidh.",
86
+ "{1} is loading.": "Tha {1} ’ga luchdadh."
87
+ }
public/assets/player/videojs/lang/gl.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('gl', {
2
+ "Audio Player": "Reprodutor de son",
3
+ "Video Player": "Reprodutor de vídeo",
4
+ "Play": "Reproducir",
5
+ "Pause": "Pausa",
6
+ "Replay": "Repetir",
7
+ "Current Time": "Tempo reproducido",
8
+ "Duration": "Duración",
9
+ "Remaining Time": "Tempo restante",
10
+ "Stream Type": "Tipo de fluxo",
11
+ "LIVE": "EN DIRECTO",
12
+ "Seek to live, currently behind live": "Buscando directo, actualmente tras en directo",
13
+ "Seek to live, currently playing live": "Buscando directo, actualmente reproducindo en directo",
14
+ "Loaded": "Cargado",
15
+ "Progress": "Progresión",
16
+ "Progress Bar": "Barra de progreso",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
18
+ "Fullscreen": "Pantalla completa",
19
+ "Non-Fullscreen": "Xanela",
20
+ "Mute": "Silenciar",
21
+ "Unmute": "Son activado",
22
+ "Playback Rate": "Velocidade de reprodución",
23
+ "Subtitles": "Subtítulos",
24
+ "subtitles off": "subtítulos desactivados",
25
+ "Captions": "Subtítulos para xordos",
26
+ "captions off": "subtítulos para xordos desactivados",
27
+ "Chapters": "Capítulos",
28
+ "Descriptions": "Descricións",
29
+ "descriptions off": "descricións desactivadas",
30
+ "Audio Track": "Pista de son",
31
+ "Volume Level": "Nivel do volume",
32
+ "You aborted the media playback": "Vostede interrompeu a reprodución do medio.",
33
+ "A network error caused the media download to fail part-way.": "Un erro de rede interrompeu a descarga do medio.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Non foi posíbel cargar o medio por mor dun fallo de rede ou do servidor ou porque o formato non é compatíbel.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Interrompeuse a reprodución do medio por mor dun problema de estragamento dos datos ou porque o medio precisa funcións que o seu navegador non ofrece.",
36
+ "No compatible source was found for this media.": "Non se atopou ningunha orixe compatíbel con este vídeo.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "O medio está cifrado e non temos as chaves para descifralo .",
38
+ "Play Video": "Reproducir vídeo",
39
+ "Close": "Pechar",
40
+ "Close Modal Dialog": "Pechar a caixa de diálogo modal",
41
+ "Modal Window": "Xanela modal",
42
+ "This is a modal window": "Esta é unha xanela modal",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Este diálogo modal pódese pechar premendo a tecla Escape ou activando o botón de pechar.",
44
+ ", opens captions settings dialog": ", abre o diálogo de axustes dos subtítulos para xordos",
45
+ ", opens subtitles settings dialog": ", abre o diálogo de axustes dos subtítulos",
46
+ ", opens descriptions settings dialog": ", abre o diálogo de axustes das descricións",
47
+ ", selected": ", séleccionado",
48
+ "captions settings": "axustes dos subtítulos para xordos",
49
+ "subtitles settings": "axustes dos subtítulos",
50
+ "descriptions settings": "axustes das descricións",
51
+ "Text": "Texto",
52
+ "White": "Branco",
53
+ "Black": "Negro",
54
+ "Red": "Vermello",
55
+ "Green": "Verde",
56
+ "Blue": "Azul",
57
+ "Yellow": "Marelo",
58
+ "Magenta": "Maxenta",
59
+ "Cyan": "Cian",
60
+ "Background": "Fondo",
61
+ "Window": "Xanela",
62
+ "Transparent": "Transparente",
63
+ "Semi-Transparent": "Semi-transparente",
64
+ "Opaque": "Opaca",
65
+ "Font Size": "Tamaño das letras",
66
+ "Text Edge Style": "Estilo do bordos do texto",
67
+ "None": "Ningún",
68
+ "Raised": "Érguida",
69
+ "Depressed": "Caída",
70
+ "Uniform": "Uniforme",
71
+ "Dropshadow": "Sombra caída",
72
+ "Font Family": "Familia de letras",
73
+ "Proportional Sans-Serif": "Sans-Serif proporcional",
74
+ "Monospace Sans-Serif": "Sans-Serif monoespazo (caixa fixa)",
75
+ "Proportional Serif": "Serif proporcional",
76
+ "Monospace Serif": "Serif monoespazo (caixa fixa)",
77
+ "Casual": "Manuscrito",
78
+ "Script": "Itálica",
79
+ "Small Caps": "Pequenas maiúsculas",
80
+ "Reset": "Reiniciar",
81
+ "restore all settings to the default values": "restaurar todos os axustes aos valores predeterminados",
82
+ "Done": "Feito",
83
+ "Caption Settings Dialog": "Diálogo de axustes dos subtítulos para xordos",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Inicio da xanela de diálogo. A tecla Escape cancelará e pechará a xanela.",
85
+ "End of dialog window.": "Fin da xanela de diálogo.",
86
+ "{1} is loading.": "{1} está a cargar."
87
+ });
public/assets/player/videojs/lang/gl.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Reprodutor de son",
3
+ "Video Player": "Reprodutor de vídeo",
4
+ "Play": "Reproducir",
5
+ "Pause": "Pausa",
6
+ "Replay": "Repetir",
7
+ "Current Time": "Tempo reproducido",
8
+ "Duration": "Duración",
9
+ "Remaining Time": "Tempo restante",
10
+ "Stream Type": "Tipo de fluxo",
11
+ "LIVE": "EN DIRECTO",
12
+ "Seek to live, currently behind live": "Buscando directo, actualmente tras en directo",
13
+ "Seek to live, currently playing live": "Buscando directo, actualmente reproducindo en directo",
14
+ "Loaded": "Cargado",
15
+ "Progress": "Progresión",
16
+ "Progress Bar": "Barra de progreso",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
18
+ "Fullscreen": "Pantalla completa",
19
+ "Non-Fullscreen": "Xanela",
20
+ "Mute": "Silenciar",
21
+ "Unmute": "Son activado",
22
+ "Playback Rate": "Velocidade de reprodución",
23
+ "Subtitles": "Subtítulos",
24
+ "subtitles off": "subtítulos desactivados",
25
+ "Captions": "Subtítulos para xordos",
26
+ "captions off": "subtítulos para xordos desactivados",
27
+ "Chapters": "Capítulos",
28
+ "Descriptions": "Descricións",
29
+ "descriptions off": "descricións desactivadas",
30
+ "Audio Track": "Pista de son",
31
+ "Volume Level": "Nivel do volume",
32
+ "You aborted the media playback": "Vostede interrompeu a reprodución do medio.",
33
+ "A network error caused the media download to fail part-way.": "Un erro de rede interrompeu a descarga do medio.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Non foi posíbel cargar o medio por mor dun fallo de rede ou do servidor ou porque o formato non é compatíbel.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Interrompeuse a reprodución do medio por mor dun problema de estragamento dos datos ou porque o medio precisa funcións que o seu navegador non ofrece.",
36
+ "No compatible source was found for this media.": "Non se atopou ningunha orixe compatíbel con este vídeo.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "O medio está cifrado e non temos as chaves para descifralo .",
38
+ "Play Video": "Reproducir vídeo",
39
+ "Close": "Pechar",
40
+ "Close Modal Dialog": "Pechar a caixa de diálogo modal",
41
+ "Modal Window": "Xanela modal",
42
+ "This is a modal window": "Esta é unha xanela modal",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Este diálogo modal pódese pechar premendo a tecla Escape ou activando o botón de pechar.",
44
+ ", opens captions settings dialog": ", abre o diálogo de axustes dos subtítulos para xordos",
45
+ ", opens subtitles settings dialog": ", abre o diálogo de axustes dos subtítulos",
46
+ ", opens descriptions settings dialog": ", abre o diálogo de axustes das descricións",
47
+ ", selected": ", séleccionado",
48
+ "captions settings": "axustes dos subtítulos para xordos",
49
+ "subtitles settings": "axustes dos subtítulos",
50
+ "descriptions settings": "axustes das descricións",
51
+ "Text": "Texto",
52
+ "White": "Branco",
53
+ "Black": "Negro",
54
+ "Red": "Vermello",
55
+ "Green": "Verde",
56
+ "Blue": "Azul",
57
+ "Yellow": "Marelo",
58
+ "Magenta": "Maxenta",
59
+ "Cyan": "Cian",
60
+ "Background": "Fondo",
61
+ "Window": "Xanela",
62
+ "Transparent": "Transparente",
63
+ "Semi-Transparent": "Semi-transparente",
64
+ "Opaque": "Opaca",
65
+ "Font Size": "Tamaño das letras",
66
+ "Text Edge Style": "Estilo do bordos do texto",
67
+ "None": "Ningún",
68
+ "Raised": "Érguida",
69
+ "Depressed": "Caída",
70
+ "Uniform": "Uniforme",
71
+ "Dropshadow": "Sombra caída",
72
+ "Font Family": "Familia de letras",
73
+ "Proportional Sans-Serif": "Sans-Serif proporcional",
74
+ "Monospace Sans-Serif": "Sans-Serif monoespazo (caixa fixa)",
75
+ "Proportional Serif": "Serif proporcional",
76
+ "Monospace Serif": "Serif monoespazo (caixa fixa)",
77
+ "Casual": "Manuscrito",
78
+ "Script": "Itálica",
79
+ "Small Caps": "Pequenas maiúsculas",
80
+ "Reset": "Reiniciar",
81
+ "restore all settings to the default values": "restaurar todos os axustes aos valores predeterminados",
82
+ "Done": "Feito",
83
+ "Caption Settings Dialog": "Diálogo de axustes dos subtítulos para xordos",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Inicio da xanela de diálogo. A tecla Escape cancelará e pechará a xanela.",
85
+ "End of dialog window.": "Fin da xanela de diálogo.",
86
+ "{1} is loading.": "{1} está a cargar."
87
+ }
public/assets/player/videojs/lang/he.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('he', {
2
+ "Audio Player": "נַגָּן שמע",
3
+ "Video Player": "נַגָּן וידאו",
4
+ "Play": "נַגֵּן",
5
+ "Pause": "השהה",
6
+ "Replay": "נַגֵּן שוב",
7
+ "Current Time": "זמן נוכחי",
8
+ "Duration": "זמן כולל",
9
+ "Remaining Time": "זמן נותר",
10
+ "Stream Type": "סוג Stream",
11
+ "LIVE": "שידור חי",
12
+ "Loaded": "נטען",
13
+ "Progress": "התקדמות",
14
+ "Progress Bar": "סרגל התקדמות",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} מתוך {2}",
16
+ "Fullscreen": "מסך מלא",
17
+ "Non-Fullscreen": "מסך לא מלא",
18
+ "Mute": "השתק",
19
+ "Unmute": "בטל השתקה",
20
+ "Playback Rate": "קצב ניגון",
21
+ "Subtitles": "כתוביות",
22
+ "subtitles off": "כתוביות כבויות",
23
+ "Captions": "כיתובים",
24
+ "captions off": "כיתובים כבויים",
25
+ "Chapters": "פרקים",
26
+ "Descriptions": "תיאורים",
27
+ "descriptions off": "תיאורים כבויים",
28
+ "Audio Track": "רצועת שמע",
29
+ "Volume Level": "רמת ווליום",
30
+ "You aborted the media playback": "ביטלת את השמעת המדיה",
31
+ "A network error caused the media download to fail part-way.": "שגיאת רשת גרמה להורדת המדיה להיכשל באמצע.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "לא ניתן לטעון את המדיה, או מכיוון שהרשת או השרת כשלו או מכיוון שהפורמט אינו נתמך.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "השמעת המדיה בוטלה בשל בעית השחטת מידע או מכיוון שהמדיה עשתה שימוש בתכונות שהדפדפן שלך לא תמך בהן.",
34
+ "No compatible source was found for this media.": "לא נמצא מקור תואם עבור מדיה זו.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "המדיה מוצפנת ואין בידינו את המפתח כדי לפענח אותה.",
36
+ "Play Video": "נַגֵּן וידאו",
37
+ "Close": "סְגוֹר",
38
+ "Close Modal Dialog": "סְגוֹר דו-שיח מודאלי",
39
+ "Modal Window": "חלון מודאלי",
40
+ "This is a modal window": "זהו חלון מודאלי",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "ניתן לסגור חלון מודאלי זה ע\"י לחיצה על כפתור ה-Escape או הפעלת כפתור הסגירה.",
42
+ ", opens captions settings dialog": ", פותח חלון הגדרות כיתובים",
43
+ ", opens subtitles settings dialog": ", פותח חלון הגדרות כתוביות",
44
+ ", opens descriptions settings dialog": ", פותח חלון הגדרות תיאורים",
45
+ ", selected": ", נבחר/ו",
46
+ "captions settings": "הגדרות כיתובים",
47
+ "subtitles settings": "הגדרות כתוביות",
48
+ "descriptions settings": "הגדרות תיאורים",
49
+ "Text": "טקסט",
50
+ "White": "לבן",
51
+ "Black": "שחור",
52
+ "Red": "אדום",
53
+ "Green": "ירוק",
54
+ "Blue": "כחול",
55
+ "Yellow": "צהוב",
56
+ "Magenta": "מַגֶ'נטָה",
57
+ "Cyan": "טורקיז",
58
+ "Background": "רקע",
59
+ "Window": "חלון",
60
+ "Transparent": "שקוף",
61
+ "Semi-Transparent": "שקוף למחצה",
62
+ "Opaque": "אָטוּם",
63
+ "Font Size": "גודל גופן",
64
+ "Text Edge Style": "סגנון קצוות טקסט",
65
+ "None": "ללא",
66
+ "Raised": "מורם",
67
+ "Depressed": "מורד",
68
+ "Uniform": "אחיד",
69
+ "Dropshadow": "הטלת צל",
70
+ "Font Family": "משפחת גופן",
71
+ "Proportional Sans-Serif": "פרופורציוני וללא תגיות (Proportional Sans-Serif)",
72
+ "Monospace Sans-Serif": "ברוחב אחיד וללא תגיות (Monospace Sans-Serif)",
73
+ "Proportional Serif": "פרופורציוני ועם תגיות (Proportional Serif)",
74
+ "Monospace Serif": "ברוחב אחיד ועם תגיות (Monospace Serif)",
75
+ "Casual": "אַגָבִי",
76
+ "Script": "תסריט",
77
+ "Small Caps": "אותיות קטנות",
78
+ "Reset": "אִפּוּס",
79
+ "restore all settings to the default values": "שחזר את כל ההגדרות לערכי ברירת המחדל",
80
+ "Done": "בוצע",
81
+ "Caption Settings Dialog": "דו-שיח הגדרות כיתובים",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "תחילת חלון דו-שיח. Escape יבטל ויסגור את החלון",
83
+ "End of dialog window.": "סוף חלון דו-שיח."
84
+ });
public/assets/player/videojs/lang/he.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "נַגָּן שמע",
3
+ "Video Player": "נַגָּן וידאו",
4
+ "Play": "נַגֵּן",
5
+ "Pause": "השהה",
6
+ "Replay": "נַגֵּן שוב",
7
+ "Current Time": "זמן נוכחי",
8
+ "Duration": "זמן כולל",
9
+ "Remaining Time": "זמן נותר",
10
+ "Stream Type": "סוג Stream",
11
+ "LIVE": "שידור חי",
12
+ "Loaded": "נטען",
13
+ "Progress": "התקדמות",
14
+ "Progress Bar": "סרגל התקדמות",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} מתוך {2}",
16
+ "Fullscreen": "מסך מלא",
17
+ "Non-Fullscreen": "מסך לא מלא",
18
+ "Mute": "השתק",
19
+ "Unmute": "בטל השתקה",
20
+ "Playback Rate": "קצב ניגון",
21
+ "Subtitles": "כתוביות",
22
+ "subtitles off": "כתוביות כבויות",
23
+ "Captions": "כיתובים",
24
+ "captions off": "כיתובים כבויים",
25
+ "Chapters": "פרקים",
26
+ "Descriptions": "תיאורים",
27
+ "descriptions off": "תיאורים כבויים",
28
+ "Audio Track": "רצועת שמע",
29
+ "Volume Level": "רמת ווליום",
30
+ "You aborted the media playback": "ביטלת את השמעת המדיה",
31
+ "A network error caused the media download to fail part-way.": "שגיאת רשת גרמה להורדת המדיה להיכשל באמצע.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "לא ניתן לטעון את המדיה, או מכיוון שהרשת או השרת כשלו או מכיוון שהפורמט אינו נתמך.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "השמעת המדיה בוטלה בשל בעית השחטת מידע או מכיוון שהמדיה עשתה שימוש בתכונות שהדפדפן שלך לא תמך בהן.",
34
+ "No compatible source was found for this media.": "לא נמצא מקור תואם עבור מדיה זו.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "המדיה מוצפנת ואין בידינו את המפתח כדי לפענח אותה.",
36
+ "Play Video": "נַגֵּן וידאו",
37
+ "Close": "סְגוֹר",
38
+ "Close Modal Dialog": "סְגוֹר דו-שיח מודאלי",
39
+ "Modal Window": "חלון מודאלי",
40
+ "This is a modal window": "זהו חלון מודאלי",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "ניתן לסגור חלון מודאלי זה ע\"י לחיצה על כפתור ה-Escape או הפעלת כפתור הסגירה.",
42
+ ", opens captions settings dialog": ", פותח חלון הגדרות כיתובים",
43
+ ", opens subtitles settings dialog": ", פותח חלון הגדרות כתוביות",
44
+ ", opens descriptions settings dialog": ", פותח חלון הגדרות תיאורים",
45
+ ", selected": ", נבחר/ו",
46
+ "captions settings": "הגדרות כיתובים",
47
+ "subtitles settings": "הגדרות כתוביות",
48
+ "descriptions settings": "הגדרות תיאורים",
49
+ "Text": "טקסט",
50
+ "White": "לבן",
51
+ "Black": "שחור",
52
+ "Red": "אדום",
53
+ "Green": "ירוק",
54
+ "Blue": "כחול",
55
+ "Yellow": "צהוב",
56
+ "Magenta": "מַגֶ'נטָה",
57
+ "Cyan": "טורקיז",
58
+ "Background": "רקע",
59
+ "Window": "חלון",
60
+ "Transparent": "שקוף",
61
+ "Semi-Transparent": "שקוף למחצה",
62
+ "Opaque": "אָטוּם",
63
+ "Font Size": "גודל גופן",
64
+ "Text Edge Style": "סגנון קצוות טקסט",
65
+ "None": "ללא",
66
+ "Raised": "מורם",
67
+ "Depressed": "מורד",
68
+ "Uniform": "אחיד",
69
+ "Dropshadow": "הטלת צל",
70
+ "Font Family": "משפחת גופן",
71
+ "Proportional Sans-Serif": "פרופורציוני וללא תגיות (Proportional Sans-Serif)",
72
+ "Monospace Sans-Serif": "ברוחב אחיד וללא תגיות (Monospace Sans-Serif)",
73
+ "Proportional Serif": "פרופורציוני ועם תגיות (Proportional Serif)",
74
+ "Monospace Serif": "ברוחב אחיד ועם תגיות (Monospace Serif)",
75
+ "Casual": "אַגָבִי",
76
+ "Script": "תסריט",
77
+ "Small Caps": "אותיות קטנות",
78
+ "Reset": "אִפּוּס",
79
+ "restore all settings to the default values": "שחזר את כל ההגדרות לערכי ברירת המחדל",
80
+ "Done": "בוצע",
81
+ "Caption Settings Dialog": "דו-שיח הגדרות כיתובים",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "תחילת חלון דו-שיח. Escape יבטל ויסגור את החלון",
83
+ "End of dialog window.": "סוף חלון דו-שיח."
84
+ }
public/assets/player/videojs/lang/hr.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('hr', {
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
+ });
public/assets/player/videojs/lang/hr.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vrijeme",
5
+ "Duration": "Vrijeme trajanja",
6
+ "Remaining Time": "Preostalo vrijeme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Puni ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
+ }
public/assets/player/videojs/lang/hu.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('hu', {
2
+ "Play": "Lejátszás",
3
+ "Pause": "Szünet",
4
+ "Current Time": "Aktuális időpont",
5
+ "Duration": "Hossz",
6
+ "Remaining Time": "Hátralévő idő",
7
+ "Stream Type": "Adatfolyam típusa",
8
+ "LIVE": "ÉLŐ",
9
+ "Loaded": "Betöltve",
10
+ "Progress": "Állapot",
11
+ "Fullscreen": "Teljes képernyő",
12
+ "Non-Fullscreen": "Normál méret",
13
+ "Mute": "Némítás",
14
+ "Unmute": "Némítás kikapcsolva",
15
+ "Playback Rate": "Lejátszási sebesség",
16
+ "Subtitles": "Feliratok",
17
+ "subtitles off": "Feliratok kikapcsolva",
18
+ "Captions": "Magyarázó szöveg",
19
+ "captions off": "Magyarázó szöveg kikapcsolva",
20
+ "Chapters": "Fejezetek",
21
+ "You aborted the media playback": "Leállította a lejátszást",
22
+ "A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
25
+ "No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
26
+ });
public/assets/player/videojs/lang/hu.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Lejátszás",
3
+ "Pause": "Szünet",
4
+ "Current Time": "Aktuális időpont",
5
+ "Duration": "Hossz",
6
+ "Remaining Time": "Hátralévő idő",
7
+ "Stream Type": "Adatfolyam típusa",
8
+ "LIVE": "ÉLŐ",
9
+ "Loaded": "Betöltve",
10
+ "Progress": "Állapot",
11
+ "Fullscreen": "Teljes képernyő",
12
+ "Non-Fullscreen": "Normál méret",
13
+ "Mute": "Némítás",
14
+ "Unmute": "Némítás kikapcsolva",
15
+ "Playback Rate": "Lejátszási sebesség",
16
+ "Subtitles": "Feliratok",
17
+ "subtitles off": "Feliratok kikapcsolva",
18
+ "Captions": "Magyarázó szöveg",
19
+ "captions off": "Magyarázó szöveg kikapcsolva",
20
+ "Chapters": "Fejezetek",
21
+ "You aborted the media playback": "Leállította a lejátszást",
22
+ "A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
25
+ "No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
26
+ }
public/assets/player/videojs/lang/it.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('it', {
2
+ "Play": "Play",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Orario attuale",
5
+ "Duration": "Durata",
6
+ "Remaining Time": "Tempo rimanente",
7
+ "Stream Type": "Tipo del Streaming",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Caricato",
10
+ "Progress": "Stato",
11
+ "Fullscreen": "Schermo intero",
12
+ "Non-Fullscreen": "Chiudi schermo intero",
13
+ "Mute": "Muto",
14
+ "Unmute": "Audio",
15
+ "Playback Rate": "Tasso di riproduzione",
16
+ "Subtitles": "Sottotitoli",
17
+ "subtitles off": "Senza sottotitoli",
18
+ "Captions": "Sottotitoli non udenti",
19
+ "captions off": "Senza sottotitoli non udenti",
20
+ "Chapters": "Capitolo",
21
+ "You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
22
+ "A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.",
25
+ "No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
26
+ });
public/assets/player/videojs/lang/it.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Play",
3
+ "Pause": "Pausa",
4
+ "Current Time": "Orario attuale",
5
+ "Duration": "Durata",
6
+ "Remaining Time": "Tempo rimanente",
7
+ "Stream Type": "Tipo del Streaming",
8
+ "LIVE": "LIVE",
9
+ "Loaded": "Caricato",
10
+ "Progress": "Stato",
11
+ "Fullscreen": "Schermo intero",
12
+ "Non-Fullscreen": "Chiudi schermo intero",
13
+ "Mute": "Muto",
14
+ "Unmute": "Audio",
15
+ "Playback Rate": "Tasso di riproduzione",
16
+ "Subtitles": "Sottotitoli",
17
+ "subtitles off": "Senza sottotitoli",
18
+ "Captions": "Sottotitoli non udenti",
19
+ "captions off": "Senza sottotitoli non udenti",
20
+ "Chapters": "Capitolo",
21
+ "You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
22
+ "A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.",
25
+ "No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
26
+ }
public/assets/player/videojs/lang/ja.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('ja', {
2
+ "Play": "再生",
3
+ "Pause": "一時停止",
4
+ "Current Time": "現在の時間",
5
+ "Duration": "長さ",
6
+ "Remaining Time": "残りの時間",
7
+ "Stream Type": "ストリームの種類",
8
+ "LIVE": "ライブ",
9
+ "Loaded": "ロード済み",
10
+ "Progress": "進行状況",
11
+ "Fullscreen": "フルスクリーン",
12
+ "Non-Fullscreen": "フルスクリーン以外",
13
+ "Mute": "ミュート",
14
+ "Unmute": "ミュート解除",
15
+ "Playback Rate": "再生レート",
16
+ "Subtitles": "サブタイトル",
17
+ "subtitles off": "サブタイトル オフ",
18
+ "Captions": "キャプション",
19
+ "captions off": "キャプション オフ",
20
+ "Chapters": "チャプター",
21
+ "You aborted the media playback": "動画再生を中止しました",
22
+ "A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
25
+ "No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
26
+ });
public/assets/player/videojs/lang/ja.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "再生",
3
+ "Pause": "一時停止",
4
+ "Current Time": "現在の時間",
5
+ "Duration": "長さ",
6
+ "Remaining Time": "残りの時間",
7
+ "Stream Type": "ストリームの種類",
8
+ "LIVE": "ライブ",
9
+ "Loaded": "ロード済み",
10
+ "Progress": "進行状況",
11
+ "Fullscreen": "フルスクリーン",
12
+ "Non-Fullscreen": "フルスクリーン以外",
13
+ "Mute": "ミュート",
14
+ "Unmute": "ミュート解除",
15
+ "Playback Rate": "再生レート",
16
+ "Subtitles": "サブタイトル",
17
+ "subtitles off": "サブタイトル オフ",
18
+ "Captions": "キャプション",
19
+ "captions off": "キャプション オフ",
20
+ "Chapters": "チャプター",
21
+ "You aborted the media playback": "動画再生を中止しました",
22
+ "A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
25
+ "No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
26
+ }
public/assets/player/videojs/lang/ko.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('ko', {
2
+ "Play": "재생",
3
+ "Pause": "일시중지",
4
+ "Current Time": "현재 시간",
5
+ "Duration": "지정 기간",
6
+ "Remaining Time": "남은 시간",
7
+ "Stream Type": "스트리밍 유형",
8
+ "LIVE": "라이브",
9
+ "Loaded": "로드됨",
10
+ "Progress": "진행",
11
+ "Fullscreen": "전체 화면",
12
+ "Non-Fullscreen": "전체 화면 해제",
13
+ "Mute": "음소거",
14
+ "Unmute": "음소거 해제",
15
+ "Playback Rate": "재생 비율",
16
+ "Subtitles": "서브타이틀",
17
+ "subtitles off": "서브타이틀 끄기",
18
+ "Captions": "자막",
19
+ "captions off": "자막 끄기",
20
+ "Chapters": "챕터",
21
+ "You aborted the media playback": "비디오 재생을 취소했습니다.",
22
+ "A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
25
+ "No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
26
+ });
public/assets/player/videojs/lang/ko.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "재생",
3
+ "Pause": "일시중지",
4
+ "Current Time": "현재 시간",
5
+ "Duration": "지정 기간",
6
+ "Remaining Time": "남은 시간",
7
+ "Stream Type": "스트리밍 유형",
8
+ "LIVE": "라이브",
9
+ "Loaded": "로드됨",
10
+ "Progress": "진행",
11
+ "Fullscreen": "전체 화면",
12
+ "Non-Fullscreen": "전체 화면 해제",
13
+ "Mute": "음소거",
14
+ "Unmute": "음소거 해제",
15
+ "Playback Rate": "재생 비율",
16
+ "Subtitles": "서브타이틀",
17
+ "subtitles off": "서브타이틀 끄기",
18
+ "Captions": "자막",
19
+ "captions off": "자막 끄기",
20
+ "Chapters": "챕터",
21
+ "You aborted the media playback": "비디오 재생을 취소했습니다.",
22
+ "A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
25
+ "No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
26
+ }
public/assets/player/videojs/lang/nb.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('nb', {
2
+ "Play": "Spill",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration": "Varighet",
6
+ "Remaining Time": "Gjenstående tid",
7
+ "Stream Type": "Type strøm",
8
+ "LIVE": "DIREKTE",
9
+ "Loaded": "Lastet inn",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fullskjerm",
12
+ "Non-Fullscreen": "Lukk fullskjerm",
13
+ "Mute": "Lyd av",
14
+ "Unmute": "Lyd på",
15
+ "Playback Rate": "Avspillingsrate",
16
+ "Subtitles": "Undertekst på",
17
+ "subtitles off": "Undertekst av",
18
+ "Captions": "Undertekst for hørselshemmede på",
19
+ "captions off": "Undertekst for hørselshemmede av",
20
+ "Chapters": "Kapitler",
21
+ "You aborted the media playback": "Du avbrøt avspillingen.",
22
+ "A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
25
+ "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
+ });
public/assets/player/videojs/lang/nb.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Spill",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration": "Varighet",
6
+ "Remaining Time": "Gjenstående tid",
7
+ "Stream Type": "Type strøm",
8
+ "LIVE": "DIREKTE",
9
+ "Loaded": "Lastet inn",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fullskjerm",
12
+ "Non-Fullscreen": "Lukk fullskjerm",
13
+ "Mute": "Lyd av",
14
+ "Unmute": "Lyd på",
15
+ "Playback Rate": "Avspillingsrate",
16
+ "Subtitles": "Undertekst på",
17
+ "subtitles off": "Undertekst av",
18
+ "Captions": "Undertekst for hørselshemmede på",
19
+ "captions off": "Undertekst for hørselshemmede av",
20
+ "Chapters": "Kapitler",
21
+ "You aborted the media playback": "Du avbrøt avspillingen.",
22
+ "A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
25
+ "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
+ }
public/assets/player/videojs/lang/nl.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('nl', {
2
+ "Audio Player": "Audiospeler",
3
+ "Video Player": "Videospeler",
4
+ "Play": "Afspelen",
5
+ "Pause": "Pauzeren",
6
+ "Replay": "Opnieuw afspelen",
7
+ "Current Time": "Huidige tijd",
8
+ "Duration": "Tijdsduur",
9
+ "Remaining Time": "Resterende tijd",
10
+ "Stream Type": "Streamtype",
11
+ "LIVE": "LIVE",
12
+ "Loaded": "Geladen",
13
+ "Progress": "Voortgang",
14
+ "Progress Bar": "Voortgangsbalk",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} van {2}",
16
+ "Fullscreen": "Volledig scherm",
17
+ "Non-Fullscreen": "Geen volledig scherm",
18
+ "Mute": "Dempen",
19
+ "Unmute": "Niet dempen",
20
+ "Playback Rate": "Afspeelsnelheid",
21
+ "Subtitles": "Ondertiteling",
22
+ "subtitles off": "ondertiteling uit",
23
+ "Captions": "Bijschriften",
24
+ "captions off": "bijschriften uit",
25
+ "Chapters": "Hoofdstukken",
26
+ "Descriptions": "Beschrijvingen",
27
+ "descriptions off": "beschrijvingen uit",
28
+ "Audio Track": "Audiospoor",
29
+ "Volume Level": "Geluidsniveau",
30
+ "You aborted the media playback": "U heeft het afspelen van de media afgebroken",
31
+ "A network error caused the media download to fail part-way.": "Een netwerkfout heeft ervoor gezorgd dat het downloaden van de media halverwege is mislukt.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, dit komt doordat of de server of het netwerk mislukt of doordat het formaat niet wordt ondersteund.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Het afspelen van de media is afgebroken door een probleem met beschadeigde gegevens of doordat de media functies gebruikt die uw browser niet ondersteund.",
34
+ "No compatible source was found for this media.": "Er is geen geschikte bron voor deze media gevonden.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "De media is versleuteld en we hebben de sleutels niet om deze te ontsleutelen.",
36
+ "Play Video": "Video afspelen",
37
+ "Close": "Sluiten",
38
+ "Close Modal Dialog": "Extra venster sluiten",
39
+ "Modal Window": "Extra venster",
40
+ "This is a modal window": "Dit is een extra venster",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Dit venster kan worden gesloten door op de Escape-toets te drukken of door de sluiten-knop te activeren.",
42
+ ", opens captions settings dialog": ", opent instellingen-venster voor bijschriften",
43
+ ", opens subtitles settings dialog": ", opent instellingen-venster voor ondertitelingen",
44
+ ", opens descriptions settings dialog": ", opent instellingen-venster voor beschrijvingen",
45
+ ", selected": ", geselecteerd",
46
+ "captions settings": "bijschriften-instellingen",
47
+ "subtitles settings": "ondertiteling-instellingen",
48
+ "descriptions settings": "beschrijvingen-instellingen",
49
+ "Text": "Tekst",
50
+ "White": "Wit",
51
+ "Black": "Zwart",
52
+ "Red": "Rood",
53
+ "Green": "Groen",
54
+ "Blue": "Blauw",
55
+ "Yellow": "Geel",
56
+ "Magenta": "Magenta",
57
+ "Cyan": "Cyaan",
58
+ "Background": "Achtergrond",
59
+ "Window": "Venster",
60
+ "Transparent": "Transparant",
61
+ "Semi-Transparent": "Semi-transparant",
62
+ "Opaque": "Ondoorzichtig",
63
+ "Font Size": "Lettergrootte",
64
+ "Text Edge Style": "Stijl tekstrand",
65
+ "None": "Geen",
66
+ "Raised": "Verhoogd",
67
+ "Depressed": "Ingedrukt",
68
+ "Uniform": "Uniform",
69
+ "Dropshadow": "Schaduw",
70
+ "Font Family": "Lettertype",
71
+ "Proportional Sans-Serif": "Proportioneel sans-serif",
72
+ "Monospace Sans-Serif": "Monospace sans-serif",
73
+ "Proportional Serif": "Proportioneel serif",
74
+ "Monospace Serif": "Monospace serif",
75
+ "Casual": "Luchtig",
76
+ "Script": "Script",
77
+ "Small Caps": "Kleine hoofdletters",
78
+ "Reset": "Herstellen",
79
+ "restore all settings to the default values": "alle instellingen naar de standaardwaarden herstellen",
80
+ "Done": "Klaar",
81
+ "Caption Settings Dialog": "Venster voor bijschriften-instellingen",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Begin van dialoogvenster. Escape zal annuleren en het venster sluiten.",
83
+ "End of dialog window.": "Einde van dialoogvenster."
84
+ });
public/assets/player/videojs/lang/nl.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Audiospeler",
3
+ "Video Player": "Videospeler",
4
+ "Play": "Afspelen",
5
+ "Pause": "Pauzeren",
6
+ "Replay": "Opnieuw afspelen",
7
+ "Current Time": "Huidige tijd",
8
+ "Duration": "Tijdsduur",
9
+ "Remaining Time": "Resterende tijd",
10
+ "Stream Type": "Streamtype",
11
+ "LIVE": "LIVE",
12
+ "Loaded": "Geladen",
13
+ "Progress": "Voortgang",
14
+ "Progress Bar": "Voortgangsbalk",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} van {2}",
16
+ "Fullscreen": "Volledig scherm",
17
+ "Non-Fullscreen": "Geen volledig scherm",
18
+ "Mute": "Dempen",
19
+ "Unmute": "Niet dempen",
20
+ "Playback Rate": "Afspeelsnelheid",
21
+ "Subtitles": "Ondertiteling",
22
+ "subtitles off": "ondertiteling uit",
23
+ "Captions": "Bijschriften",
24
+ "captions off": "bijschriften uit",
25
+ "Chapters": "Hoofdstukken",
26
+ "Descriptions": "Beschrijvingen",
27
+ "descriptions off": "beschrijvingen uit",
28
+ "Audio Track": "Audiospoor",
29
+ "Volume Level": "Geluidsniveau",
30
+ "You aborted the media playback": "U heeft het afspelen van de media afgebroken",
31
+ "A network error caused the media download to fail part-way.": "Een netwerkfout heeft ervoor gezorgd dat het downloaden van de media halverwege is mislukt.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, dit komt doordat of de server of het netwerk mislukt of doordat het formaat niet wordt ondersteund.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Het afspelen van de media is afgebroken door een probleem met beschadeigde gegevens of doordat de media functies gebruikt die uw browser niet ondersteund.",
34
+ "No compatible source was found for this media.": "Er is geen geschikte bron voor deze media gevonden.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "De media is versleuteld en we hebben de sleutels niet om deze te ontsleutelen.",
36
+ "Play Video": "Video afspelen",
37
+ "Close": "Sluiten",
38
+ "Close Modal Dialog": "Extra venster sluiten",
39
+ "Modal Window": "Extra venster",
40
+ "This is a modal window": "Dit is een extra venster",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Dit venster kan worden gesloten door op de Escape-toets te drukken of door de sluiten-knop te activeren.",
42
+ ", opens captions settings dialog": ", opent instellingen-venster voor bijschriften",
43
+ ", opens subtitles settings dialog": ", opent instellingen-venster voor ondertitelingen",
44
+ ", opens descriptions settings dialog": ", opent instellingen-venster voor beschrijvingen",
45
+ ", selected": ", geselecteerd",
46
+ "captions settings": "bijschriften-instellingen",
47
+ "subtitles settings": "ondertiteling-instellingen",
48
+ "descriptions settings": "beschrijvingen-instellingen",
49
+ "Text": "Tekst",
50
+ "White": "Wit",
51
+ "Black": "Zwart",
52
+ "Red": "Rood",
53
+ "Green": "Groen",
54
+ "Blue": "Blauw",
55
+ "Yellow": "Geel",
56
+ "Magenta": "Magenta",
57
+ "Cyan": "Cyaan",
58
+ "Background": "Achtergrond",
59
+ "Window": "Venster",
60
+ "Transparent": "Transparant",
61
+ "Semi-Transparent": "Semi-transparant",
62
+ "Opaque": "Ondoorzichtig",
63
+ "Font Size": "Lettergrootte",
64
+ "Text Edge Style": "Stijl tekstrand",
65
+ "None": "Geen",
66
+ "Raised": "Verhoogd",
67
+ "Depressed": "Ingedrukt",
68
+ "Uniform": "Uniform",
69
+ "Dropshadow": "Schaduw",
70
+ "Font Family": "Lettertype",
71
+ "Proportional Sans-Serif": "Proportioneel sans-serif",
72
+ "Monospace Sans-Serif": "Monospace sans-serif",
73
+ "Proportional Serif": "Proportioneel serif",
74
+ "Monospace Serif": "Monospace serif",
75
+ "Casual": "Luchtig",
76
+ "Script": "Script",
77
+ "Small Caps": "Kleine hoofdletters",
78
+ "Reset": "Herstellen",
79
+ "restore all settings to the default values": "alle instellingen naar de standaardwaarden herstellen",
80
+ "Done": "Klaar",
81
+ "Caption Settings Dialog": "Venster voor bijschriften-instellingen",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Begin van dialoogvenster. Escape zal annuleren en het venster sluiten.",
83
+ "End of dialog window.": "Einde van dialoogvenster."
84
+ }
public/assets/player/videojs/lang/nn.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('nn', {
2
+ "Play": "Spel",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration": "Varigheit",
6
+ "Remaining Time": "Tid attende",
7
+ "Stream Type": "Type straum",
8
+ "LIVE": "DIREKTE",
9
+ "Loaded": "Lasta inn",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fullskjerm",
12
+ "Non-Fullscreen": "Stenga fullskjerm",
13
+ "Mute": "Ljod av",
14
+ "Unmute": "Ljod på",
15
+ "Playback Rate": "Avspelingsrate",
16
+ "Subtitles": "Teksting på",
17
+ "subtitles off": "Teksting av",
18
+ "Captions": "Teksting for høyrselshemma på",
19
+ "captions off": "Teksting for høyrselshemma av",
20
+ "Chapters": "Kapitel",
21
+ "You aborted the media playback": "Du avbraut avspelinga.",
22
+ "A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
25
+ "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
+ });
public/assets/player/videojs/lang/nn.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Spel",
3
+ "Pause": "Pause",
4
+ "Current Time": "Aktuell tid",
5
+ "Duration": "Varigheit",
6
+ "Remaining Time": "Tid attende",
7
+ "Stream Type": "Type straum",
8
+ "LIVE": "DIREKTE",
9
+ "Loaded": "Lasta inn",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Fullskjerm",
12
+ "Non-Fullscreen": "Stenga fullskjerm",
13
+ "Mute": "Ljod av",
14
+ "Unmute": "Ljod på",
15
+ "Playback Rate": "Avspelingsrate",
16
+ "Subtitles": "Teksting på",
17
+ "subtitles off": "Teksting av",
18
+ "Captions": "Teksting for høyrselshemma på",
19
+ "captions off": "Teksting for høyrselshemma av",
20
+ "Chapters": "Kapitel",
21
+ "You aborted the media playback": "Du avbraut avspelinga.",
22
+ "A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
25
+ "No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
26
+ }
public/assets/player/videojs/lang/oc.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('oc', {
2
+ "Audio Player": "Lector àudio",
3
+ "Video Player": "Lector vidèo",
4
+ "Play": "Lectura",
5
+ "Pause": "Pausa",
6
+ "Replay": "Tornar legir",
7
+ "Current Time": "Durada passada",
8
+ "Duration": "Durada",
9
+ "Remaining Time": "Temps restant",
10
+ "Stream Type": "Tipe de difusion",
11
+ "LIVE": "DIRÈCTE",
12
+ "Seek to live, currently behind live": "Trapar lo dirècte, actualament darrièr lo dirècte",
13
+ "Seek to live, currently playing live": "Trapar lo dirècte, actualament lo dirècte es en lectura",
14
+ "Loaded": "Cargat",
15
+ "Progress": "Progression",
16
+ "Progress Bar": "Barra de progression",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} sus {2}",
18
+ "Fullscreen": "Ecran complèt",
19
+ "Non-Fullscreen": "Pas en ecran complèt",
20
+ "Mute": "Copar lo son",
21
+ "Unmute": "Restablir lo son",
22
+ "Playback Rate": "Velocitat de lectura",
23
+ "Subtitles": "Sostítols",
24
+ "subtitles off": "Sostítols desactivats",
25
+ "Captions": "Legendas",
26
+ "captions off": "Legendas desactivadas",
27
+ "Chapters": "Capítols",
28
+ "Descriptions": "Descripcions",
29
+ "descriptions off": "descripcions desactivadas",
30
+ "Audio Track": "Pista àudio",
31
+ "Volume Level": "Nivèl del volum",
32
+ "You aborted the media playback": "Avètz copat la lectura del mèdia.",
33
+ "A network error caused the media download to fail part-way.": "Una error de ret a provocat un fracàs del telecargament.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Lo mèdia a pas pogut èsser cargat, siá perque lo servidor o lo ret a fracassat siá perque lo format es pas compatible.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lectura del mèdia es copada a causa d’un problèma de corrupcion o perque lo mèdia utiliza de foncionalitats pas suportadas pel navigador.",
36
+ "No compatible source was found for this media.": "Cap de font compatiblas pas trobada per aqueste mèdia.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "Lo mèdia es chifrat e avèm pas las claus per lo deschifrar.",
38
+ "Play Video": "Legir la vidèo",
39
+ "Close": "Tampar",
40
+ "Close Modal Dialog": "Tampar la fenèstra",
41
+ "Modal Window": "Fenèstra",
42
+ "This is a modal window": "Aquò es una fenèstra",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Aquesta fenèstra pòt èsser tampada en quichar Escapar sul clavièr o en activar lo boton de tampadura.",
44
+ ", opens captions settings dialog": ", dobrís la fenèstra de paramètres de legendas",
45
+ ", opens subtitles settings dialog": ", dobrís la fenèstra de paramètres de sostítols",
46
+ ", opens descriptions settings dialog": ", dobrís la fenèstra de paramètres de descripcions",
47
+ ", selected": ", seleccionat",
48
+ "captions settings": "paramètres de legendas",
49
+ "subtitles settings": "paramètres de sostítols",
50
+ "descriptions settings": "paramètres de descripcions",
51
+ "Text": "Tèxte",
52
+ "White": "Blanc",
53
+ "Black": "Negre",
54
+ "Red": "Roge",
55
+ "Green": "Verd",
56
+ "Blue": "Blau",
57
+ "Yellow": "Jaune",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Cian",
60
+ "Background": "Rèireplan",
61
+ "Window": "Fenèstra",
62
+ "Transparent": "Transparent",
63
+ "Semi-Transparent": "Semitransparent",
64
+ "Opaque": "Opac",
65
+ "Font Size": "Talha de la polissa",
66
+ "Text Edge Style": "Estil dels contorns del tèxte",
67
+ "None": "Cap",
68
+ "Raised": "Naut",
69
+ "Depressed": "Enfonsat",
70
+ "Uniform": "Unifòrme",
71
+ "Dropshadow": "Ombrat",
72
+ "Font Family": "Familha de polissa",
73
+ "Proportional Sans-Serif": "Sans-Serif proporcionala",
74
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
75
+ "Proportional Serif": "Serif proporcionala",
76
+ "Monospace Serif": "Serif proporcionala",
77
+ "Casual": "Manuscrita",
78
+ "Script": "Script",
79
+ "Small Caps": "Pichonas majusculas",
80
+ "Reset": "Reïnicializar",
81
+ "restore all settings to the default values": "O restablir tot a las valors per defaut",
82
+ "Done": "Acabat",
83
+ "Caption Settings Dialog": "Fenèstra de paramètres de legenda",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Debuta de la fenèstra. Escapar anullarà e tamparà la fenèstra",
85
+ "End of dialog window.": "Fin de la fenèstra.",
86
+ "{1} is loading.": "{1} es a cargar."
87
+ });
public/assets/player/videojs/lang/oc.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Lector àudio",
3
+ "Video Player": "Lector vidèo",
4
+ "Play": "Lectura",
5
+ "Pause": "Pausa",
6
+ "Replay": "Tornar legir",
7
+ "Current Time": "Durada passada",
8
+ "Duration": "Durada",
9
+ "Remaining Time": "Temps restant",
10
+ "Stream Type": "Tipe de difusion",
11
+ "LIVE": "DIRÈCTE",
12
+ "Seek to live, currently behind live": "Trapar lo dirècte, actualament darrièr lo dirècte",
13
+ "Seek to live, currently playing live": "Trapar lo dirècte, actualament lo dirècte es en lectura",
14
+ "Loaded": "Cargat",
15
+ "Progress": "Progression",
16
+ "Progress Bar": "Barra de progression",
17
+ "progress bar timing: currentTime={1} duration={2}": "{1} sus {2}",
18
+ "Fullscreen": "Ecran complèt",
19
+ "Non-Fullscreen": "Pas en ecran complèt",
20
+ "Mute": "Copar lo son",
21
+ "Unmute": "Restablir lo son",
22
+ "Playback Rate": "Velocitat de lectura",
23
+ "Subtitles": "Sostítols",
24
+ "subtitles off": "Sostítols desactivats",
25
+ "Captions": "Legendas",
26
+ "captions off": "Legendas desactivadas",
27
+ "Chapters": "Capítols",
28
+ "Descriptions": "Descripcions",
29
+ "descriptions off": "descripcions desactivadas",
30
+ "Audio Track": "Pista àudio",
31
+ "Volume Level": "Nivèl del volum",
32
+ "You aborted the media playback": "Avètz copat la lectura del mèdia.",
33
+ "A network error caused the media download to fail part-way.": "Una error de ret a provocat un fracàs del telecargament.",
34
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Lo mèdia a pas pogut èsser cargat, siá perque lo servidor o lo ret a fracassat siá perque lo format es pas compatible.",
35
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lectura del mèdia es copada a causa d’un problèma de corrupcion o perque lo mèdia utiliza de foncionalitats pas suportadas pel navigador.",
36
+ "No compatible source was found for this media.": "Cap de font compatiblas pas trobada per aqueste mèdia.",
37
+ "The media is encrypted and we do not have the keys to decrypt it.": "Lo mèdia es chifrat e avèm pas las claus per lo deschifrar.",
38
+ "Play Video": "Legir la vidèo",
39
+ "Close": "Tampar",
40
+ "Close Modal Dialog": "Tampar la fenèstra",
41
+ "Modal Window": "Fenèstra",
42
+ "This is a modal window": "Aquò es una fenèstra",
43
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Aquesta fenèstra pòt èsser tampada en quichar Escapar sul clavièr o en activar lo boton de tampadura.",
44
+ ", opens captions settings dialog": ", dobrís la fenèstra de paramètres de legendas",
45
+ ", opens subtitles settings dialog": ", dobrís la fenèstra de paramètres de sostítols",
46
+ ", opens descriptions settings dialog": ", dobrís la fenèstra de paramètres de descripcions",
47
+ ", selected": ", seleccionat",
48
+ "captions settings": "paramètres de legendas",
49
+ "subtitles settings": "paramètres de sostítols",
50
+ "descriptions settings": "paramètres de descripcions",
51
+ "Text": "Tèxte",
52
+ "White": "Blanc",
53
+ "Black": "Negre",
54
+ "Red": "Roge",
55
+ "Green": "Verd",
56
+ "Blue": "Blau",
57
+ "Yellow": "Jaune",
58
+ "Magenta": "Magenta",
59
+ "Cyan": "Cian",
60
+ "Background": "Rèireplan",
61
+ "Window": "Fenèstra",
62
+ "Transparent": "Transparent",
63
+ "Semi-Transparent": "Semitransparent",
64
+ "Opaque": "Opac",
65
+ "Font Size": "Talha de la polissa",
66
+ "Text Edge Style": "Estil dels contorns del tèxte",
67
+ "None": "Cap",
68
+ "Raised": "Naut",
69
+ "Depressed": "Enfonsat",
70
+ "Uniform": "Unifòrme",
71
+ "Dropshadow": "Ombrat",
72
+ "Font Family": "Familha de polissa",
73
+ "Proportional Sans-Serif": "Sans-Serif proporcionala",
74
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
75
+ "Proportional Serif": "Serif proporcionala",
76
+ "Monospace Serif": "Serif proporcionala",
77
+ "Casual": "Manuscrita",
78
+ "Script": "Script",
79
+ "Small Caps": "Pichonas majusculas",
80
+ "Reset": "Reïnicializar",
81
+ "restore all settings to the default values": "O restablir tot a las valors per defaut",
82
+ "Done": "Acabat",
83
+ "Caption Settings Dialog": "Fenèstra de paramètres de legenda",
84
+ "Beginning of dialog window. Escape will cancel and close the window.": "Debuta de la fenèstra. Escapar anullarà e tamparà la fenèstra",
85
+ "End of dialog window.": "Fin de la fenèstra.",
86
+ "{1} is loading.": "{1} es a cargar."
87
+ }
public/assets/player/videojs/lang/pl.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('pl', {
2
+ "Play": "Odtwarzaj",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Aktualny czas",
5
+ "Duration": "Czas trwania",
6
+ "Remaining Time": "Pozostały czas",
7
+ "Stream Type": "Typ strumienia",
8
+ "LIVE": "NA ŻYWO",
9
+ "Loaded": "Załadowany",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Pełny ekran",
12
+ "Non-Fullscreen": "Pełny ekran niedostępny",
13
+ "Mute": "Wyłącz dźwięk",
14
+ "Unmute": "Włącz dźwięk",
15
+ "Playback Rate": "Szybkość odtwarzania",
16
+ "Subtitles": "Napisy",
17
+ "subtitles off": "Napisy wyłączone",
18
+ "Captions": "Transkrypcja",
19
+ "captions off": "Transkrypcja wyłączona",
20
+ "Chapters": "Rozdziały",
21
+ "You aborted the media playback": "Odtwarzanie zostało przerwane",
22
+ "A network error caused the media download to fail part-way.": "Problemy z siecią spowodowały błąd przy pobieraniu materiału wideo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Materiał wideo nie może być załadowany, ponieważ wystąpił problem z siecią lub format nie jest obsługiwany",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Odtwarzanie materiału wideo zostało przerwane z powodu uszkodzonego pliku wideo lub z powodu błędu funkcji, które nie są wspierane przez przeglądarkę.",
25
+ "No compatible source was found for this media.": "Dla tego materiału wideo nie znaleziono kompatybilnego źródła.",
26
+ "Play Video": "Odtwarzaj wideo",
27
+ "Close": "Zamknij",
28
+ "Modal Window": "Okno Modala",
29
+ "This is a modal window": "To jest okno modala",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Ten modal możesz zamknąć naciskając przycisk Escape albo wybierając przycisk Zamknij.",
31
+ ", opens captions settings dialog": ", otwiera okno dialogowe ustawień transkrypcji",
32
+ ", opens subtitles settings dialog": ", otwiera okno dialogowe napisów",
33
+ ", selected": ", zaznaczone"
34
+ });
public/assets/player/videojs/lang/pl.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Odtwarzaj",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Aktualny czas",
5
+ "Duration": "Czas trwania",
6
+ "Remaining Time": "Pozostały czas",
7
+ "Stream Type": "Typ strumienia",
8
+ "LIVE": "NA ŻYWO",
9
+ "Loaded": "Załadowany",
10
+ "Progress": "Status",
11
+ "Fullscreen": "Pełny ekran",
12
+ "Non-Fullscreen": "Pełny ekran niedostępny",
13
+ "Mute": "Wyłącz dźwięk",
14
+ "Unmute": "Włącz dźwięk",
15
+ "Playback Rate": "Szybkość odtwarzania",
16
+ "Subtitles": "Napisy",
17
+ "subtitles off": "Napisy wyłączone",
18
+ "Captions": "Transkrypcja",
19
+ "captions off": "Transkrypcja wyłączona",
20
+ "Chapters": "Rozdziały",
21
+ "You aborted the media playback": "Odtwarzanie zostało przerwane",
22
+ "A network error caused the media download to fail part-way.": "Problemy z siecią spowodowały błąd przy pobieraniu materiału wideo.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Materiał wideo nie może być załadowany, ponieważ wystąpił problem z siecią lub format nie jest obsługiwany",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Odtwarzanie materiału wideo zostało przerwane z powodu uszkodzonego pliku wideo lub z powodu błędu funkcji, które nie są wspierane przez przeglądarkę.",
25
+ "No compatible source was found for this media.": "Dla tego materiału wideo nie znaleziono kompatybilnego źródła.",
26
+ "Play Video": "Odtwarzaj wideo",
27
+ "Close": "Zamknij",
28
+ "Modal Window": "Okno Modala",
29
+ "This is a modal window": "To jest okno modala",
30
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Ten modal możesz zamknąć naciskając przycisk Escape albo wybierając przycisk Zamknij.",
31
+ ", opens captions settings dialog": ", otwiera okno dialogowe ustawień transkrypcji",
32
+ ", opens subtitles settings dialog": ", otwiera okno dialogowe napisów",
33
+ ", selected": ", zaznaczone"
34
+ }
public/assets/player/videojs/lang/pt-BR.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('pt-BR', {
2
+ "Audio Player": "Reprodutor de áudio",
3
+ "Video Player": "Reprodutor de vídeo",
4
+ "Play": "Tocar",
5
+ "Pause": "Pausar",
6
+ "Replay": "Tocar novamente",
7
+ "Current Time": "Tempo",
8
+ "Duration": "Duração",
9
+ "Remaining Time": "Tempo Restante",
10
+ "Stream Type": "Tipo de Stream",
11
+ "LIVE": "AO VIVO",
12
+ "Loaded": "Carregado",
13
+ "Progress": "Progresso",
14
+ "Progress Bar": "Barra de progresso",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
16
+ "Fullscreen": "Tela Cheia",
17
+ "Non-Fullscreen": "Tela Normal",
18
+ "Mute": "Mudo",
19
+ "Unmute": "Habilitar Som",
20
+ "Playback Rate": "Velocidade",
21
+ "Subtitles": "Legendas",
22
+ "subtitles off": "Sem Legendas",
23
+ "Captions": "Anotações",
24
+ "captions off": "Sem Anotações",
25
+ "Chapters": "Capítulos",
26
+ "Descriptions": "Descrições",
27
+ "descriptions off": "sem descrições",
28
+ "Audio Track": "Faixa de áudio",
29
+ "Volume Level": "Nível de volume",
30
+ "You aborted the media playback": "Você parou a execução do vídeo.",
31
+ "A network error caused the media download to fail part-way.": "Um erro na rede causou falha durante o download da mídia.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "A mídia não pode ser carregada, por uma falha de rede ou servidor ou o formato não é suportado.",
33
+ "No compatible source was found for this media.": "Nenhuma fonte foi encontrada para esta mídia.",
34
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A reprodução foi interrompida devido à um problema de mídia corrompida ou porque a mídia utiliza funções que seu navegador não suporta.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "A mídia está criptografada e não temos as chaves para descriptografar.",
36
+ "Play Video": "Tocar Vídeo",
37
+ "Close": "Fechar",
38
+ "Close Modal Dialog": "Fechar Diálogo Modal",
39
+ "Modal Window": "Janela Modal",
40
+ "This is a modal window": "Isso é uma janela-modal",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Esta janela pode ser fechada pressionando a tecla de Escape.",
42
+ ", opens captions settings dialog": ", abre as configurações de legendas de comentários",
43
+ ", opens subtitles settings dialog": ", abre as configurações de legendas",
44
+ ", opens descriptions settings dialog": ", abre as configurações",
45
+ ", selected": ", selecionada",
46
+ "captions settings": "configurações de legendas de comentários",
47
+ "subtitles settings": "configurações de legendas",
48
+ "descriptions settings": "configurações das descrições",
49
+ "Text": "Texto",
50
+ "White": "Branco",
51
+ "Black": "Preto",
52
+ "Red": "Vermelho",
53
+ "Green": "Verde",
54
+ "Blue": "Azul",
55
+ "Yellow": "Amarelo",
56
+ "Magenta": "Magenta",
57
+ "Cyan": "Ciano",
58
+ "Background": "Plano-de-Fundo",
59
+ "Window": "Janela",
60
+ "Transparent": "Transparente",
61
+ "Semi-Transparent": "Semi-Transparente",
62
+ "Opaque": "Opaco",
63
+ "Font Size": "Tamanho da Fonte",
64
+ "Text Edge Style": "Estilo da Borda",
65
+ "None": "Nenhum",
66
+ "Raised": "Elevado",
67
+ "Depressed": "Acachapado",
68
+ "Uniform": "Uniforme",
69
+ "Dropshadow": "Sombra de projeção",
70
+ "Font Family": "Família da Fonte",
71
+ "Proportional Sans-Serif": "Sans-Serif(Sem serifa) Proporcional",
72
+ "Monospace Sans-Serif": "Sans-Serif(Sem serifa) Monoespaçada",
73
+ "Proportional Serif": "Serifa Proporcional",
74
+ "Monospace Serif": "Serifa Monoespaçada",
75
+ "Casual": "Casual",
76
+ "Script": "Script",
77
+ "Small Caps": "Maiúsculas Pequenas",
78
+ "Reset": "Redefinir",
79
+ "restore all settings to the default values": "restaurar todas as configurações aos valores padrão",
80
+ "Done": "Salvar",
81
+ "Caption Settings Dialog": "Caíxa-de-Diálogo das configurações de Legendas",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Iniciando a Janela-de-Diálogo. Pressionar Escape irá cancelar e fechar a janela.",
83
+ "End of dialog window.": "Fim da Janela-de-Diálogo",
84
+ "{1} is loading.": "{1} está carregando."
85
+ });
public/assets/player/videojs/lang/pt-BR.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Reprodutor de áudio",
3
+ "Video Player": "Reprodutor de vídeo",
4
+ "Play": "Tocar",
5
+ "Pause": "Pausar",
6
+ "Replay": "Tocar novamente",
7
+ "Current Time": "Tempo",
8
+ "Duration": "Duração",
9
+ "Remaining Time": "Tempo Restante",
10
+ "Stream Type": "Tipo de Stream",
11
+ "LIVE": "AO VIVO",
12
+ "Loaded": "Carregado",
13
+ "Progress": "Progresso",
14
+ "Progress Bar": "Barra de progresso",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} de {2}",
16
+ "Fullscreen": "Tela Cheia",
17
+ "Non-Fullscreen": "Tela Normal",
18
+ "Mute": "Mudo",
19
+ "Unmute": "Habilitar Som",
20
+ "Playback Rate": "Velocidade",
21
+ "Subtitles": "Legendas",
22
+ "subtitles off": "Sem Legendas",
23
+ "Captions": "Anotações",
24
+ "captions off": "Sem Anotações",
25
+ "Chapters": "Capítulos",
26
+ "Descriptions": "Descrições",
27
+ "descriptions off": "sem descrições",
28
+ "Audio Track": "Faixa de áudio",
29
+ "Volume Level": "Nível de volume",
30
+ "You aborted the media playback": "Você parou a execução do vídeo.",
31
+ "A network error caused the media download to fail part-way.": "Um erro na rede causou falha durante o download da mídia.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "A mídia não pode ser carregada, por uma falha de rede ou servidor ou o formato não é suportado.",
33
+ "No compatible source was found for this media.": "Não foi encontrada fonte de mídia compatível.",
34
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A reprodução foi interrompida devido à um problema de mídia corrompida ou porque a mídia utiliza funções que seu navegador não suporta.",
35
+ "No compatible source was found for this media.": "Nenhuma fonte foi encontrada para esta mídia.",
36
+ "The media is encrypted and we do not have the keys to decrypt it.": "A mídia está criptografada e não temos as chaves para descriptografar.",
37
+ "Play Video": "Tocar Vídeo",
38
+ "Close": "Fechar",
39
+ "Close Modal Dialog": "Fechar Diálogo Modal",
40
+ "Modal Window": "Janela Modal",
41
+ "This is a modal window": "Isso é uma janela-modal",
42
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Esta janela pode ser fechada pressionando a tecla de Escape.",
43
+ ", opens captions settings dialog": ", abre as configurações de legendas de comentários",
44
+ ", opens subtitles settings dialog": ", abre as configurações de legendas",
45
+ ", opens descriptions settings dialog": ", abre as configurações",
46
+ ", selected": ", selecionada",
47
+ "captions settings": "configurações de legendas de comentários",
48
+ "subtitles settings": "configurações de legendas",
49
+ "descriptions settings": "configurações das descrições",
50
+ "Text": "Texto",
51
+ "White": "Branco",
52
+ "Black": "Preto",
53
+ "Red": "Vermelho",
54
+ "Green": "Verde",
55
+ "Blue": "Azul",
56
+ "Yellow": "Amarelo",
57
+ "Magenta": "Magenta",
58
+ "Cyan": "Ciano",
59
+ "Background": "Plano-de-Fundo",
60
+ "Window": "Janela",
61
+ "Transparent": "Transparente",
62
+ "Semi-Transparent": "Semi-Transparente",
63
+ "Opaque": "Opaco",
64
+ "Font Size": "Tamanho da Fonte",
65
+ "Text Edge Style": "Estilo da Borda",
66
+ "None": "Nenhum",
67
+ "Raised": "Elevado",
68
+ "Depressed": "Acachapado",
69
+ "Uniform": "Uniforme",
70
+ "Dropshadow": "Sombra de projeção",
71
+ "Font Family": "Família da Fonte",
72
+ "Proportional Sans-Serif": "Sans-Serif(Sem serifa) Proporcional",
73
+ "Monospace Sans-Serif": "Sans-Serif(Sem serifa) Monoespaçada",
74
+ "Proportional Serif": "Serifa Proporcional",
75
+ "Monospace Serif": "Serifa Monoespaçada",
76
+ "Casual": "Casual",
77
+ "Script": "Script",
78
+ "Small Caps": "Maiúsculas Pequenas",
79
+ "Reset": "Redefinir",
80
+ "restore all settings to the default values": "restaurar todas as configurações aos valores padrão",
81
+ "Done": "Salvar",
82
+ "Caption Settings Dialog": "Caíxa-de-Diálogo das configurações de Legendas",
83
+ "Beginning of dialog window. Escape will cancel and close the window.": "Iniciando a Janela-de-Diálogo. Pressionar Escape irá cancelar e fechar a janela.",
84
+ "End of dialog window.": "Fim da Janela-de-Diálogo",
85
+ "{1} is loading.": "{1} está carregando."
86
+ }
public/assets/player/videojs/lang/pt-PT.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('pt-PT', {
2
+ "Play": "Reproduzir",
3
+ "Pause": "Parar",
4
+ "Replay": "Reiniciar",
5
+ "Current Time": "Tempo Atual",
6
+ "Duration": "Duração",
7
+ "Remaining Time": "Tempo Restante",
8
+ "Stream Type": "Tipo de Stream",
9
+ "LIVE": "EM DIRETO",
10
+ "Loaded": "Carregado",
11
+ "Progress": "Progresso",
12
+ "Fullscreen": "Ecrã inteiro",
13
+ "Non-Fullscreen": "Ecrã normal",
14
+ "Mute": "Desativar som",
15
+ "Unmute": "Ativar som",
16
+ "Playback Rate": "Velocidade de reprodução",
17
+ "Subtitles": "Legendas",
18
+ "subtitles off": "desativar legendas",
19
+ "Captions": "Anotações",
20
+ "captions off": "desativar anotações",
21
+ "Chapters": "Capítulos",
22
+ "Close Modal Dialog": "Fechar Janela Modal",
23
+ "Descriptions": "Descrições",
24
+ "descriptions off": "desativar descrições",
25
+ "Audio Track": "Faixa Áudio",
26
+ "You aborted the media playback": "Parou a reprodução do vídeo.",
27
+ "A network error caused the media download to fail part-way.": "Um erro na rede fez o vídeo falhar parcialmente.",
28
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "O vídeo não pode ser carregado, ou porque houve um problema na rede ou no servidor, ou porque formato do vídeo não é compatível.",
29
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A reprodução foi interrompida por um problema com o vídeo ou porque o formato não é compatível com o seu navegador.",
30
+ "No compatible source was found for this media.": "Não foi encontrada uma fonte de vídeo compatível.",
31
+ "The media is encrypted and we do not have the keys to decrypt it.": "O vídeo está encriptado e não há uma chave para o desencriptar.",
32
+ "Play Video": "Reproduzir Vídeo",
33
+ "Close": "Fechar",
34
+ "Modal Window": "Janela Modal",
35
+ "This is a modal window": "Isto é uma janela modal",
36
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Esta modal pode ser fechada pressionando a tecla ESC ou ativando o botão de fechar.",
37
+ ", opens captions settings dialog": ", abre janela com definições de legendas",
38
+ ", opens subtitles settings dialog": ", abre janela com definições de legendas",
39
+ ", opens descriptions settings dialog": ", abre janela com definições de descrições",
40
+ ", selected": ", seleccionado"
41
+ });
public/assets/player/videojs/lang/pt-PT.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Reproduzir",
3
+ "Pause": "Parar",
4
+ "Replay": "Reiniciar",
5
+ "Current Time": "Tempo Atual",
6
+ "Duration": "Duração",
7
+ "Remaining Time": "Tempo Restante",
8
+ "Stream Type": "Tipo de Stream",
9
+ "LIVE": "EM DIRETO",
10
+ "Loaded": "Carregado",
11
+ "Progress": "Progresso",
12
+ "Fullscreen": "Ecrã inteiro",
13
+ "Non-Fullscreen": "Ecrã normal",
14
+ "Mute": "Desativar som",
15
+ "Unmute": "Ativar som",
16
+ "Playback Rate": "Velocidade de reprodução",
17
+ "Subtitles": "Legendas",
18
+ "subtitles off": "desativar legendas",
19
+ "Captions": "Anotações",
20
+ "captions off": "desativar anotações",
21
+ "Chapters": "Capítulos",
22
+ "Close Modal Dialog": "Fechar Janela Modal",
23
+ "Descriptions": "Descrições",
24
+ "descriptions off": "desativar descrições",
25
+ "Audio Track": "Faixa Áudio",
26
+ "You aborted the media playback": "Parou a reprodução do vídeo.",
27
+ "A network error caused the media download to fail part-way.": "Um erro na rede fez o vídeo falhar parcialmente.",
28
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "O vídeo não pode ser carregado, ou porque houve um problema na rede ou no servidor, ou porque formato do vídeo não é compatível.",
29
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A reprodução foi interrompida por um problema com o vídeo ou porque o formato não é compatível com o seu navegador.",
30
+ "No compatible source was found for this media.": "Não foi encontrada uma fonte de vídeo compatível.",
31
+ "The media is encrypted and we do not have the keys to decrypt it.": "O vídeo está encriptado e não há uma chave para o desencriptar.",
32
+ "Play Video": "Reproduzir Vídeo",
33
+ "Close": "Fechar",
34
+ "Modal Window": "Janela Modal",
35
+ "This is a modal window": "Isto é uma janela modal",
36
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Esta modal pode ser fechada pressionando a tecla ESC ou ativando o botão de fechar.",
37
+ ", opens captions settings dialog": ", abre janela com definições de legendas",
38
+ ", opens subtitles settings dialog": ", abre janela com definições de legendas",
39
+ ", opens descriptions settings dialog": ", abre janela com definições de descrições",
40
+ ", selected": ", seleccionado"
41
+ }
public/assets/player/videojs/lang/ru.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('ru', {
2
+ "Audio Player": "Аудио проигрыватель",
3
+ "Video Player": "Видео проигрыватель",
4
+ "Play": "Воспроизвести",
5
+ "Pause": "Приостановить",
6
+ "Replay": "Воспроизвести снова",
7
+ "Current Time": "Текущее время",
8
+ "Duration": "Продолжительность",
9
+ "Remaining Time": "Оставшееся время",
10
+ "Stream Type": "Тип потока",
11
+ "LIVE": "ОНЛАЙН",
12
+ "Loaded": "Загрузка",
13
+ "Progress": "Прогресс",
14
+ "Progress Bar": "Индикатор загрузки",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} из {2}",
16
+ "Fullscreen": "Полноэкранный режим",
17
+ "Non-Fullscreen": "Неполноэкранный режим",
18
+ "Mute": "Без звука",
19
+ "Unmute": "Со звуком",
20
+ "Playback Rate": "Скорость воспроизведения",
21
+ "Subtitles": "Субтитры",
22
+ "subtitles off": "Субтитры выкл.",
23
+ "Captions": "Подписи",
24
+ "captions off": "Подписи выкл.",
25
+ "Chapters": "Главы",
26
+ "Descriptions": "Описания",
27
+ "descriptions off": "Отключить описания",
28
+ "Audio Track": "Звуковая дорожка",
29
+ "Volume Level": "Уровень громкости",
30
+ "You aborted the media playback": "Вы прервали воспроизведение видео",
31
+ "A network error caused the media download to fail part-way.": "Ошибка сети вызвала сбой во время загрузки видео.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Невозможно загрузить видео из-за сетевого или серверного сбоя либо формат не поддерживается.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Воспроизведение видео было приостановлено из-за повреждения либо в связи с тем, что видео использует функции, неподдерживаемые вашим браузером.",
34
+ "No compatible source was found for this media.": "Совместимые источники для этого видео отсутствуют.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Видео в зашифрованном виде, и у нас нет ключей для расшифровки.",
36
+ "Play Video": "Воспроизвести видео",
37
+ "Close": "Закрыть",
38
+ "Close Modal Dialog": "Закрыть модальное окно",
39
+ "Modal Window": "Модальное окно",
40
+ "This is a modal window": "Это модальное окно",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Модальное окно можно закрыть нажав Esc или кнопку закрытия окна.",
42
+ ", opens captions settings dialog": ", откроется диалог настройки подписей",
43
+ ", opens subtitles settings dialog": ", откроется диалог настройки субтитров",
44
+ ", opens descriptions settings dialog": ", откроется диалог настройки описаний",
45
+ ", selected": ", выбрано",
46
+ "captions settings": "настройки подписей",
47
+ "subtitles settings": "настройки субтитров",
48
+ "descriptions settings": "настройки описаний",
49
+ "Text": "Текст",
50
+ "White": "Белый",
51
+ "Black": "Черный",
52
+ "Red": "Красный",
53
+ "Green": "Зеленый",
54
+ "Blue": "Синий",
55
+ "Yellow": "Желтый",
56
+ "Magenta": "Пурпурный",
57
+ "Cyan": "Голубой",
58
+ "Background": "Фон",
59
+ "Window": "Окно",
60
+ "Transparent": "Прозрачный",
61
+ "Semi-Transparent": "Полупрозрачный",
62
+ "Opaque": "Прозрачность",
63
+ "Font Size": "Размер шрифта",
64
+ "Text Edge Style": "Стиль края текста",
65
+ "None": "Ничего",
66
+ "Raised": "Поднятый",
67
+ "Depressed": "Пониженный",
68
+ "Uniform": "Одинаковый",
69
+ "Dropshadow": "Тень",
70
+ "Font Family": "Шрифт",
71
+ "Proportional Sans-Serif": "Пропорциональный без засечек",
72
+ "Monospace Sans-Serif": "Моноширинный без засечек",
73
+ "Proportional Serif": "Пропорциональный с засечками",
74
+ "Monospace Serif": "Моноширинный с засечками",
75
+ "Casual": "Случайный",
76
+ "Script": "Письменный",
77
+ "Small Caps": "Малые прописные",
78
+ "Reset": "Сбросить",
79
+ "restore all settings to the default values": "сбросить все найстройки по умолчанию",
80
+ "Done": "Готово",
81
+ "Caption Settings Dialog": "Диалог настроек подписи",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Начало диалоговго окна. Кнопка Escape закроет или отменит окно",
83
+ "End of dialog window.": "Конец диалогового окна.",
84
+ "{1} is loading.": "{1} загружается."
85
+ });
public/assets/player/videojs/lang/ru.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Аудио проигрыватель",
3
+ "Video Player": "Видео проигрыватель",
4
+ "Play": "Воспроизвести",
5
+ "Pause": "Приостановить",
6
+ "Replay": "Воспроизвести снова",
7
+ "Current Time": "Текущее время",
8
+ "Duration": "Продолжительность",
9
+ "Remaining Time": "Оставшееся время",
10
+ "Stream Type": "Тип потока",
11
+ "LIVE": "ОНЛАЙН",
12
+ "Loaded": "Загрузка",
13
+ "Progress": "Прогресс",
14
+ "Progress Bar": "Индикатор загрузки",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} из {2}",
16
+ "Fullscreen": "Полноэкранный режим",
17
+ "Non-Fullscreen": "Неполноэкранный режим",
18
+ "Mute": "Без звука",
19
+ "Unmute": "Со звуком",
20
+ "Playback Rate": "Скорость воспроизведения",
21
+ "Subtitles": "Субтитры",
22
+ "subtitles off": "Субтитры выкл.",
23
+ "Captions": "Подписи",
24
+ "captions off": "Подписи выкл.",
25
+ "Chapters": "Главы",
26
+ "Descriptions": "Описания",
27
+ "descriptions off": "Отключить описания",
28
+ "Audio Track": "Звуковая дорожка",
29
+ "Volume Level": "Уровень громкости",
30
+ "You aborted the media playback": "Вы прервали воспроизведение видео",
31
+ "A network error caused the media download to fail part-way.": "Ошибка сети вызвала сбой во время загрузки видео.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Невозможно загрузить видео из-за сетевого или серверного сбоя либо формат не поддерживается.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Воспроизведение видео было приостановлено из-за повреждения либо в связи с тем, что видео использует функции, неподдерживаемые вашим браузером.",
34
+ "No compatible source was found for this media.": "Совместимые источники для этого видео отсутствуют.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Видео в зашифрованном виде, и у нас нет ключей для расшифровки.",
36
+ "Play Video": "Воспроизвести видео",
37
+ "Close": "Закрыть",
38
+ "Close Modal Dialog": "Закрыть модальное окно",
39
+ "Modal Window": "Модальное окно",
40
+ "This is a modal window": "Это модальное окно",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Модальное окно можно закрыть нажав Esc или кнопку закрытия окна.",
42
+ ", opens captions settings dialog": ", откроется диалог настройки подписей",
43
+ ", opens subtitles settings dialog": ", откроется диалог настройки субтитров",
44
+ ", opens descriptions settings dialog": ", откроется диалог настройки описаний",
45
+ ", selected": ", выбрано",
46
+ "captions settings": "настройки подписей",
47
+ "subtitles settings": "настройки субтитров",
48
+ "descriptions settings": "настройки описаний",
49
+ "Text": "Текст",
50
+ "White": "Белый",
51
+ "Black": "Черный",
52
+ "Red": "Красный",
53
+ "Green": "Зеленый",
54
+ "Blue": "Синий",
55
+ "Yellow": "Желтый",
56
+ "Magenta": "Пурпурный",
57
+ "Cyan": "Голубой",
58
+ "Background": "Фон",
59
+ "Window": "Окно",
60
+ "Transparent": "Прозрачный",
61
+ "Semi-Transparent": "Полупрозрачный",
62
+ "Opaque": "Прозрачность",
63
+ "Font Size": "Размер шрифта",
64
+ "Text Edge Style": "Стиль края текста",
65
+ "None": "Ничего",
66
+ "Raised": "Поднятый",
67
+ "Depressed": "Пониженный",
68
+ "Uniform": "Одинаковый",
69
+ "Dropshadow": "Тень",
70
+ "Font Family": "Шрифт",
71
+ "Proportional Sans-Serif": "Пропорциональный без засечек",
72
+ "Monospace Sans-Serif": "Моноширинный без засечек",
73
+ "Proportional Serif": "Пропорциональный с засечками",
74
+ "Monospace Serif": "Моноширинный с засечками",
75
+ "Casual": "Случайный",
76
+ "Script": "Письменный",
77
+ "Small Caps": "Малые прописные",
78
+ "Reset": "Сбросить",
79
+ "restore all settings to the default values": "сбросить все найстройки по умолчанию",
80
+ "Done": "Готово",
81
+ "Caption Settings Dialog": "Диалог настроек подписи",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Начало диалоговго окна. Кнопка Escape закроет или отменит окно",
83
+ "End of dialog window.": "Конец диалогового окна.",
84
+ "{1} is loading.": "{1} загружается."
85
+ }
public/assets/player/videojs/lang/sk.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('sk', {
2
+ "Audio Player": "Zvukový prehrávač",
3
+ "Video Player": "Video prehrávač",
4
+ "Play": "Prehrať",
5
+ "Pause": "Pozastaviť",
6
+ "Replay": "Prehrať znova",
7
+ "Current Time": "Aktuálny čas",
8
+ "Duration": "Čas trvania",
9
+ "Remaining Time": "Zostávajúci čas",
10
+ "Stream Type": "Typ stopy",
11
+ "LIVE": "NAŽIVO",
12
+ "Loaded": "Načítané",
13
+ "Progress": "Priebeh",
14
+ "Progress Bar": "Ukazovateľ priebehu",
15
+ "progress bar timing: currentTime={1} duration={2}": "časovanie ukazovateľa priebehu: currentTime={1} duration={2}",
16
+ "Fullscreen": "Režim celej obrazovky",
17
+ "Non-Fullscreen": "Režim normálnej obrazovky",
18
+ "Mute": "Stlmiť",
19
+ "Unmute": "Zrušiť stlmenie",
20
+ "Playback Rate": "Rýchlosť prehrávania",
21
+ "Subtitles": "Titulky",
22
+ "subtitles off": "titulky vypnuté",
23
+ "Captions": "Popisky",
24
+ "captions off": "popisky vypnuté",
25
+ "Chapters": "Kapitoly",
26
+ "Descriptions": "Opisy",
27
+ "descriptions off": "opisy vypnuté",
28
+ "Audio Track": "Zvuková stopa",
29
+ "Volume Level": "Úroveň hlasitosti",
30
+ "You aborted the media playback": "Prerušili ste prehrávanie",
31
+ "A network error caused the media download to fail part-way.": "Sťahovanie súboru bolo zrušené pre chybu na sieti.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Súbor sa nepodarilo načítať pre chybu servera, sieťového pripojenia, alebo je formát súboru nepodporovaný.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Prehrávanie súboru bolo prerušené pre poškodené dáta, alebo súbor používa vlastnosti, ktoré váš prehliadač nepodporuje.",
34
+ "No compatible source was found for this media.": "Nebol nájdený žiaden kompatibilný zdroj pre tento súbor.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Súbor je zašifrovaný a nie je k dispozícii kľúč na rozšifrovanie.",
36
+ "Play Video": "Prehrať video",
37
+ "Close": "Zatvoriť",
38
+ "Close Modal Dialog": "Zatvoriť modálne okno",
39
+ "Modal Window": "Modálne okno",
40
+ "This is a modal window": "Toto je modálne okno",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Toto modálne okno je možné zatvoriť stlačením klávesy Escape, alebo aktivovaním tlačidla na zatvorenie.",
42
+ ", opens captions settings dialog": ", otvorí okno nastavení popiskov",
43
+ ", opens subtitles settings dialog": ", otvorí okno nastavení titulkov",
44
+ ", opens descriptions settings dialog": ", otvorí okno nastavení opisov",
45
+ ", selected": ", označené",
46
+ "captions settings": "nastavenia popiskov",
47
+ "subtitles settings": "nastavenia titulkov",
48
+ "descriptions settings": "nastavenia opisov",
49
+ "Text": "Text",
50
+ "White": "Biela",
51
+ "Black": "Čierna",
52
+ "Red": "Červená",
53
+ "Green": "Zelená",
54
+ "Blue": "Modrá",
55
+ "Yellow": "Žltá",
56
+ "Magenta": "Ružová",
57
+ "Cyan": "Tyrkysová",
58
+ "Background": "Pozadie",
59
+ "Window": "Okno",
60
+ "Transparent": "Priesvitné",
61
+ "Semi-Transparent": "Polopriesvitné",
62
+ "Opaque": "Plné",
63
+ "Font Size": "Veľkosť písma",
64
+ "Text Edge Style": "Typ okrajov písma",
65
+ "None": "Žiadne",
66
+ "Raised": "Zvýšené",
67
+ "Depressed": "Znížené",
68
+ "Uniform": "Pravidelné",
69
+ "Dropshadow": "S tieňom",
70
+ "Font Family": "Typ písma",
71
+ "Proportional Sans-Serif": "Proporčné bezpätkové",
72
+ "Monospace Sans-Serif": "Pravidelné, bezpätkové",
73
+ "Proportional Serif": "Proporčné pätkové",
74
+ "Monospace Serif": "Pravidelné pätkové",
75
+ "Casual": "Bežné",
76
+ "Script": "Písané",
77
+ "Small Caps": "Malé kapitálky",
78
+ "Reset": "Resetovať",
79
+ "restore all settings to the default values": "všetky nastavenia na základné hodnoty",
80
+ "Done": "Hotovo",
81
+ "Caption Settings Dialog": "Okno nastavení popiskov",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Začiatok okna. Klávesa Escape zruší a zavrie okno.",
83
+ "End of dialog window.": "Koniec okna.",
84
+ "{1} is loading.": "{1} sa načíta."
85
+ });
public/assets/player/videojs/lang/sk.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Zvukový prehrávač",
3
+ "Video Player": "Video prehrávač",
4
+ "Play": "Prehrať",
5
+ "Pause": "Pozastaviť",
6
+ "Replay": "Prehrať znova",
7
+ "Current Time": "Aktuálny čas",
8
+ "Duration": "Čas trvania",
9
+ "Remaining Time": "Zostávajúci čas",
10
+ "Stream Type": "Typ stopy",
11
+ "LIVE": "NAŽIVO",
12
+ "Loaded": "Načítané",
13
+ "Progress": "Priebeh",
14
+ "Progress Bar": "Ukazovateľ priebehu",
15
+ "progress bar timing: currentTime={1} duration={2}": "časovanie ukazovateľa priebehu: currentTime={1} duration={2}",
16
+ "Fullscreen": "Režim celej obrazovky",
17
+ "Non-Fullscreen": "Režim normálnej obrazovky",
18
+ "Mute": "Stlmiť",
19
+ "Unmute": "Zrušiť stlmenie",
20
+ "Playback Rate": "Rýchlosť prehrávania",
21
+ "Subtitles": "Titulky",
22
+ "subtitles off": "titulky vypnuté",
23
+ "Captions": "Popisky",
24
+ "captions off": "popisky vypnuté",
25
+ "Chapters": "Kapitoly",
26
+ "Descriptions": "Opisy",
27
+ "descriptions off": "opisy vypnuté",
28
+ "Audio Track": "Zvuková stopa",
29
+ "Volume Level": "Úroveň hlasitosti",
30
+ "You aborted the media playback": "Prerušili ste prehrávanie",
31
+ "A network error caused the media download to fail part-way.": "Sťahovanie súboru bolo zrušené pre chybu na sieti.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Súbor sa nepodarilo načítať pre chybu servera, sieťového pripojenia, alebo je formát súboru nepodporovaný.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Prehrávanie súboru bolo prerušené pre poškodené dáta, alebo súbor používa vlastnosti, ktoré váš prehliadač nepodporuje.",
34
+ "No compatible source was found for this media.": "Nebol nájdený žiaden kompatibilný zdroj pre tento súbor.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Súbor je zašifrovaný a nie je k dispozícii kľúč na rozšifrovanie.",
36
+ "Play Video": "Prehrať video",
37
+ "Close": "Zatvoriť",
38
+ "Close Modal Dialog": "Zatvoriť modálne okno",
39
+ "Modal Window": "Modálne okno",
40
+ "This is a modal window": "Toto je modálne okno",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Toto modálne okno je možné zatvoriť stlačením klávesy Escape, alebo aktivovaním tlačidla na zatvorenie.",
42
+ ", opens captions settings dialog": ", otvorí okno nastavení popiskov",
43
+ ", opens subtitles settings dialog": ", otvorí okno nastavení titulkov",
44
+ ", opens descriptions settings dialog": ", otvorí okno nastavení opisov",
45
+ ", selected": ", označené",
46
+ "captions settings": "nastavenia popiskov",
47
+ "subtitles settings": "nastavenia titulkov",
48
+ "descriptions settings": "nastavenia opisov",
49
+ "Text": "Text",
50
+ "White": "Biela",
51
+ "Black": "Čierna",
52
+ "Red": "Červená",
53
+ "Green": "Zelená",
54
+ "Blue": "Modrá",
55
+ "Yellow": "Žltá",
56
+ "Magenta": "Ružová",
57
+ "Cyan": "Tyrkysová",
58
+ "Background": "Pozadie",
59
+ "Window": "Okno",
60
+ "Transparent": "Priesvitné",
61
+ "Semi-Transparent": "Polopriesvitné",
62
+ "Opaque": "Plné",
63
+ "Font Size": "Veľkosť písma",
64
+ "Text Edge Style": "Typ okrajov písma",
65
+ "None": "Žiadne",
66
+ "Raised": "Zvýšené",
67
+ "Depressed": "Znížené",
68
+ "Uniform": "Pravidelné",
69
+ "Dropshadow": "S tieňom",
70
+ "Font Family": "Typ písma",
71
+ "Proportional Sans-Serif": "Proporčné bezpätkové",
72
+ "Monospace Sans-Serif": "Pravidelné, bezpätkové",
73
+ "Proportional Serif": "Proporčné pätkové",
74
+ "Monospace Serif": "Pravidelné pätkové",
75
+ "Casual": "Bežné",
76
+ "Script": "Písané",
77
+ "Small Caps": "Malé kapitálky",
78
+ "Reset": "Resetovať",
79
+ "restore all settings to the default values": "všetky nastavenia na základné hodnoty",
80
+ "Done": "Hotovo",
81
+ "Caption Settings Dialog": "Okno nastavení popiskov",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Začiatok okna. Klávesa Escape zruší a zavrie okno.",
83
+ "End of dialog window.": "Koniec okna.",
84
+ "{1} is loading.": "{1} sa načíta."
85
+ }
public/assets/player/videojs/lang/sr.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('sr', {
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vreme",
5
+ "Duration": "Vreme trajanja",
6
+ "Remaining Time": "Preostalo vreme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Pun ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili format nije podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
+ });
public/assets/player/videojs/lang/sr.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Pusti",
3
+ "Pause": "Pauza",
4
+ "Current Time": "Trenutno vreme",
5
+ "Duration": "Vreme trajanja",
6
+ "Remaining Time": "Preostalo vreme",
7
+ "Stream Type": "Način strimovanja",
8
+ "LIVE": "UŽIVO",
9
+ "Loaded": "Učitan",
10
+ "Progress": "Progres",
11
+ "Fullscreen": "Pun ekran",
12
+ "Non-Fullscreen": "Mali ekran",
13
+ "Mute": "Prigušen",
14
+ "Unmute": "Ne-prigušen",
15
+ "Playback Rate": "Stopa reprodukcije",
16
+ "Subtitles": "Podnaslov",
17
+ "subtitles off": "Podnaslov deaktiviran",
18
+ "Captions": "Titlovi",
19
+ "captions off": "Titlovi deaktivirani",
20
+ "Chapters": "Poglavlja",
21
+ "You aborted the media playback": "Isključili ste reprodukciju videa.",
22
+ "A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
23
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili format nije podržan.",
24
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
25
+ "No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
26
+ }
public/assets/player/videojs/lang/sv.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('sv', {
2
+ ", opens captions settings dialog": ", öppnar dialogruta för textning",
3
+ ", opens descriptions settings dialog": ", öppnar dialogruta för inställningar",
4
+ ", opens subtitles settings dialog": ", öppnar dialogruta för undertexter",
5
+ ", selected": ", vald",
6
+ "A network error caused the media download to fail part-way.": "Ett nätverksfel gjorde att nedladdningen av videon avbröts.",
7
+ "Audio Player": "Ljudspelare",
8
+ "Audio Track": "Ljudspår",
9
+ "Background": "Bakgrund",
10
+ "Beginning of dialog window. Escape will cancel and close the window.": "Början av dialogfönster. Escape avbryter och stänger fönstret.",
11
+ "Black": "Svart",
12
+ "Blue": "Blå",
13
+ "Caption Settings Dialog": "Dialogruta för textningsinställningar",
14
+ "Captions": "Text på",
15
+ "Casual": "Casual",
16
+ "Chapters": "Kapitel",
17
+ "Close": "Stäng",
18
+ "Close Modal Dialog": "Stäng dialogruta",
19
+ "Current Time": "Aktuell tid",
20
+ "Cyan": "Cyan",
21
+ "Depressed": "Deprimerad",
22
+ "Descriptions": "Beskrivningar",
23
+ "Done": "Klar",
24
+ "Dropshadow": "DropSkugga",
25
+ "Duration": "Total tid",
26
+ "End of dialog window.": "Slutet av dialogfönster.",
27
+ "Font Family": "Typsnittsfamilj",
28
+ "Font Size": "Textstorlek",
29
+ "Fullscreen": "Fullskärm",
30
+ "Green": "Grön",
31
+ "LIVE": "LIVE",
32
+ "Loaded": "Laddad",
33
+ "Magenta": "Magenta",
34
+ "Modal Window": "dialogruta",
35
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
36
+ "Monospace Serif": "Monospace Serif",
37
+ "Mute": "Ljud av",
38
+ "No compatible source was found for this media.": "Det gick inte att hitta någon kompatibel källa för den här videon.",
39
+ "Non-Fullscreen": "Ej fullskärm",
40
+ "None": "Ingen",
41
+ "Opaque": "Opak",
42
+ "Pause": "Pausa",
43
+ "Play": "Spela",
44
+ "Play Video": "Spela upp video",
45
+ "Playback Rate": "Uppspelningshastighet",
46
+ "Progress": "Förlopp",
47
+ "Progress Bar": "förloppsmätare",
48
+ "Proportional Sans-Serif": "Proportionell Sans-Serif",
49
+ "Proportional Serif": "Proportionell Serif",
50
+ "Raised": "Raised",
51
+ "Red": "Röd",
52
+ "Remaining Time": "Återstående tid",
53
+ "Replay": "Spela upp igen",
54
+ "Reset": "Återställ",
55
+ "Script": "Manus",
56
+ "Seek to live, currently behind live": "Återgå till live, uppspelningen är inte live",
57
+ "Seek to live, currently playing live": "Återgå till live, uppspelningen är live",
58
+ "Semi-Transparent": "Semi-transparent",
59
+ "Small Caps": "Small-Caps",
60
+ "Stream Type": "Strömningstyp",
61
+ "Subtitles": "Text på",
62
+ "Text": "Text",
63
+ "Text Edge Style": "Textkantstil",
64
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Det gick inte att ladda videon, antingen på grund av ett server- eller nätverksfel, eller för att formatet inte stöds.",
65
+ "The media is encrypted and we do not have the keys to decrypt it.": "Mediat är krypterat och vi har inte nycklarna för att dekryptera det.",
66
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Uppspelningen avbröts på grund av att videon är skadad, eller också för att videon använder funktioner som din webbläsare inte stöder.",
67
+ "This is a modal window": "Det här är ett dialogruta",
68
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Den här dialogrutan kan stängas genom att trycka på Escape-tangenten eller stäng knappen.",
69
+ "Transparent": "Transparent",
70
+ "Uniform": "Uniform",
71
+ "Unmute": "Ljud på",
72
+ "Video Player": "Videospelare",
73
+ "Volume Level": "Volymnivå",
74
+ "White": "Vit",
75
+ "Window": "Fönster",
76
+ "Yellow": "Gul",
77
+ "You aborted the media playback": "Du har avbrutit videouppspelningen.",
78
+ "captions off": "Text av",
79
+ "captions settings": "textningsinställningar",
80
+ "descriptions off": "beskrivningar av",
81
+ "descriptions settings": "beskrivningsinställningar",
82
+ "progress bar timing: currentTime={1} duration={2}": "{1} av {2}",
83
+ "restore all settings to the default values": "återställ alla inställningar till standardvärden",
84
+ "subtitles off": "Text av",
85
+ "subtitles settings": "undertextsinställningar",
86
+ "{1} is loading.": "{1} laddar."
87
+ });
public/assets/player/videojs/lang/sv.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ ", opens captions settings dialog": ", öppnar dialogruta för textning",
3
+ ", opens descriptions settings dialog": ", öppnar dialogruta för inställningar",
4
+ ", opens subtitles settings dialog": ", öppnar dialogruta för undertexter",
5
+ ", selected": ", vald",
6
+ "A network error caused the media download to fail part-way.": "Ett nätverksfel gjorde att nedladdningen av videon avbröts.",
7
+ "Audio Player": "Ljudspelare",
8
+ "Audio Track": "Ljudspår",
9
+ "Background": "Bakgrund",
10
+ "Beginning of dialog window. Escape will cancel and close the window.": "Början av dialogfönster. Escape avbryter och stänger fönstret.",
11
+ "Black": "Svart",
12
+ "Blue": "Blå",
13
+ "Caption Settings Dialog": "Dialogruta för textningsinställningar",
14
+ "Captions": "Text på",
15
+ "Casual": "Casual",
16
+ "Chapters": "Kapitel",
17
+ "Close": "Stäng",
18
+ "Close Modal Dialog": "Stäng dialogruta",
19
+ "Current Time": "Aktuell tid",
20
+ "Cyan": "Cyan",
21
+ "Depressed": "Deprimerad",
22
+ "Descriptions": "Beskrivningar",
23
+ "Done": "Klar",
24
+ "Dropshadow": "DropSkugga",
25
+ "Duration": "Total tid",
26
+ "End of dialog window.": "Slutet av dialogfönster.",
27
+ "Font Family": "Typsnittsfamilj",
28
+ "Font Size": "Textstorlek",
29
+ "Fullscreen": "Fullskärm",
30
+ "Green": "Grön",
31
+ "LIVE": "LIVE",
32
+ "Loaded": "Laddad",
33
+ "Magenta": "Magenta",
34
+ "Modal Window": "dialogruta",
35
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
36
+ "Monospace Serif": "Monospace Serif",
37
+ "Mute": "Ljud av",
38
+ "No compatible source was found for this media.": "Det gick inte att hitta någon kompatibel källa för den här videon.",
39
+ "Non-Fullscreen": "Ej fullskärm",
40
+ "None": "Ingen",
41
+ "Opaque": "Opak",
42
+ "Pause": "Pausa",
43
+ "Play": "Spela",
44
+ "Play Video": "Spela upp video",
45
+ "Playback Rate": "Uppspelningshastighet",
46
+ "Progress": "Förlopp",
47
+ "Progress Bar": "förloppsmätare",
48
+ "Proportional Sans-Serif": "Proportionell Sans-Serif",
49
+ "Proportional Serif": "Proportionell Serif",
50
+ "Raised": "Raised",
51
+ "Red": "Röd",
52
+ "Remaining Time": "Återstående tid",
53
+ "Replay": "Spela upp igen",
54
+ "Reset": "Återställ",
55
+ "Script": "Manus",
56
+ "Seek to live, currently behind live": "Återgå till live, uppspelningen är inte live",
57
+ "Seek to live, currently playing live": "Återgå till live, uppspelningen är live",
58
+ "Semi-Transparent": "Semi-transparent",
59
+ "Small Caps": "Small-Caps",
60
+ "Stream Type": "Strömningstyp",
61
+ "Subtitles": "Text på",
62
+ "Text": "Text",
63
+ "Text Edge Style": "Textkantstil",
64
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Det gick inte att ladda videon, antingen på grund av ett server- eller nätverksfel, eller för att formatet inte stöds.",
65
+ "The media is encrypted and we do not have the keys to decrypt it.": "Mediat är krypterat och vi har inte nycklarna för att dekryptera det.",
66
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Uppspelningen avbröts på grund av att videon är skadad, eller också för att videon använder funktioner som din webbläsare inte stöder.",
67
+ "This is a modal window": "Det här är ett dialogruta",
68
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Den här dialogrutan kan stängas genom att trycka på Escape-tangenten eller stäng knappen.",
69
+ "Transparent": "Transparent",
70
+ "Uniform": "Uniform",
71
+ "Unmute": "Ljud på",
72
+ "Video Player": "Videospelare",
73
+ "Volume Level": "Volymnivå",
74
+ "White": "Vit",
75
+ "Window": "Fönster",
76
+ "Yellow": "Gul",
77
+ "You aborted the media playback": "Du har avbrutit videouppspelningen.",
78
+ "captions off": "Text av",
79
+ "captions settings": "textningsinställningar",
80
+ "descriptions off": "beskrivningar av",
81
+ "descriptions settings": "beskrivningsinställningar",
82
+ "progress bar timing: currentTime={1} duration={2}": "{1} av {2}",
83
+ "restore all settings to the default values": "återställ alla inställningar till standardvärden",
84
+ "subtitles off": "Text av",
85
+ "subtitles settings": "undertextsinställningar",
86
+ "{1} is loading.": "{1} laddar."
87
+ }
public/assets/player/videojs/lang/tr.js ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('tr', {
2
+ "Play": "Oynat",
3
+ "Pause": "Duraklat",
4
+ "Replay": "Yeniden Oynat",
5
+ "Current Time": "Süre",
6
+ "Duration": "Toplam Süre",
7
+ "Remaining Time": "Kalan Süre",
8
+ "Stream Type": "Yayın Tipi",
9
+ "LIVE": "CANLI",
10
+ "Loaded": "Yüklendi",
11
+ "Progress": "Yükleniyor",
12
+ "Fullscreen": "Tam Ekran",
13
+ "Non-Fullscreen": "Küçük Ekran",
14
+ "Mute": "Ses Kapa",
15
+ "Unmute": "Ses Aç",
16
+ "Playback Rate": "Oynatma Hızı",
17
+ "Subtitles": "Altyazı",
18
+ "subtitles off": "Altyazı Kapalı",
19
+ "Captions": "Altyazı",
20
+ "captions off": "Altyazı Kapalı",
21
+ "Chapters": "Bölümler",
22
+ "Close Modal Dialog": "Dialogu Kapat",
23
+ "Descriptions": "Açıklamalar",
24
+ "descriptions off": "Açıklamalar kapalı",
25
+ "Audio Track": "Ses Dosyası",
26
+ "You aborted the media playback": "Video oynatmayı iptal ettiniz",
27
+ "A network error caused the media download to fail part-way.": "Video indirilirken bağlantı sorunu oluştu.",
28
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video oynatılamadı, ağ ya da sunucu hatası veya belirtilen format desteklenmiyor.",
29
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Tarayıcınız desteklemediği için videoda hata oluştu.",
30
+ "No compatible source was found for this media.": "Video için kaynak bulunamadı.",
31
+ "The media is encrypted and we do not have the keys to decrypt it.": "Video, şifrelenmiş bir kaynaktan geliyor ve oynatmak için gerekli anahtar bulunamadı.",
32
+ "Play Video": "Videoyu Oynat",
33
+ "Close": "Kapat",
34
+ "Modal Window": "Modal Penceresi",
35
+ "This is a modal window": "Bu bir modal penceresidir",
36
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Bu modal ESC tuşuna basarak ya da kapata tıklanarak kapatılabilir.",
37
+ ", opens captions settings dialog": ", altyazı ayarları menüsünü açar",
38
+ ", opens subtitles settings dialog": ", altyazı ayarları menüsünü açar",
39
+ ", opens descriptions settings dialog": ", açıklama ayarları menüsünü açar",
40
+ ", selected": ", seçildi",
41
+ "captions settings": "altyazı ayarları",
42
+ "subtitles settings": "altyazı ayarları",
43
+ "descriptions settings": "açıklama ayarları",
44
+ "Text": "Yazı",
45
+ "White": "Beyaz",
46
+ "Black": "Siyah",
47
+ "Red": "Kırmızı",
48
+ "Green": "Yeşil",
49
+ "Blue": "Mavi",
50
+ "Yellow": "Sarı",
51
+ "Magenta": "Macenta",
52
+ "Cyan": "Açık Mavi (Camgöbeği)",
53
+ "Background": "Arka plan",
54
+ "Window": "Pencere",
55
+ "Transparent": "Saydam",
56
+ "Semi-Transparent": "Yarı-Saydam",
57
+ "Opaque": "Mat",
58
+ "Font Size": "Yazı Boyutu",
59
+ "Text Edge Style": "Yazı Kenarlıkları",
60
+ "None": "Hiçbiri",
61
+ "Raised": "Kabartılmış",
62
+ "Depressed": "Yassı",
63
+ "Uniform": "Düz",
64
+ "Dropshadow": "Gölgeli",
65
+ "Font Family": "Yazı Tipi",
66
+ "Proportional Sans-Serif": "Orantılı Sans-Serif",
67
+ "Monospace Sans-Serif": "Eşaralıklı Sans-Serif",
68
+ "Proportional Serif": "Orantılı Serif",
69
+ "Monospace Serif": "Eşaralıklı Serif",
70
+ "Casual": "Gündelik",
71
+ "Script": "El Yazısı",
72
+ "Small Caps": "Küçük Boyutlu Büyük Harfli",
73
+ "Done": "Tamam",
74
+ "Caption Settings Dialog": "Altyazı Ayarları Menüsü",
75
+ "Beginning of dialog window. Escape will cancel and close the window.": "Diyalog penceresinin başlangıcı. ESC tuşu işlemi iptal edip pencereyi kapatacaktır."
76
+ });
public/assets/player/videojs/lang/tr.json ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "Oynat",
3
+ "Pause": "Duraklat",
4
+ "Replay": "Yeniden Oynat",
5
+ "Current Time": "Süre",
6
+ "Duration": "Toplam Süre",
7
+ "Remaining Time": "Kalan Süre",
8
+ "Stream Type": "Yayın Tipi",
9
+ "LIVE": "CANLI",
10
+ "Loaded": "Yüklendi",
11
+ "Progress": "Yükleniyor",
12
+ "Fullscreen": "Tam Ekran",
13
+ "Non-Fullscreen": "Küçük Ekran",
14
+ "Mute": "Ses Kapa",
15
+ "Unmute": "Ses Aç",
16
+ "Playback Rate": "Oynatma Hızı",
17
+ "Subtitles": "Altyazı",
18
+ "subtitles off": "Altyazı Kapalı",
19
+ "Captions": "Altyazı",
20
+ "captions off": "Altyazı Kapalı",
21
+ "Chapters": "Bölümler",
22
+ "Close Modal Dialog": "Dialogu Kapat",
23
+ "Descriptions": "Açıklamalar",
24
+ "descriptions off": "Açıklamalar kapalı",
25
+ "Audio Track": "Ses Dosyası",
26
+ "You aborted the media playback": "Video oynatmayı iptal ettiniz",
27
+ "A network error caused the media download to fail part-way.": "Video indirilirken bağlantı sorunu oluştu.",
28
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video oynatılamadı, ağ ya da sunucu hatası veya belirtilen format desteklenmiyor.",
29
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Tarayıcınız desteklemediği için videoda hata oluştu.",
30
+ "No compatible source was found for this media.": "Video için kaynak bulunamadı.",
31
+ "The media is encrypted and we do not have the keys to decrypt it.": "Video, şifrelenmiş bir kaynaktan geliyor ve oynatmak için gerekli anahtar bulunamadı.",
32
+ "Play Video": "Videoyu Oynat",
33
+ "Close": "Kapat",
34
+ "Modal Window": "Modal Penceresi",
35
+ "This is a modal window": "Bu bir modal penceresidir",
36
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Bu modal ESC tuşuna basarak ya da kapata tıklanarak kapatılabilir.",
37
+ ", opens captions settings dialog": ", altyazı ayarları menüsünü açar",
38
+ ", opens subtitles settings dialog": ", altyazı ayarları menüsünü açar",
39
+ ", opens descriptions settings dialog": ", açıklama ayarları menüsünü açar",
40
+ ", selected": ", seçildi",
41
+ "captions settings": "altyazı ayarları",
42
+ "subtitles settings": "altyazı ayarları",
43
+ "descriptions settings": "açıklama ayarları",
44
+ "Text": "Yazı",
45
+ "White": "Beyaz",
46
+ "Black": "Siyah",
47
+ "Red": "Kırmızı",
48
+ "Green": "Yeşil",
49
+ "Blue": "Mavi",
50
+ "Yellow": "Sarı",
51
+ "Magenta": "Macenta",
52
+ "Cyan": "Açık Mavi (Camgöbeği)",
53
+ "Background": "Arka plan",
54
+ "Window": "Pencere",
55
+ "Transparent": "Saydam",
56
+ "Semi-Transparent": "Yarı-Saydam",
57
+ "Opaque": "Mat",
58
+ "Font Size": "Yazı Boyutu",
59
+ "Text Edge Style": "Yazı Kenarlıkları",
60
+ "None": "Hiçbiri",
61
+ "Raised": "Kabartılmış",
62
+ "Depressed": "Yassı",
63
+ "Uniform": "Düz",
64
+ "Dropshadow": "Gölgeli",
65
+ "Font Family": "Yazı Tipi",
66
+ "Proportional Sans-Serif": "Orantılı Sans-Serif",
67
+ "Monospace Sans-Serif": "Eşaralıklı Sans-Serif",
68
+ "Proportional Serif": "Orantılı Serif",
69
+ "Monospace Serif": "Eşaralıklı Serif",
70
+ "Casual": "Gündelik",
71
+ "Script": "El Yazısı",
72
+ "Small Caps": "Küçük Boyutlu Büyük Harfli",
73
+ "Done": "Tamam",
74
+ "Caption Settings Dialog": "Altyazı Ayarları Menüsü",
75
+ "Beginning of dialog window. Escape will cancel and close the window.": "Diyalog penceresinin başlangıcı. ESC tuşu işlemi iptal edip pencereyi kapatacaktır."
76
+ }
public/assets/player/videojs/lang/uk.js ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('uk', {
2
+ "Audio Player": "Аудіопрогравач",
3
+ "Video Player": "Відеопрогравач",
4
+ "Play": "Відтворити",
5
+ "Pause": "Призупинити",
6
+ "Replay": "Відтворити знову",
7
+ "Current Time": "Поточний час",
8
+ "Duration": "Тривалість",
9
+ "Remaining Time": "Час, що залишився",
10
+ "Stream Type": "Тип потоку",
11
+ "LIVE": "НАЖИВО",
12
+ "Loaded": "Завантаження",
13
+ "Progress": "Прогрес",
14
+ "Progress Bar": "Індикатор завантаження",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} з {2}",
16
+ "Fullscreen": "Повноекранний режим",
17
+ "Non-Fullscreen": "Неповноекранний режим",
18
+ "Mute": "Без звуку",
19
+ "Unmute": "Зі звуком",
20
+ "Playback Rate": "Швидкість відтворення",
21
+ "Subtitles": "Субтитри",
22
+ "subtitles off": "Без субтитрів",
23
+ "Captions": "Підписи",
24
+ "captions off": "Без підписів",
25
+ "Chapters": "Розділи",
26
+ "Close Modal Dialog": "Закрити модальний діалог",
27
+ "Descriptions": "Описи",
28
+ "descriptions off": "Без описів",
29
+ "Audio Track": "Аудіодоріжка",
30
+ "Volume Level": "Рівень гучності",
31
+ "You aborted the media playback": "Ви припинили відтворення відео",
32
+ "A network error caused the media download to fail part-way.": "Помилка мережі викликала збій під час завантаження відео.",
33
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Неможливо завантажити відео через мережевий чи серверний збій або формат не підтримується.",
34
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Відтворення відео було припинено через пошкодження або у зв'язку з тим, що відео використовує функції, які не підтримуються вашим браузером.",
35
+ "No compatible source was found for this media.": "Сумісні джерела для цього відео відсутні.",
36
+ "The media is encrypted and we do not have the keys to decrypt it.": "Відео в зашифрованому вигляді, і ми не маємо ключі для розшифровки.",
37
+ "Play Video": "Відтворити відео",
38
+ "Close": "Закрити",
39
+ "Modal Window": "Модальне вікно",
40
+ "This is a modal window": "Це модальне вікно.",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Модальне вікно можна закрити, натиснувши клавішу Esc або кнопку закриття вікна.",
42
+ ", opens captions settings dialog": ", відкриється діалогове вікно налаштування підписів",
43
+ ", opens subtitles settings dialog": ", відкриється діалогове вікно налаштування субтитрів",
44
+ ", opens descriptions settings dialog": ", відкриється діалогове вікно налаштування описів",
45
+ ", selected": ", обраний",
46
+ "captions settings": "налаштування підписів",
47
+ "subtitles settings": "налаштування субтитрів",
48
+ "descriptions settings": "налаштування описів",
49
+ "Text": "Текст",
50
+ "White": "Білий",
51
+ "Black": "Чорний",
52
+ "Red": "Червоний",
53
+ "Green": "Зелений",
54
+ "Blue": "Синій",
55
+ "Yellow": "Жовтий",
56
+ "Magenta": "Пурпурний",
57
+ "Cyan": "Блакитний",
58
+ "Background": "Фон",
59
+ "Window": "Вікно",
60
+ "Transparent": "Прозорий",
61
+ "Semi-Transparent": "Напівпрозорий",
62
+ "Opaque": "Прозорість",
63
+ "Font Size": "Розмір шрифту",
64
+ "Text Edge Style": "Стиль краю тексту",
65
+ "None": "Нічого",
66
+ "Raised": "Піднятий",
67
+ "Depressed": "Знижений",
68
+ "Uniform": "Однаковий",
69
+ "Dropshadow": "Тінь",
70
+ "Font Family": "Шрифт",
71
+ "Proportional Sans-Serif": "Пропорційний без засічок",
72
+ "Monospace Sans-Serif": "Моноширинний без засічок",
73
+ "Proportional Serif": "Пропорційний із засічками",
74
+ "Monospace Serif": "Моноширинний із засічками",
75
+ "Casual": "Випадковий",
76
+ "Script": "Писемний",
77
+ "Small Caps": "Малі прописні",
78
+ "Reset": "Скинути",
79
+ "restore all settings to the default values": "скинути всі налаштування за замовчуванням",
80
+ "Done": "Готово",
81
+ "Caption Settings Dialog": "Діалог налаштувань підпису",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Початок діалоговго вікна. Кнопка Escape закриє або скасує вікно",
83
+ "End of dialog window.": "Кінець діалогового вікна.",
84
+ "{1} is loading.": "{1} завантажується."
85
+ });
public/assets/player/videojs/lang/uk.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Аудіопрогравач",
3
+ "Video Player": "Відеопрогравач",
4
+ "Play": "Відтворити",
5
+ "Pause": "Призупинити",
6
+ "Replay": "Відтворити знову",
7
+ "Current Time": "Поточний час",
8
+ "Duration": "Тривалість",
9
+ "Remaining Time": "Час, що залишився",
10
+ "Stream Type": "Тип потоку",
11
+ "LIVE": "НАЖИВО",
12
+ "Loaded": "Завантаження",
13
+ "Progress": "Прогрес",
14
+ "Progress Bar": "Індикатор завантаження",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} з {2}",
16
+ "Fullscreen": "Повноекранний режим",
17
+ "Non-Fullscreen": "Неповноекранний режим",
18
+ "Mute": "Без звуку",
19
+ "Unmute": "Зі звуком",
20
+ "Playback Rate": "Швидкість відтворення",
21
+ "Subtitles": "Субтитри",
22
+ "subtitles off": "Без субтитрів",
23
+ "Captions": "Підписи",
24
+ "captions off": "Без підписів",
25
+ "Chapters": "Розділи",
26
+ "Close Modal Dialog": "Закрити модальний діалог",
27
+ "Descriptions": "Описи",
28
+ "descriptions off": "Без описів",
29
+ "Audio Track": "Аудіодоріжка",
30
+ "Volume Level": "Рівень гучності",
31
+ "You aborted the media playback": "Ви припинили відтворення відео",
32
+ "A network error caused the media download to fail part-way.": "Помилка мережі викликала збій під час завантаження відео.",
33
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Неможливо завантажити відео через мережевий чи серверний збій або формат не підтримується.",
34
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Відтворення відео було припинено через пошкодження або у зв'язку з тим, що відео використовує функції, які не підтримуються вашим браузером.",
35
+ "No compatible source was found for this media.": "Сумісні джерела для цього відео відсутні.",
36
+ "The media is encrypted and we do not have the keys to decrypt it.": "Відео в зашифрованому вигляді, і ми не маємо ключі для розшифровки.",
37
+ "Play Video": "Відтворити відео",
38
+ "Close": "Закрити",
39
+ "Modal Window": "Модальне вікно",
40
+ "This is a modal window": "Це модальне вікно.",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Модальне вікно можна закрити, натиснувши клавішу Esc або кнопку закриття вікна.",
42
+ ", opens captions settings dialog": ", відкриється діалогове вікно налаштування підписів",
43
+ ", opens subtitles settings dialog": ", відкриється діалогове вікно налаштування субтитрів",
44
+ ", opens descriptions settings dialog": ", відкриється діалогове вікно налаштування описів",
45
+ ", selected": ", обраний",
46
+ "captions settings": "налаштування підписів",
47
+ "subtitles settings": "налаштування субтитрів",
48
+ "descriptions settings": "налаштування описів",
49
+ "Text": "Текст",
50
+ "White": "Білий",
51
+ "Black": "Чорний",
52
+ "Red": "Червоний",
53
+ "Green": "Зелений",
54
+ "Blue": "Синій",
55
+ "Yellow": "Жовтий",
56
+ "Magenta": "Пурпурний",
57
+ "Cyan": "Блакитний",
58
+ "Background": "Фон",
59
+ "Window": "Вікно",
60
+ "Transparent": "Прозорий",
61
+ "Semi-Transparent": "Напівпрозорий",
62
+ "Opaque": "Прозорість",
63
+ "Font Size": "Розмір шрифту",
64
+ "Text Edge Style": "Стиль краю тексту",
65
+ "None": "Нічого",
66
+ "Raised": "Піднятий",
67
+ "Depressed": "Знижений",
68
+ "Uniform": "Однаковий",
69
+ "Dropshadow": "Тінь",
70
+ "Font Family": "Шрифт",
71
+ "Proportional Sans-Serif": "Пропорційний без засічок",
72
+ "Monospace Sans-Serif": "Моноширинний без засічок",
73
+ "Proportional Serif": "Пропорційний із засічками",
74
+ "Monospace Serif": "Моноширинний із засічками",
75
+ "Casual": "Випадковий",
76
+ "Script": "Писемний",
77
+ "Small Caps": "Малі прописні",
78
+ "Reset": "Скинути",
79
+ "restore all settings to the default values": "скинути всі налаштування за замовчуванням",
80
+ "Done": "Готово",
81
+ "Caption Settings Dialog": "Діалог налаштувань підпису",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Початок діалоговго вікна. Кнопка Escape закриє або скасує вікно",
83
+ "End of dialog window.": "Кінець діалогового вікна.",
84
+ "{1} is loading.": "{1} завантажується."
85
+ }
public/assets/player/videojs/lang/vi.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('vi', {
2
+ "Audio Player": "Trình phát Audio",
3
+ "Video Player": "Trình phát Video",
4
+ "Play": "Phát",
5
+ "Pause": "Tạm dừng",
6
+ "Replay": "Phát lại",
7
+ "Current Time": "Thời gian hiện tại",
8
+ "Duration": "Độ dài",
9
+ "Remaining Time": "Thời gian còn lại",
10
+ "Stream Type": "Kiểu Stream",
11
+ "LIVE": "TRỰC TIẾP",
12
+ "Loaded": "Đã tải",
13
+ "Progress": "Tiến trình",
14
+ "Progress Bar": "Thanh tiến trình",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} của {2}",
16
+ "Fullscreen": "Toàn màn hình",
17
+ "Non-Fullscreen": "Thoát toàn màn hình",
18
+ "Mute": "Tắt tiếng",
19
+ "Unmute": "Bật âm thanh",
20
+ "Playback Rate": "Tỉ lệ phát lại",
21
+ "Subtitles": "Phụ đề",
22
+ "subtitles off": "tắt phụ đề",
23
+ "Captions": "Chú thích",
24
+ "captions off": "tắt chú thích",
25
+ "Chapters": "Chương",
26
+ "Descriptions": "Mô tả",
27
+ "descriptions off": "tắt mô tả",
28
+ "Audio Track": "Track âm thanh",
29
+ "Volume Level": "Mức âm lượng",
30
+ "You aborted the media playback": "Bạn đã hủy việc phát lại media.",
31
+ "A network error caused the media download to fail part-way.": "Một lỗi mạng dẫn đến việc tải media bị lỗi.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video không tải được, mạng hay server có lỗi hoặc định dạng không được hỗ trợ.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Phát media đã bị hủy do một sai lỗi hoặc media sử dụng những tính năng trình duyệt không hỗ trợ.",
34
+ "No compatible source was found for this media.": "Không có nguồn tương thích cho media này.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Media đã được mã hóa và chúng tôi không có để giải mã nó.",
36
+ "Play Video": "Phát Video",
37
+ "Close": "Đóng",
38
+ "Close Modal Dialog": "Đóng cửa sổ",
39
+ "Modal Window": "Cửa sổ",
40
+ "This is a modal window": "Đây là một cửa sổ",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Cửa sổ này có thể thoát bằng việc nhấn phím Esc hoặc kích hoạt nút đóng.",
42
+ ", opens captions settings dialog": ", mở hộp thoại cài đặt chú thích",
43
+ ", opens subtitles settings dialog": ", mở hộp thoại cài đặt phụ đề",
44
+ ", opens descriptions settings dialog": ", mở hộp thoại cài đặt mô tả",
45
+ ", selected": ", đã chọn",
46
+ "captions settings": "cài đặt chú thích",
47
+ "subtitles settings": "cài đặt phụ đề",
48
+ "descriptions settings": "cài đặt mô tả",
49
+ "Text": "Văn bản",
50
+ "White": "Trắng",
51
+ "Black": "Đen",
52
+ "Red": "Đỏ",
53
+ "Green": "Xanh lá cây",
54
+ "Blue": "Xanh da trời",
55
+ "Yellow": "Vàng",
56
+ "Magenta": "Đỏ tươi",
57
+ "Cyan": "Lam",
58
+ "Background": "Nền",
59
+ "Window": "Cửa sổ",
60
+ "Transparent": "Trong suốt",
61
+ "Semi-Transparent": "Bán trong suốt",
62
+ "Opaque": "Mờ",
63
+ "Font Size": "Kích cỡ phông chữ",
64
+ "Text Edge Style": "Dạng viền văn bản",
65
+ "None": "None",
66
+ "Raised": "Raised",
67
+ "Depressed": "Depressed",
68
+ "Uniform": "Uniform",
69
+ "Dropshadow": "Dropshadow",
70
+ "Font Family": "Phông chữ",
71
+ "Proportional Sans-Serif": "Proportional Sans-Serif",
72
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
73
+ "Proportional Serif": "Proportional Serif",
74
+ "Monospace Serif": "Monospace Serif",
75
+ "Casual": "Casual",
76
+ "Script": "Script",
77
+ "Small Caps": "Small Caps",
78
+ "Reset": "Đặt lại",
79
+ "restore all settings to the default values": "khôi phục lại tất cả các cài đặt về giá trị mặc định",
80
+ "Done": "Xong",
81
+ "Caption Settings Dialog": "Hộp thoại cài đặt chú thích",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Bắt đầu cửa sổ hộp thoại. Esc sẽ thoát và đóng cửa sổ.",
83
+ "End of dialog window.": "Kết thúc cửa sổ hộp thoại."
84
+ });
public/assets/player/videojs/lang/vi.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Audio Player": "Trình phát Audio",
3
+ "Video Player": "Trình phát Video",
4
+ "Play": "Phát",
5
+ "Pause": "Tạm dừng",
6
+ "Replay": "Phát lại",
7
+ "Current Time": "Thời gian hiện tại",
8
+ "Duration": "Độ dài",
9
+ "Remaining Time": "Thời gian còn lại",
10
+ "Stream Type": "Kiểu Stream",
11
+ "LIVE": "TRỰC TIẾP",
12
+ "Loaded": "Đã tải",
13
+ "Progress": "Tiến trình",
14
+ "Progress Bar": "Thanh tiến trình",
15
+ "progress bar timing: currentTime={1} duration={2}": "{1} của {2}",
16
+ "Fullscreen": "Toàn màn hình",
17
+ "Non-Fullscreen": "Thoát toàn màn hình",
18
+ "Mute": "Tắt tiếng",
19
+ "Unmute": "Bật âm thanh",
20
+ "Playback Rate": "Tỉ lệ phát lại",
21
+ "Subtitles": "Phụ đề",
22
+ "subtitles off": "tắt phụ đề",
23
+ "Captions": "Chú thích",
24
+ "captions off": "tắt chú thích",
25
+ "Chapters": "Chương",
26
+ "Descriptions": "Mô tả",
27
+ "descriptions off": "tắt mô tả",
28
+ "Audio Track": "Track âm thanh",
29
+ "Volume Level": "Mức âm lượng",
30
+ "You aborted the media playback": "Bạn đã hủy việc phát lại media.",
31
+ "A network error caused the media download to fail part-way.": "Một lỗi mạng dẫn đến việc tải media bị lỗi.",
32
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video không tải được, mạng hay server có lỗi hoặc định dạng không được hỗ trợ.",
33
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Phát media đã bị hủy do một sai lỗi hoặc media sử dụng những tính năng trình duyệt không hỗ trợ.",
34
+ "No compatible source was found for this media.": "Không có nguồn tương thích cho media này.",
35
+ "The media is encrypted and we do not have the keys to decrypt it.": "Media đã được mã hóa và chúng tôi không có để giải mã nó.",
36
+ "Play Video": "Phát Video",
37
+ "Close": "Đóng",
38
+ "Close Modal Dialog": "Đóng cửa sổ",
39
+ "Modal Window": "Cửa sổ",
40
+ "This is a modal window": "Đây là một cửa sổ",
41
+ "This modal can be closed by pressing the Escape key or activating the close button.": "Cửa sổ này có thể thoát bằng việc nhấn phím Esc hoặc kích hoạt nút đóng.",
42
+ ", opens captions settings dialog": ", mở hộp thoại cài đặt chú thích",
43
+ ", opens subtitles settings dialog": ", mở hộp thoại cài đặt phụ đề",
44
+ ", opens descriptions settings dialog": ", mở hộp thoại cài đặt mô tả",
45
+ ", selected": ", đã chọn",
46
+ "captions settings": "cài đặt chú thích",
47
+ "subtitles settings": "cài đặt phụ đề",
48
+ "descriptions settings": "cài đặt mô tả",
49
+ "Text": "Văn bản",
50
+ "White": "Trắng",
51
+ "Black": "Đen",
52
+ "Red": "Đỏ",
53
+ "Green": "Xanh lá cây",
54
+ "Blue": "Xanh da trời",
55
+ "Yellow": "Vàng",
56
+ "Magenta": "Đỏ tươi",
57
+ "Cyan": "Lam",
58
+ "Background": "Nền",
59
+ "Window": "Cửa sổ",
60
+ "Transparent": "Trong suốt",
61
+ "Semi-Transparent": "Bán trong suốt",
62
+ "Opaque": "Mờ",
63
+ "Font Size": "Kích cỡ phông chữ",
64
+ "Text Edge Style": "Dạng viền văn bản",
65
+ "None": "None",
66
+ "Raised": "Raised",
67
+ "Depressed": "Depressed",
68
+ "Uniform": "Uniform",
69
+ "Dropshadow": "Dropshadow",
70
+ "Font Family": "Phông chữ",
71
+ "Proportional Sans-Serif": "Proportional Sans-Serif",
72
+ "Monospace Sans-Serif": "Monospace Sans-Serif",
73
+ "Proportional Serif": "Proportional Serif",
74
+ "Monospace Serif": "Monospace Serif",
75
+ "Casual": "Casual",
76
+ "Script": "Script",
77
+ "Small Caps": "Small Caps",
78
+ "Reset": "Đặt lại",
79
+ "restore all settings to the default values": "khôi phục lại tất cả các cài đặt về giá trị mặc định",
80
+ "Done": "Xong",
81
+ "Caption Settings Dialog": "Hộp thoại cài đặt chú thích",
82
+ "Beginning of dialog window. Escape will cancel and close the window.": "Bắt đầu cửa sổ hộp thoại. Esc sẽ thoát và đóng cửa sổ.",
83
+ "End of dialog window.": "Kết thúc cửa sổ hộp thoại."
84
+ }
public/assets/player/videojs/lang/zh-CN.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('zh-CN', {
2
+ "Play": "播放",
3
+ "Pause": "暂停",
4
+ "Current Time": "当前时间",
5
+ "Duration": "时长",
6
+ "Remaining Time": "剩余时间",
7
+ "Stream Type": "媒体流类型",
8
+ "LIVE": "直播",
9
+ "Loaded": "加载完毕",
10
+ "Progress": "进度",
11
+ "Fullscreen": "全屏",
12
+ "Non-Fullscreen": "退出全屏",
13
+ "Mute": "静音",
14
+ "Unmute": "取消静音",
15
+ "Playback Rate": "播放速度",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "关闭字幕",
18
+ "Captions": "内嵌字幕",
19
+ "captions off": "关闭内嵌字幕",
20
+ "Chapters": "节目段落",
21
+ "Close Modal Dialog": "关闭弹窗",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "关闭描述",
24
+ "Audio Track": "音轨",
25
+ "You aborted the media playback": "视频播放被终止",
26
+ "A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
29
+ "No compatible source was found for this media.": "无法找到此视频兼容的源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。",
31
+ "Play Video": "播放视频",
32
+ "Close": "关闭",
33
+ "Modal Window": "弹窗",
34
+ "This is a modal window": "这是一个弹窗",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按键或启用关闭按钮来关闭此弹窗。",
36
+ ", opens captions settings dialog": ", 开启标题设置弹窗",
37
+ ", opens subtitles settings dialog": ", 开启字幕设置弹窗",
38
+ ", opens descriptions settings dialog": ", 开启描述设置弹窗",
39
+ ", selected": ", 选择",
40
+ "captions settings": "字幕设定",
41
+ "Audio Player": "音频播放器",
42
+ "Video Player": "视频播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "进度条",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕设定",
47
+ "descriptions settings": "描述设定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "红",
52
+ "Green": "绿",
53
+ "Blue": "蓝",
54
+ "Yellow": "黄",
55
+ "Magenta": "紫红",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "视窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字体尺寸",
63
+ "Text Edge Style": "字体边缘样式",
64
+ "None": "无",
65
+ "Raised": "浮雕",
66
+ "Depressed": "压低",
67
+ "Uniform": "均匀",
68
+ "Dropshadow": "下阴影",
69
+ "Font Family": "字体库",
70
+ "Proportional Sans-Serif": "比例无细体",
71
+ "Monospace Sans-Serif": "单间隔无细体",
72
+ "Proportional Serif": "比例细体",
73
+ "Monospace Serif": "单间隔细体",
74
+ "Casual": "舒适",
75
+ "Script": "手写体",
76
+ "Small Caps": "小型大写字体",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢复全部设定至预设值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕设定视窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "开始对话视窗。离开会取消及关闭视窗",
82
+ "End of dialog window.": "结束对话视窗",
83
+ "Seek to live, currently behind live": "试图直播,当前延时播放",
84
+ "Seek to live, currently playing live": "试图直播,当前实时播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "正在加载 {1}。"
87
+ });
public/assets/player/videojs/lang/zh-CN.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "播放",
3
+ "Pause": "暂停",
4
+ "Current Time": "当前时间",
5
+ "Duration": "时长",
6
+ "Remaining Time": "剩余时间",
7
+ "Stream Type": "媒体流类型",
8
+ "LIVE": "直播",
9
+ "Loaded": "加载完毕",
10
+ "Progress": "进度",
11
+ "Fullscreen": "全屏",
12
+ "Non-Fullscreen": "退出全屏",
13
+ "Mute": "静音",
14
+ "Unmute": "取消静音",
15
+ "Playback Rate": "播放速度",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "关闭字幕",
18
+ "Captions": "内嵌字幕",
19
+ "captions off": "关闭内嵌字幕",
20
+ "Chapters": "节目段落",
21
+ "Close Modal Dialog": "关闭弹窗",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "关闭描述",
24
+ "Audio Track": "音轨",
25
+ "You aborted the media playback": "视频播放被终止",
26
+ "A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
29
+ "No compatible source was found for this media.": "无法找到此视频兼容的源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。",
31
+ "Play Video": "播放视频",
32
+ "Close": "关闭",
33
+ "Modal Window": "弹窗",
34
+ "This is a modal window": "这是一个弹窗",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按键或启用关闭按钮来关闭此弹窗。",
36
+ ", opens captions settings dialog": ", 开启标题设置弹窗",
37
+ ", opens subtitles settings dialog": ", 开启字幕设置弹窗",
38
+ ", opens descriptions settings dialog": ", 开启描述设置弹窗",
39
+ ", selected": ", 选择",
40
+ "captions settings": "字幕设定",
41
+ "Audio Player": "音频播放器",
42
+ "Video Player": "视频播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "进度条",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕设定",
47
+ "descriptions settings": "描述设定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "红",
52
+ "Green": "绿",
53
+ "Blue": "蓝",
54
+ "Yellow": "黄",
55
+ "Magenta": "紫红",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "视窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字体尺寸",
63
+ "Text Edge Style": "字体边缘样式",
64
+ "None": "无",
65
+ "Raised": "浮雕",
66
+ "Depressed": "压低",
67
+ "Uniform": "均匀",
68
+ "Dropshadow": "下阴影",
69
+ "Font Family": "字体库",
70
+ "Proportional Sans-Serif": "比例无细体",
71
+ "Monospace Sans-Serif": "单间隔无细体",
72
+ "Proportional Serif": "比例细体",
73
+ "Monospace Serif": "单间隔细体",
74
+ "Casual": "舒适",
75
+ "Script": "手写体",
76
+ "Small Caps": "小型大写字体",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢复全部设定至预设值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕设定视窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "开始对话视窗。离开会取消及关闭视窗",
82
+ "End of dialog window.": "结束对话视窗",
83
+ "Seek to live, currently behind live": "试图直播,当前延时播放",
84
+ "Seek to live, currently playing live": "试图直播,当前实时播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "正在加载 {1}。"
87
+ }
public/assets/player/videojs/lang/zh-Hans.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('zh-Hans', {
2
+ "Play": "播放",
3
+ "Pause": "暂停",
4
+ "Current Time": "当前时间",
5
+ "Duration": "时长",
6
+ "Remaining Time": "剩余时间",
7
+ "Stream Type": "媒体流类型",
8
+ "LIVE": "直播",
9
+ "Loaded": "加载完毕",
10
+ "Progress": "进度",
11
+ "Fullscreen": "全屏",
12
+ "Non-Fullscreen": "退出全屏",
13
+ "Mute": "静音",
14
+ "Unmute": "取消静音",
15
+ "Playback Rate": "播放速度",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "关闭字幕",
18
+ "Captions": "内嵌字幕",
19
+ "captions off": "关闭内嵌字幕",
20
+ "Chapters": "节目段落",
21
+ "Close Modal Dialog": "关闭弹窗",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "关闭描述",
24
+ "Audio Track": "音轨",
25
+ "You aborted the media playback": "视频播放被终止",
26
+ "A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
29
+ "No compatible source was found for this media.": "无法找到此视频兼容的源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。",
31
+ "Play Video": "播放视频",
32
+ "Close": "关闭",
33
+ "Modal Window": "弹窗",
34
+ "This is a modal window": "这是一个弹窗",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按键或启用关闭按钮来关闭此弹窗。",
36
+ ", opens captions settings dialog": ", 开启标题设置弹窗",
37
+ ", opens subtitles settings dialog": ", 开启字幕设置弹窗",
38
+ ", opens descriptions settings dialog": ", 开启描述设置弹窗",
39
+ ", selected": ", 选择",
40
+ "captions settings": "字幕设定",
41
+ "Audio Player": "音频播放器",
42
+ "Video Player": "视频播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "进度条",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕设定",
47
+ "descriptions settings": "描述设定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "红",
52
+ "Green": "绿",
53
+ "Blue": "蓝",
54
+ "Yellow": "黄",
55
+ "Magenta": "紫红",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "视窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字体尺寸",
63
+ "Text Edge Style": "字体边缘样式",
64
+ "None": "无",
65
+ "Raised": "浮雕",
66
+ "Depressed": "压低",
67
+ "Uniform": "均匀",
68
+ "Dropshadow": "下阴影",
69
+ "Font Family": "字体库",
70
+ "Proportional Sans-Serif": "比例无细体",
71
+ "Monospace Sans-Serif": "单间隔无细体",
72
+ "Proportional Serif": "比例细体",
73
+ "Monospace Serif": "单间隔细体",
74
+ "Casual": "舒适",
75
+ "Script": "手写体",
76
+ "Small Caps": "小型大写字体",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢复全部设定至预设值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕设定视窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "开始对话视窗。离开会取消及关闭视窗",
82
+ "End of dialog window.": "结束对话视窗",
83
+ "Seek to live, currently behind live": "试图直播,当前延时播放",
84
+ "Seek to live, currently playing live": "试图直播,当前实时播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "正在加载 {1}。"
87
+ });
public/assets/player/videojs/lang/zh-Hans.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "播放",
3
+ "Pause": "暂停",
4
+ "Current Time": "当前时间",
5
+ "Duration": "时长",
6
+ "Remaining Time": "剩余时间",
7
+ "Stream Type": "媒体流类型",
8
+ "LIVE": "直播",
9
+ "Loaded": "加载完毕",
10
+ "Progress": "进度",
11
+ "Fullscreen": "全屏",
12
+ "Non-Fullscreen": "退出全屏",
13
+ "Mute": "静音",
14
+ "Unmute": "取消静音",
15
+ "Playback Rate": "播放速度",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "关闭字幕",
18
+ "Captions": "内嵌字幕",
19
+ "captions off": "关闭内嵌字幕",
20
+ "Chapters": "节目段落",
21
+ "Close Modal Dialog": "关闭弹窗",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "关闭描述",
24
+ "Audio Track": "音轨",
25
+ "You aborted the media playback": "视频播放被终止",
26
+ "A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
29
+ "No compatible source was found for this media.": "无法找到此视频兼容的源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。",
31
+ "Play Video": "播放视频",
32
+ "Close": "关闭",
33
+ "Modal Window": "弹窗",
34
+ "This is a modal window": "这是一个弹窗",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按键或启用关闭按钮来关闭此弹窗。",
36
+ ", opens captions settings dialog": ", 开启标题设置弹窗",
37
+ ", opens subtitles settings dialog": ", 开启字幕设置弹窗",
38
+ ", opens descriptions settings dialog": ", 开启描述设置弹窗",
39
+ ", selected": ", 选择",
40
+ "captions settings": "字幕设定",
41
+ "Audio Player": "音频播放器",
42
+ "Video Player": "视频播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "进度条",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕设定",
47
+ "descriptions settings": "描述设定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "红",
52
+ "Green": "绿",
53
+ "Blue": "蓝",
54
+ "Yellow": "黄",
55
+ "Magenta": "紫红",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "视窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字体尺寸",
63
+ "Text Edge Style": "字体边缘样式",
64
+ "None": "无",
65
+ "Raised": "浮雕",
66
+ "Depressed": "压低",
67
+ "Uniform": "均匀",
68
+ "Dropshadow": "下阴影",
69
+ "Font Family": "字体库",
70
+ "Proportional Sans-Serif": "比例无细体",
71
+ "Monospace Sans-Serif": "单间隔无细体",
72
+ "Proportional Serif": "比例细体",
73
+ "Monospace Serif": "单间隔细体",
74
+ "Casual": "舒适",
75
+ "Script": "手写体",
76
+ "Small Caps": "小型大写字体",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢复全部设定至预设值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕设定视窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "开始对话视窗。离开会取消及关闭视窗",
82
+ "End of dialog window.": "结束对话视窗",
83
+ "Seek to live, currently behind live": "试图直播,当前延时播放",
84
+ "Seek to live, currently playing live": "试图直播,当前实时播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "正在加载 {1}。"
87
+ }
public/assets/player/videojs/lang/zh-Hant.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('zh-Hant', {
2
+ "Play": "播放",
3
+ "Pause": "暫停",
4
+ "Current Time": "目前時間",
5
+ "Duration": "總共時間",
6
+ "Remaining Time": "剩餘時間",
7
+ "Stream Type": "串流類型",
8
+ "LIVE": "直播",
9
+ "Loaded": "載入完畢",
10
+ "Progress": "進度",
11
+ "Fullscreen": "全螢幕",
12
+ "Non-Fullscreen": "退出全螢幕",
13
+ "Mute": "靜音",
14
+ "Unmute": "取消靜音",
15
+ "Playback Rate": " 播放速率",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "關閉字幕",
18
+ "Captions": "內嵌字幕",
19
+ "captions off": "關閉內嵌字幕",
20
+ "Chapters": "章節",
21
+ "Close Modal Dialog": "關閉對話框",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "關閉描述",
24
+ "Audio Track": "音軌",
25
+ "You aborted the media playback": "影片播放已終止",
26
+ "A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
29
+ "No compatible source was found for this media.": "無法找到相容此影片的來源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。",
31
+ "Play Video": "播放影片",
32
+ "Close": "關閉",
33
+ "Modal Window": "對話框",
34
+ "This is a modal window": "這是一個對話框",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。",
36
+ ", opens captions settings dialog": ", 開啟標題設定對話框",
37
+ ", opens subtitles settings dialog": ", 開啟字幕設定對話框",
38
+ ", opens descriptions settings dialog": ", 開啟描述設定對話框",
39
+ ", selected": ", 選擇",
40
+ "captions settings": "字幕設定",
41
+ "Audio Player": "音頻播放器",
42
+ "Video Player": "視頻播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "進度小節",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕設定",
47
+ "descriptions settings": "描述設定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "紅",
52
+ "Green": "綠",
53
+ "Blue": "藍",
54
+ "Yellow": "黃",
55
+ "Magenta": "紫紅",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "視窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字型尺寸",
63
+ "Text Edge Style": "字型邊緣樣式",
64
+ "None": "無",
65
+ "Raised": "浮雕",
66
+ "Depressed": "壓低",
67
+ "Uniform": "均勻",
68
+ "Dropshadow": "下陰影",
69
+ "Font Family": "字型庫",
70
+ "Proportional Sans-Serif": "比例無細體",
71
+ "Monospace Sans-Serif": "單間隔無細體",
72
+ "Proportional Serif": "比例細體",
73
+ "Monospace Serif": "單間隔細體",
74
+ "Casual": "輕便的",
75
+ "Script": "手寫體",
76
+ "Small Caps": "小型大寫字體",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢復全部設定至預設值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕設定視窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "開始對話視窗。離開會取消及關閉視窗",
82
+ "End of dialog window.": "結束對話視窗",
83
+ "Seek to live, currently behind live": "試圖直播,目前延時播放",
84
+ "Seek to live, currently playing live": "試圖直播,目前即時播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "{1} 正在載入。"
87
+ });
public/assets/player/videojs/lang/zh-Hant.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "播放",
3
+ "Pause": "暫停",
4
+ "Current Time": "目前時間",
5
+ "Duration": "總共時間",
6
+ "Remaining Time": "剩餘時間",
7
+ "Stream Type": "串流類型",
8
+ "LIVE": "直播",
9
+ "Loaded": "載入完畢",
10
+ "Progress": "進度",
11
+ "Fullscreen": "全螢幕",
12
+ "Non-Fullscreen": "退出全螢幕",
13
+ "Mute": "靜音",
14
+ "Unmute": "取消靜音",
15
+ "Playback Rate": " 播放速率",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "關閉字幕",
18
+ "Captions": "內嵌字幕",
19
+ "captions off": "關閉內嵌字幕",
20
+ "Chapters": "章節",
21
+ "Close Modal Dialog": "關閉對話框",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "關閉描述",
24
+ "Audio Track": "音軌",
25
+ "You aborted the media playback": "影片播放已終止",
26
+ "A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
29
+ "No compatible source was found for this media.": "無法找到相容此影片的來源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。",
31
+ "Play Video": "播放影片",
32
+ "Close": "關閉",
33
+ "Modal Window": "對話框",
34
+ "This is a modal window": "這是一個對話框",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。",
36
+ ", opens captions settings dialog": ", 開啟標題設定對話框",
37
+ ", opens subtitles settings dialog": ", 開啟字幕設定對話框",
38
+ ", opens descriptions settings dialog": ", 開啟描述設定對話框",
39
+ ", selected": ", 選擇",
40
+ "captions settings": "字幕設定",
41
+ "Audio Player": "音頻播放器",
42
+ "Video Player": "視頻播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "進度小節",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕設定",
47
+ "descriptions settings": "描述設定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "紅",
52
+ "Green": "綠",
53
+ "Blue": "藍",
54
+ "Yellow": "黃",
55
+ "Magenta": "紫紅",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "視窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字型尺寸",
63
+ "Text Edge Style": "字型邊緣樣式",
64
+ "None": "無",
65
+ "Raised": "浮雕",
66
+ "Depressed": "壓低",
67
+ "Uniform": "均勻",
68
+ "Dropshadow": "下陰影",
69
+ "Font Family": "字型庫",
70
+ "Proportional Sans-Serif": "比例無細體",
71
+ "Monospace Sans-Serif": "單間隔無細體",
72
+ "Proportional Serif": "比例細體",
73
+ "Monospace Serif": "單間隔細體",
74
+ "Casual": "輕便的",
75
+ "Script": "手寫體",
76
+ "Small Caps": "小型大寫字體",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢復全部設定至預設值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕設定視窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "開始對話視窗。離開會取消及關閉視窗",
82
+ "End of dialog window.": "結束對話視窗",
83
+ "Seek to live, currently behind live": "試圖直播,目前延時播放",
84
+ "Seek to live, currently playing live": "試圖直播,目前即時播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "{1} 正在載入。"
87
+ }
public/assets/player/videojs/lang/zh-TW.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ videojs.addLanguage('zh-TW', {
2
+ "Play": "播放",
3
+ "Pause": "暫停",
4
+ "Current Time": "目前時間",
5
+ "Duration": "總共時間",
6
+ "Remaining Time": "剩餘時間",
7
+ "Stream Type": "串流類型",
8
+ "LIVE": "直播",
9
+ "Loaded": "載入完畢",
10
+ "Progress": "進度",
11
+ "Fullscreen": "全螢幕",
12
+ "Non-Fullscreen": "退出全螢幕",
13
+ "Mute": "靜音",
14
+ "Unmute": "取消靜音",
15
+ "Playback Rate": " 播放速率",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "關閉字幕",
18
+ "Captions": "內嵌字幕",
19
+ "captions off": "關閉內嵌字幕",
20
+ "Chapters": "章節",
21
+ "Close Modal Dialog": "關閉對話框",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "關閉描述",
24
+ "Audio Track": "音軌",
25
+ "You aborted the media playback": "影片播放已終止",
26
+ "A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
29
+ "No compatible source was found for this media.": "無法找到相容此影片的來源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。",
31
+ "Play Video": "播放影片",
32
+ "Close": "關閉",
33
+ "Modal Window": "對話框",
34
+ "This is a modal window": "這是一個對話框",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。",
36
+ ", opens captions settings dialog": ", 開啟標題設定對話框",
37
+ ", opens subtitles settings dialog": ", 開啟字幕設定對話框",
38
+ ", opens descriptions settings dialog": ", 開啟描述設定對話框",
39
+ ", selected": ", 選擇",
40
+ "captions settings": "字幕設定",
41
+ "Audio Player": "音頻播放器",
42
+ "Video Player": "視頻播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "進度小節",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕設定",
47
+ "descriptions settings": "描述設定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "紅",
52
+ "Green": "綠",
53
+ "Blue": "藍",
54
+ "Yellow": "黃",
55
+ "Magenta": "紫紅",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "視窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字型尺寸",
63
+ "Text Edge Style": "字型邊緣樣式",
64
+ "None": "無",
65
+ "Raised": "浮雕",
66
+ "Depressed": "壓低",
67
+ "Uniform": "均勻",
68
+ "Dropshadow": "下陰影",
69
+ "Font Family": "字型庫",
70
+ "Proportional Sans-Serif": "比例無細體",
71
+ "Monospace Sans-Serif": "單間隔無細體",
72
+ "Proportional Serif": "比例細體",
73
+ "Monospace Serif": "單間隔細體",
74
+ "Casual": "輕便的",
75
+ "Script": "手寫體",
76
+ "Small Caps": "小型大寫字體",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢復全部設定至預設值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕設定視窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "開始對話視窗。離開會取消及關閉視窗",
82
+ "End of dialog window.": "結束對話視窗",
83
+ "Seek to live, currently behind live": "試圖直播,目前延時播放",
84
+ "Seek to live, currently playing live": "試圖直播,目前即時播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "{1} 正在載入。"
87
+ });
public/assets/player/videojs/lang/zh-TW.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Play": "播放",
3
+ "Pause": "暫停",
4
+ "Current Time": "目前時間",
5
+ "Duration": "總共時間",
6
+ "Remaining Time": "剩餘時間",
7
+ "Stream Type": "串流類型",
8
+ "LIVE": "直播",
9
+ "Loaded": "載入完畢",
10
+ "Progress": "進度",
11
+ "Fullscreen": "全螢幕",
12
+ "Non-Fullscreen": "退出全螢幕",
13
+ "Mute": "靜音",
14
+ "Unmute": "取消靜音",
15
+ "Playback Rate": " 播放速率",
16
+ "Subtitles": "字幕",
17
+ "subtitles off": "關閉字幕",
18
+ "Captions": "內嵌字幕",
19
+ "captions off": "關閉內嵌字幕",
20
+ "Chapters": "章節",
21
+ "Close Modal Dialog": "關閉對話框",
22
+ "Descriptions": "描述",
23
+ "descriptions off": "關閉描述",
24
+ "Audio Track": "音軌",
25
+ "You aborted the media playback": "影片播放已終止",
26
+ "A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
27
+ "The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
28
+ "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
29
+ "No compatible source was found for this media.": "無法找到相容此影片的來源。",
30
+ "The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。",
31
+ "Play Video": "播放影片",
32
+ "Close": "關閉",
33
+ "Modal Window": "對話框",
34
+ "This is a modal window": "這是一個對話框",
35
+ "This modal can be closed by pressing the Escape key or activating the close button.": "可以按ESC按鍵或啟用關閉按鈕來關閉此對話框。",
36
+ ", opens captions settings dialog": ", 開啟標題設定對話框",
37
+ ", opens subtitles settings dialog": ", 開啟字幕設定對話框",
38
+ ", opens descriptions settings dialog": ", 開啟描述設定對話框",
39
+ ", selected": ", 選擇",
40
+ "captions settings": "字幕設定",
41
+ "Audio Player": "音頻播放器",
42
+ "Video Player": "視頻播放器",
43
+ "Replay": "重播",
44
+ "Progress Bar": "進度小節",
45
+ "Volume Level": "音量",
46
+ "subtitles settings": "字幕設定",
47
+ "descriptions settings": "描述設定",
48
+ "Text": "文字",
49
+ "White": "白",
50
+ "Black": "黑",
51
+ "Red": "紅",
52
+ "Green": "綠",
53
+ "Blue": "藍",
54
+ "Yellow": "黃",
55
+ "Magenta": "紫紅",
56
+ "Cyan": "青",
57
+ "Background": "背景",
58
+ "Window": "視窗",
59
+ "Transparent": "透明",
60
+ "Semi-Transparent": "半透明",
61
+ "Opaque": "不透明",
62
+ "Font Size": "字型尺寸",
63
+ "Text Edge Style": "字型邊緣樣式",
64
+ "None": "無",
65
+ "Raised": "浮雕",
66
+ "Depressed": "壓低",
67
+ "Uniform": "均勻",
68
+ "Dropshadow": "下陰影",
69
+ "Font Family": "字型庫",
70
+ "Proportional Sans-Serif": "比例無細體",
71
+ "Monospace Sans-Serif": "單間隔無細體",
72
+ "Proportional Serif": "比例細體",
73
+ "Monospace Serif": "單間隔細體",
74
+ "Casual": "輕便的",
75
+ "Script": "手寫體",
76
+ "Small Caps": "小型大寫字體",
77
+ "Reset": "重置",
78
+ "restore all settings to the default values": "恢復全部設定至預設值",
79
+ "Done": "完成",
80
+ "Caption Settings Dialog": "字幕設定視窗",
81
+ "Beginning of dialog window. Escape will cancel and close the window.": "開始對話視窗。離開會取消及關閉視窗",
82
+ "End of dialog window.": "結束對話視窗",
83
+ "Seek to live, currently behind live": "試圖直播,目前延時播放",
84
+ "Seek to live, currently playing live": "試圖直播,目前即時播放",
85
+ "progress bar timing: currentTime={1} duration={2}": "{1}/{2}",
86
+ "{1} is loading.": "{1} 正在載入。"
87
+ }
public/assets/player/videojs/video-js.min.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset "UTF-8";.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.vjs-modal-dialog .vjs-modal-dialog-content{position:absolute;top:0;left:0;width:100%;height:100%}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.vjs-button>.vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABDkAAsAAAAAG6gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPgAAAFZRiV3hY21hcAAAAYQAAADaAAADPv749/pnbHlmAAACYAAAC3AAABHQZg6OcWhlYWQAAA3QAAAAKwAAADYZw251aGhlYQAADfwAAAAdAAAAJA+RCLFobXR4AAAOHAAAABMAAACM744AAGxvY2EAAA4wAAAASAAAAEhF6kqubWF4cAAADngAAAAfAAAAIAE0AIFuYW1lAAAOmAAAASUAAAIK1cf1oHBvc3QAAA/AAAABJAAAAdPExYuNeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGS7wTiBgZWBgaWQ5RkDA8MvCM0cwxDOeI6BgYmBlZkBKwhIc01hcPjI+FGJHcRdyA4RZgQRADK3CxEAAHic7dFZbsMgAEXRS0ycyZnnOeG7y+qC8pU1dHusIOXxuoxaOlwZYWQB0Aea4quIEN4E9LzKbKjzDeM6H/mua6Lmc/p8yhg0lvdYx15ZG8uOLQOGjMp3EzqmzJizYMmKNRu27Nhz4MiJMxeu3Ljz4Ekqm7T8P52G8PP3lnTOVk++Z6iN6QZzNN1F7ptuN7eGOjDUoaGODHVsuvU8MdTO9Hd5aqgzQ50b6sJQl4a6MtS1oW4MdWuoO0PdG+rBUI+GejLUs6FeDPVqqDdDvRvqw1CfhpqM9At0iFLaAAB4nJ1YDXBTVRZ+5/22TUlJ8we0pHlJm7RJf5O8F2j6EymlSPkpxaL8U2xpa3DKj0CBhc2IW4eWKSokIoLsuMqssM64f+jA4HSdWXXXscBq67IOs3FXZ1ZYWVyRFdo899yXtIBQZ90k7717zz3v3HPPOfd854YCCj9cL9dL0RQFOqCbGJnrHb5EayiKIWN8iA/hWBblo6hUWm8TtCDwE80WMJus/irwyxOdxeB0MDb14VNJHnXYoLLSl6FfCUYO9nYPTA8Epg9090LprfbBbZ2hY0UlJUXHQp3/vtWkS6EBv8+rPMq5u9692f/dNxJNiqwC1xPE9TCUgCsSdQWgE3XQD25lkG4CN2xmTcOXWBOyser6RN6KnGbKSbmQ3+d0OI1m2W8QzLLkI2sykrWAgJJEtA8vGGW/2Q+CmT3n8zS9wZwu2DCvtuZKZN3xkrLh36yCZuUomQSqGpY8t/25VfHVhw8z4ebGBtfLb0ya9PCaDc+8dGTvk2dsh6z7WzvowlXKUSWo9MJ15a3KrEP2loOr2Ojhw6iW6hf2BDdEccQvZGpaAy7YovSwq8kr7HGllxpd71rkS6G0Sf11sl9OvMK1+jwPPODxjUwkOim9CU3ix1wNjXDfmJSEn618Bs6lpWwUpU+8PCqLMY650zjq8VhCIP17NEKTx3eaLL+s5Pi6yJWaWjTHLR1jYzPSV9VF/6Ojdb/1kO3Mk3uhHC0x6gc1BjlKQ+nQFxTYdaJkZ7ySVxLBbhR1dsboNXp1tCYKW2LRaEzpYcIx2BKNxaL0ZaUnSqfFoiNhHKR/GkX6PWUSAaJelQaqZL1EpoHNsajSEyPSoJ9IjhIxTdjHLmwZvhRDOiFTY/YeQnvrVZmiTQtGncECXtFTBZLOVwwMRgoXHAkXzMzPn1nAJJ8jYSbMDaqN2waGLzNhih/bZynUBMpIWSg7VYi7DRx2m8ALkIdRCJwI6ArJx2EI8kaDWeTQKeAFk9fjl/1AvwktjQ1P7NjyMGQyfd4vjipX6M/i52D7Cq80kqlcxEcGXRr/FEcgs0u5uGgB4VWuMFfpdn2Re6Hi3PqzmxWKsz6+ae2Pn9hXXw/fqM859UiGC0oKYYILJBqJrsn1Z1E5qOs9rQCiUQRREjm8yJcbHF5cUJufX1vAHlefw0XgUoboS3ETfQlTxBC4SOtuE8VPRJTBSCQSjZCpk7Gqzu+masaZ2y7Zjehho4F3g82BNDkAHpORG4+OCS+f6JTPmtRn/PH1kch6d04sp7AQb25aQ/pqUyXeQ8vrebG8OYQdXOQ+585u0sdW9rqalzRURiJ+9F4MweRFrKUjl1GUYhH1A27WOHw5cTFSFPMo9EeUIGnQTZHIaJ7AHLaOKsOODaNF9jkBjYG2QEsQ2xjMUAx2bBEbeTBWMHwskBjngq56S/yfgkBnWBa4K9sqKtq2t1UI8S9He5XuBRbawAdatrQEAi30Aks2+LM8WeCbalVZkWNylvJ+dqJnzVb+OHlSoKW8nPCP7Rd+CcZ2DdWAGqJ2CBFOphgywFFCFBNtfAbGtNPBCwxvygHeYMZMY9ZboBqwq/pVrsbgN5tkv152ODlbMfiqwGMBgxa4Exz3QhovRIUp6acqZmQzRq0ypDXS2TPLT02YIkQETnOE445oOGxOmXAqUJNNG7XgupMjPq2ua9asrj5yY/yuKteO1Kx0YNJTufrirLe1mZnat7OL6rnUdCWenpW6I8mAnbsY8KWs1PuSovCW9A/Z25PQ24a7cNOqgmTkLmBMgh4THgc4b9k2IVv1/g/F5nGljwPLfOgHAzJzh45V/4+WenTzmMtR5Z7us2Tys909UHqrPY7KbckoxRvRHhmVc3cJGE97uml0R1S0jdULVl7EvZtDFVBF35N9cEdjpgmAiOlFZ+Dtoh93+D3zzHr8RRNZQhnCNMNbcegOvpEwZoL+06cJQ07h+th3fZ/7PVbVC6ngTAV/KoLFuO6+2KFcU651gEb5ugPSIb1D+Xp8V4+k3sEIGnw5mYe4If4k1lFYr6SCzmM2EQ8iWtmwjnBI9kTwe1TlfAmXh7H02by9fW2gsjKwtv0aaURKil4OdV7rDL1MXIFNrhdxohcZXYTnq47WisrKitaObbf5+yvkLi5J6lCNZZ+B6GC38VNBZBDidSS/+mSvh6s+srgC8pyKMvDtt+de3c9fU76ZPfuM8ud4Kv0fyP/LqfepMT/3oZxSqpZaTa1DaQYLY8TFsHYbWYsPoRhRWfL5eSSQbhUGgGC3YLbVMk6PitTFNGpAsNrC6D1VNBKgBHMejaiuRWEWGgsSDBTJjqWIl8kJLlsaLJ2tXDr6xGfT85bM2Q06a46x2HTgvdnV8z5YDy/27J4zt6x2VtkzjoYpkq36kaBr4eQSg7tyiVweWubXZugtadl58ydapfbORfKsDTuZ0OBgx4cfdjCf5tbWNITnL120fdOi1RV1C3uKGzNdwYLcMvZ3BxoPyTOCD1XvXTp7U10gWCVmTV9b3r2z0SkGWovb2hp9I89O8a2smlyaO8muMU+dRmtzp60IzAoFpjLr1n388boLyf0dRvxhsHZ0qbWqDkwqvvpkj4l0fY6EIXRi5sQSrAvsVYwXRy4qJ2EVtD1AN7a0HWth9ymvL1xc3WTUKK/TAHA/bXDVtVWfOMfuGxGZv4Ln/jVr9jc3j1yMv0tndmyt9Vq88Y9gH1wtLX3KWjot5++jWHgAoZZkQ14wGQ20Fli71UmKJAy4xKMSTGbVdybW7FDDAut9XpD5AzWrYO7zQ8qffqF8+Ynd/clrHcdyxGy3a/3+mfNnzC/cBsveTjnTvXf1o6vzOlZw7WtqtdmPK/Errz/6NNtD72zmNOZfbmYdTGHfoofqI79Oc+R2n1lrnL6pOm0Up7kwxhTW12Amm7WYkXR2qYrF2AmgmbAsxZjwy1xpg/m1Je2vrp8v/nz2xpmlBg4E9hrMU341wVpTOh/OfmGvAnra8q6uctr60ZQHV3Q+WMQJykMj8ZsWn2QBOmmHMB+m5pDIpTFonYigiaKAhGEiAHF7EliVnQkjoLVIMPtJpBKHYd3A8GYH9jJzrWwmHx5Qjp7vDAX0suGRym1vtm/9W1/HyR8vczfMs6Sk8DSv855/5dlX9oQq52hT8syyp2rx5Id17IAyAM3wIjQPMOHzytEB64q6D5zT91yNbnx3V/nqnd017S9Y0605k3izoXLpsxde2n38yoOV9s1LcjwzNjbdX6asnBVaBj/6/DwKwPkpcqbDG7BnsXoSqWnUAmottYF6jMSdVyYZh3zVXCjwTiwwHH6sGuRiEHQGzuRX6whZkp123oy1BWE2mEfJ/tvIRtM4ZM5bDXiMsPMaAKOTyc5uL57rqyyc5y5JE5pm1i2S2iUX0CcaQ6lC6Zog7JqSqZmYlosl2K6pwNA84zRnQW6SaALYZQGW5lhCtU/W34N6o+bKfZ8cf3/Cl/+iTX3wBzpOY4mRkeNf3rptycGSshQWgGbYt5jFc2e0+DglIrwl6DVWQ7BuwaJ3Xk1J4VL5urnLl/Wf+gHU/hZoZdKNym6lG+I34FaNeZKcSpJIo2IeCVvpdsDGfKvzJnAwmeD37Ow65ZWwSowpgwX5T69s/rB55dP5BcpgDKFV8p7q2sn/1uc93bVzT/w6UrCqDTWvfCq/oCD/qZXNoUj8BL5Kp6GU017frfNXkAtiiyf/SOCEeLqnd8R/Ql9GlCRfctS6k5chvIBuQ1zCCjoCHL2DHNHIXxMJ3kQeO8lbsUXONeSfA5EjcG6/E+KdhN4bP04vBhdi883+BFBzQbxFbvZzQeY9LNBZc0FNfn5NwfDn6rCTnTw6R8o+gfpf5hCom33cRuiTlss3KHmZjD+BPN+5gXuA2ziS/Q73mLxUkpbKN/eqwz5uK0X9F3h2d1V4nGNgZGBgAOJd776+iue3+crAzc4AAje5Bfcg0xz9YHEOBiYQBQA8FQlFAHicY2BkYGBnAAGOPgaG//85+hkYGVCBMgBGGwNYAAAAeJxjYGBgYB8EmKOPgQEAQ04BfgAAAAAAAA4AaAB+AMwA4AECAUIBbAGYAcICGAJYArQC4AMwA7AD3gQwBJYE3AUkBWYFigYgBmYGtAbqB1gIEghYCG4IhAi2COh4nGNgZGBgUGYoZWBnAAEmIOYCQgaG/2A+AwAYCQG2AHicXZBNaoNAGIZfE5PQCKFQ2lUps2oXBfOzzAESyDKBQJdGR2NQR3QSSE/QE/QEPUUPUHqsvsrXjTMw83zPvPMNCuAWP3DQDAejdm1GjzwS7pMmwi75XngAD4/CQ/oX4TFe4Qt7uMMbOzjuDc0EmXCP/C7cJ38Iu+RP4QEe8CU8pP8WHmOPX2EPz87TPo202ey2OjlnQSXV/6arOjWFmvszMWtd6CqwOlKHq6ovycLaWMWVydXKFFZnmVFlZU46tP7R2nI5ncbi/dDkfDtFBA2DDXbYkhKc+V0Bqs5Zt9JM1HQGBRTm/EezTmZNKtpcAMs9Yu6AK9caF76zoLWIWcfMGOSkVduvSWechqZsz040Ib2PY3urxBJTzriT95lipz+TN1fmAAAAeJxtkMl2wjAMRfOAhABlKm2h80C3+ajgCKKDY6cegP59TYBzukAL+z1Zsq8ctaJTTKPrsUQLbXQQI0EXKXroY4AbDDHCGBNMcYsZ7nCPB8yxwCOe8IwXvOIN7/jAJ76wxHfUqWX+OzgumWAjJMV17i0Ndlr6irLKO+qftdT7i6y4uFSUvCknay+lFYZIZaQcmfH/xIFdYn98bqhra1aKTM/6lWMnyaYirx1rFUQZFBkb2zJUtoXeJCeg0WnLtHeSFc3OtrnozNwqi0TkSpBMDB1nSde5oJXW23hTS2/T0LilglXX7dmFVxLnq5U0vYATHFk3zX3BOisoQHNDFDeZnqKDy9hRNawN7Vh727hFzcJ5c8TILrKZfH7tIPxAFP0BpLeJPA==) format("woff");font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder,.vjs-icon-play{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.vjs-icon-play:before{content:"\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\f102"}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder,.vjs-icon-pause{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before,.vjs-icon-pause:before{content:"\f103"}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder,.vjs-icon-volume-mute{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before,.vjs-icon-volume-mute:before{content:"\f104"}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder,.vjs-icon-volume-low{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before,.vjs-icon-volume-low:before{content:"\f105"}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder,.vjs-icon-volume-mid{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before,.vjs-icon-volume-mid:before{content:"\f106"}.video-js .vjs-mute-control .vjs-icon-placeholder,.vjs-icon-volume-high{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control .vjs-icon-placeholder:before,.vjs-icon-volume-high:before{content:"\f107"}.video-js .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-enter:before{content:"\f108"}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-exit:before{content:"\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\f10b"}.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-subtitles{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-subtitles:before{content:"\f10c"}.video-js .vjs-captions-button .vjs-icon-placeholder,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-captions{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-captions-button .vjs-icon-placeholder:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-captions:before{content:"\f10d"}.video-js .vjs-chapters-button .vjs-icon-placeholder,.vjs-icon-chapters{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-chapters-button .vjs-icon-placeholder:before,.vjs-icon-chapters:before{content:"\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\f110"}.video-js .vjs-play-progress,.video-js .vjs-volume-level,.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before,.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before{content:"\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\f114"}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder,.vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before,.vjs-icon-cancel:before{content:"\f115"}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder,.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before,.vjs-icon-replay:before{content:"\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\f11c"}.video-js .vjs-descriptions-button .vjs-icon-placeholder,.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-descriptions-button .vjs-icon-placeholder:before,.vjs-icon-audio-description:before{content:"\f11d"}.video-js .vjs-audio-button .vjs-icon-placeholder,.vjs-icon-audio{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-audio-button .vjs-icon-placeholder:before,.vjs-icon-audio:before{content:"\f11e"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:"\f11f"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:"\f120"}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-enter:before{content:"\f121"}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-exit:before{content:"\f122"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:0}.video-js *,.video-js :after,.video-js :before{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-fluid{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:rgba(43,51,63,.7);border-radius:.3em;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.81666em;margin-left:-1.5em}.video-js .vjs-big-play-button:focus,.video-js:hover .vjs-big-play-button{border-color:#fff;background-color:#73859f;background-color:rgba(115,133,159,.5);transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-error .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:0 0;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.js-focus-visible .vjs-menu li.vjs-menu-item:hover,.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:rgba(115,133,159,.5)}.js-focus-visible .vjs-menu li.vjs-selected:hover,.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em 0;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0;margin-bottom:1.5em;border-top-color:rgba(43,51,63,.7)}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:rgba(43,51,63,.7);position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-menu-button-popup .vjs-menu.vjs-lock-showing,.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline:hover,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.vjs-has-started .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-error .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus,.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div,.video-js .vjs-progress-holder .vjs-play-progress{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;top:-.3333333333em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:rgba(255,255,255,.8);border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em 0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#73859f;background-color:rgba(115,133,159,.5)}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;visibility:visible;opacity:1;position:relative;transition:none}.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{position:absolute;bottom:3em;left:.5em}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-liveui .vjs-live-control,.video-js:not(.vjs-live) .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.vjs-no-flex .vjs-seek-to-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control{display:none}.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time{display:none}.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.vjs-playback-rate .vjs-playback-rate-value,.vjs-playback-rate>.vjs-menu-button{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:"X";font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;-webkit-animation:vjs-spinner-show 0s linear .3s forwards;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-loading-spinner:after,.vjs-loading-spinner:before{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@-webkit-keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{100%{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"";font-size:1.5em;line-height:inherit}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" ";font-size:1.5em;line-height:inherit}.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-audio-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-captions-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-chapters-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-current-time,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-descriptions-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-duration,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-playback-rate,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-remaining-time,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-subtitles-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-time-divider,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-control,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-audio-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-captions-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-chapters-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-current-time,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-descriptions-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-duration,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-playback-rate,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-remaining-time,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-subtitles-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-time-divider,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-control,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-audio-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-captions-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-chapters-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-current-time,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-descriptions-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-duration,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-playback-rate,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-remaining-time,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-subtitles-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-time-divider,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-control{display:none}.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover{width:auto;width:initial}.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-subs-caps-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button{display:none}.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-custom-control-spacer,.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer{flex:auto;display:block}.video-js:not(.vjs-fullscreen).vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer,.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-progress-control,.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui .vjs-progress-control{display:none}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:rgba(43,51,63,.75);color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-controls,.vjs-text-track-settings .vjs-track-settings-font{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display:grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0 24px}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:5px;padding:3px;border:none}.vjs-text-track-settings fieldset span{display:inline-block}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;margin:0 0 5px 0}.vjs-text-track-settings .vjs-label{position:absolute;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);display:block;margin:0 0 5px 0;padding:0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:active,.vjs-track-settings-controls button:focus{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f 100%)}.vjs-track-settings-controls button:hover{color:rgba(43,51,63,.75)}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}@media print{.video-js>:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js :focus:not(.focus-visible){outline:0;background:0 0}.video-js .vjs-menu :focus:not(:focus-visible),.video-js :focus:not(:focus-visible){outline:0;background:0 0}
public/assets/player/videojs/video.min.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @license
3
+ * Video.js 7.6.6 <http://videojs.com/>
4
+ * Copyright Brightcove, Inc. <https://www.brightcove.com/>
5
+ * Available under Apache License Version 2.0
6
+ * <https://github.com/videojs/video.js/blob/master/LICENSE>
7
+ *
8
+ * Includes vtt.js <https://github.com/mozilla/vtt.js>
9
+ * Available under Apache License Version 2.0
10
+ * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
11
+ */
12
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("global/window"),require("global/document")):"function"==typeof define&&define.amd?define(["global/window","global/document"],t):(e=e||self).videojs=t(e.window,e.document)}(this,function(v,h){v=v&&v.hasOwnProperty("default")?v.default:v,h=h&&h.hasOwnProperty("default")?h.default:h;var d="7.6.6",u=[],e=function(s,o){return function(e,t,i){var n=o.levels[t],r=new RegExp("^("+n+")$");if("log"!==e&&i.unshift(e.toUpperCase()+":"),i.unshift(s+":"),u&&u.push([].concat(i)),v.console){var a=v.console[e];a||"debug"!==e||(a=v.console.info||v.console.log),a&&n&&r.test(e)&&a[Array.isArray(i)?"apply":"call"](v.console,i)}}};var p=function t(i){function n(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];r("log",a,t)}var r,a="info";return r=e(i,n),n.createLogger=function(e){return t(i+": "+e)},n.levels={all:"debug|log|warn|error",off:"",debug:"debug|log|warn|error",info:"log|warn|error",warn:"warn|error",error:"error",DEFAULT:a},n.level=function(e){if("string"==typeof e){if(!n.levels.hasOwnProperty(e))throw new Error('"'+e+'" in not a valid log level');a=e}return a},(n.history=function(){return u?[].concat(u):[]}).filter=function(t){return(u||[]).filter(function(e){return new RegExp(".*"+t+".*").test(e[0])})},n.history.clear=function(){u&&(u.length=0)},n.history.disable=function(){null!==u&&(u.length=0,u=null)},n.history.enable=function(){null===u&&(u=[])},n.error=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return r("error",a,t)},n.warn=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return r("warn",a,t)},n.debug=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return r("debug",a,t)},n}("VIDEOJS"),f=p.createLogger,t=Object.prototype.toString,a=function(e){return s(e)?Object.keys(e):[]};function r(t,i){a(t).forEach(function(e){return i(t[e],e)})}function m(i){for(var e=arguments.length,t=new Array(1<e?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return Object.assign?Object.assign.apply(Object,[i].concat(t)):(t.forEach(function(e){e&&r(e,function(e,t){i[t]=e})}),i)}function s(e){return!!e&&"object"==typeof e}function o(e){return s(e)&&"[object Object]"===t.call(e)&&e.constructor===Object}function n(e,t){if(!e||!t)return"";if("function"!=typeof v.getComputedStyle)return"";var i=v.getComputedStyle(e);return i?i.getPropertyValue(t)||i[t]:""}function l(e){return"string"==typeof e&&/\S/.test(e)}function i(e){if(/\s/.test(e))throw new Error("class has illegal whitespace characters")}function c(){return h===v.document}function g(e){return s(e)&&1===e.nodeType}function y(){try{return v.parent!==v.self}catch(e){return!0}}function _(n){return function(e,t){if(!l(e))return h[n](null);l(t)&&(t=h.querySelector(t));var i=g(t)?t:h;return i[n]&&i[n](e)}}function b(e,i,t,n){void 0===e&&(e="div"),void 0===i&&(i={}),void 0===t&&(t={});var r=h.createElement(e);return Object.getOwnPropertyNames(i).forEach(function(e){var t=i[e];-1!==e.indexOf("aria-")||"role"===e||"type"===e?(p.warn("Setting attributes in the second argument of createEl()\nhas been deprecated. Use the third argument instead.\ncreateEl(type, properties, attributes). Attempting to set "+e+" to "+t+"."),r.setAttribute(e,t)):"textContent"===e?T(r,t):r[e]=t}),Object.getOwnPropertyNames(t).forEach(function(e){r.setAttribute(e,t[e])}),n&&F(r,n),r}function T(e,t){return"undefined"==typeof e.textContent?e.innerText=t:e.textContent=t,e}function S(e,t){t.firstChild?t.insertBefore(e,t.firstChild):t.appendChild(e)}function k(e,t){return i(t),e.classList?e.classList.contains(t):function(e){return new RegExp("(^|\\s)"+e+"($|\\s)")}(t).test(e.className)}function C(e,t){return e.classList?e.classList.add(t):k(e,t)||(e.className=(e.className+" "+t).trim()),e}function E(e,t){return e.classList?e.classList.remove(t):(i(t),e.className=e.className.split(/\s+/).filter(function(e){return e!==t}).join(" ")),e}function w(e,t,i){var n=k(e,t);if("function"==typeof i&&(i=i(e,t)),"boolean"!=typeof i&&(i=!n),i!==n)return i?C(e,t):E(e,t),e}function A(i,n){Object.getOwnPropertyNames(n).forEach(function(e){var t=n[e];null===t||"undefined"==typeof t||!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})}function P(e){var t={},i=",autoplay,controls,playsinline,loop,muted,default,defaultMuted,";if(e&&e.attributes&&0<e.attributes.length)for(var n=e.attributes,r=n.length-1;0<=r;r--){var a=n[r].name,s=n[r].value;"boolean"!=typeof e[a]&&-1===i.indexOf(","+a+",")||(s=null!==s),t[a]=s}return t}function I(e,t){return e.getAttribute(t)}function L(e,t,i){e.setAttribute(t,i)}function O(e,t){e.removeAttribute(t)}function x(){h.body.focus(),h.onselectstart=function(){return!1}}function D(){h.onselectstart=function(){return!0}}function U(e){if(e&&e.getBoundingClientRect&&e.parentNode){var t=e.getBoundingClientRect(),i={};return["bottom","height","left","right","top","width"].forEach(function(e){void 0!==t[e]&&(i[e]=t[e])}),i.height||(i.height=parseFloat(n(e,"height"))),i.width||(i.width=parseFloat(n(e,"width"))),i}}function R(e){var t;if(e.getBoundingClientRect&&e.parentNode&&(t=e.getBoundingClientRect()),!t)return{left:0,top:0};var i=h.documentElement,n=h.body,r=i.clientLeft||n.clientLeft||0,a=v.pageXOffset||n.scrollLeft,s=t.left+a-r,o=i.clientTop||n.clientTop||0,u=v.pageYOffset||n.scrollTop,l=t.top+u-o;return{left:Math.round(s),top:Math.round(l)}}function M(e,t){var i={},n=R(e),r=e.offsetWidth,a=e.offsetHeight,s=n.top,o=n.left,u=t.pageY,l=t.pageX;return t.changedTouches&&(l=t.changedTouches[0].pageX,u=t.changedTouches[0].pageY),i.y=Math.max(0,Math.min(1,(s-u+a)/a)),i.x=Math.max(0,Math.min(1,(l-o)/r)),i}function N(e){return s(e)&&3===e.nodeType}function B(e){for(;e.firstChild;)e.removeChild(e.firstChild);return e}function j(e){return"function"==typeof e&&(e=e()),(Array.isArray(e)?e:[e]).map(function(e){return"function"==typeof e&&(e=e()),g(e)||N(e)?e:"string"==typeof e&&/\S/.test(e)?h.createTextNode(e):void 0}).filter(function(e){return e})}function F(t,e){return j(e).forEach(function(e){return t.appendChild(e)}),t}function H(e,t){return F(B(e),t)}function V(e){return void 0===e.button&&void 0===e.buttons||(0===e.button&&void 0===e.buttons||("mouseup"===e.type&&0===e.button&&0===e.buttons||0===e.button&&1===e.buttons))}var q,W=_("querySelector"),z=_("querySelectorAll"),$=Object.freeze({isReal:c,isEl:g,isInFrame:y,createEl:b,textContent:T,prependTo:S,hasClass:k,addClass:C,removeClass:E,toggleClass:w,setAttributes:A,getAttributes:P,getAttribute:I,setAttribute:L,removeAttribute:O,blockTextSelection:x,unblockTextSelection:D,getBoundingClientRect:U,findPosition:R,getPointerPosition:M,isTextNode:N,emptyEl:B,normalizeContent:j,appendContent:F,insertContent:H,isSingleLeftClick:V,$:W,$$:z}),G=!1,X=function(){if(c()&&!1!==q.options.autoSetup){var e=Array.prototype.slice.call(h.getElementsByTagName("video")),t=Array.prototype.slice.call(h.getElementsByTagName("audio")),i=Array.prototype.slice.call(h.getElementsByTagName("video-js")),n=e.concat(t,i);if(n&&0<n.length)for(var r=0,a=n.length;r<a;r++){var s=n[r];if(!s||!s.getAttribute){K(1);break}void 0===s.player&&null!==s.getAttribute("data-setup")&&q(s)}else G||K(1)}};function K(e,t){t&&(q=t),v.setTimeout(X,e)}function Y(){G=!0,v.removeEventListener("load",Y)}c()&&("complete"===h.readyState?Y():v.addEventListener("load",Y));function Q(e){var t=h.createElement("style");return t.className=e,t}function J(e,t){e.styleSheet?e.styleSheet.cssText=t:e.textContent=t}var Z,ee=3;function te(){return ee++}v.WeakMap||(Z=function(){function e(){this.vdata="vdata"+Math.floor(v.performance&&v.performance.now()||Date.now()),this.data={}}var t=e.prototype;return t.set=function(e,t){var i=e[this.vdata]||te();return e[this.vdata]||(e[this.vdata]=i),this.data[i]=t,this},t.get=function(e){var t=e[this.vdata];if(t)return this.data[t];p("We have no data for this element",e)},t.has=function(e){return e[this.vdata]in this.data},t.delete=function(e){var t=e[this.vdata];t&&(delete this.data[t],delete e[this.vdata])},e}());var ie=v.WeakMap?new WeakMap:new Z;function ne(e,t){if(ie.has(e)){var i=ie.get(e);0===i.handlers[t].length&&(delete i.handlers[t],e.removeEventListener?e.removeEventListener(t,i.dispatcher,!1):e.detachEvent&&e.detachEvent("on"+t,i.dispatcher)),Object.getOwnPropertyNames(i.handlers).length<=0&&(delete i.handlers,delete i.dispatcher,delete i.disabled),0===Object.getOwnPropertyNames(i).length&&ie.delete(e)}}function re(t,i,e,n){e.forEach(function(e){t(i,e,n)})}function ae(e){function t(){return!0}function i(){return!1}if(!e||!e.isPropagationStopped){var n=e||v.event;for(var r in e={},n)"layerX"!==r&&"layerY"!==r&&"keyLocation"!==r&&"webkitMovementX"!==r&&"webkitMovementY"!==r&&("returnValue"===r&&n.preventDefault||(e[r]=n[r]));if(e.target||(e.target=e.srcElement||h),e.relatedTarget||(e.relatedTarget=e.fromElement===e.target?e.toElement:e.fromElement),e.preventDefault=function(){n.preventDefault&&n.preventDefault(),e.returnValue=!1,n.returnValue=!1,e.defaultPrevented=!0},e.defaultPrevented=!1,e.stopPropagation=function(){n.stopPropagation&&n.stopPropagation(),e.cancelBubble=!0,n.cancelBubble=!0,e.isPropagationStopped=t},e.isPropagationStopped=i,e.stopImmediatePropagation=function(){n.stopImmediatePropagation&&n.stopImmediatePropagation(),e.isImmediatePropagationStopped=t,e.stopPropagation()},e.isImmediatePropagationStopped=i,null!==e.clientX&&void 0!==e.clientX){var a=h.documentElement,s=h.body;e.pageX=e.clientX+(a&&a.scrollLeft||s&&s.scrollLeft||0)-(a&&a.clientLeft||s&&s.clientLeft||0),e.pageY=e.clientY+(a&&a.scrollTop||s&&s.scrollTop||0)-(a&&a.clientTop||s&&s.clientTop||0)}e.which=e.charCode||e.keyCode,null!==e.button&&void 0!==e.button&&(e.button=1&e.button?0:4&e.button?1:2&e.button?2:0)}return e}var se=!1;!function(){try{var e=Object.defineProperty({},"passive",{get:function(){se=!0}});v.addEventListener("test",null,e),v.removeEventListener("test",null,e)}catch(e){}}();var oe=["touchstart","touchmove"];function ue(s,e,t){if(Array.isArray(e))return re(ue,s,e,t);ie.has(s)||ie.set(s,{});var o=ie.get(s);if(o.handlers||(o.handlers={}),o.handlers[e]||(o.handlers[e]=[]),t.guid||(t.guid=te()),o.handlers[e].push(t),o.dispatcher||(o.disabled=!1,o.dispatcher=function(e,t){if(!o.disabled){e=ae(e);var i=o.handlers[e.type];if(i)for(var n=i.slice(0),r=0,a=n.length;r<a&&!e.isImmediatePropagationStopped();r++)try{n[r].call(s,e,t)}catch(e){p.error(e)}}}),1===o.handlers[e].length)if(s.addEventListener){var i=!1;se&&-1<oe.indexOf(e)&&(i={passive:!0}),s.addEventListener(e,o.dispatcher,i)}else s.attachEvent&&s.attachEvent("on"+e,o.dispatcher)}function le(e,t,i){if(ie.has(e)){var n=ie.get(e);if(n.handlers){if(Array.isArray(t))return re(le,e,t,i);function r(e,t){n.handlers[t]=[],ne(e,t)}if(void 0!==t){var a=n.handlers[t];if(a)if(i){if(i.guid)for(var s=0;s<a.length;s++)a[s].guid===i.guid&&a.splice(s--,1);ne(e,t)}else r(e,t)}else for(var o in n.handlers)Object.prototype.hasOwnProperty.call(n.handlers||{},o)&&r(e,o)}}}function ce(e,t,i){var n=ie.has(e)?ie.get(e):{},r=e.parentNode||e.ownerDocument;if("string"==typeof t?t={type:t,target:e}:t.target||(t.target=e),t=ae(t),n.dispatcher&&n.dispatcher.call(e,t,i),r&&!t.isPropagationStopped()&&!0===t.bubbles)ce.call(null,r,t,i);else if(!r&&!t.defaultPrevented&&t.target&&t.target[t.type]){ie.has(t.target)||ie.set(t.target,{});var a=ie.get(t.target);t.target[t.type]&&(a.disabled=!0,"function"==typeof t.target[t.type]&&t.target[t.type](),a.disabled=!1)}return!t.defaultPrevented}function he(e,t,i){if(Array.isArray(t))return re(he,e,t,i);function n(){le(e,t,n),i.apply(this,arguments)}n.guid=i.guid=i.guid||te(),ue(e,t,n)}function de(e,t,i){function n(){le(e,t,n),i.apply(this,arguments)}n.guid=i.guid=i.guid||te(),ue(e,t,n)}function pe(e,t,i){t.guid||(t.guid=te());var n=t.bind(e);return n.guid=i?i+"_"+t.guid:t.guid,n}function fe(t,i){var n=v.performance.now();return function(){var e=v.performance.now();i<=e-n&&(t.apply(void 0,arguments),n=e)}}function me(){}var ge,ye=Object.freeze({fixEvent:ae,on:ue,off:le,trigger:ce,one:he,any:de});me.prototype.allowedEvents_={},me.prototype.addEventListener=me.prototype.on=function(e,t){var i=this.addEventListener;this.addEventListener=function(){},ue(this,e,t),this.addEventListener=i},me.prototype.removeEventListener=me.prototype.off=function(e,t){le(this,e,t)},me.prototype.one=function(e,t){var i=this.addEventListener;this.addEventListener=function(){},he(this,e,t),this.addEventListener=i},me.prototype.any=function(e,t){var i=this.addEventListener;this.addEventListener=function(){},de(this,e,t),this.addEventListener=i},me.prototype.dispatchEvent=me.prototype.trigger=function(e){var t=e.type||e;"string"==typeof e&&(e={type:t}),e=ae(e),this.allowedEvents_[t]&&this["on"+t]&&this["on"+t](e),ce(this,e)},me.prototype.queueTrigger=function(e){var t=this;ge=ge||new Map;var i=e.type||e,n=ge.get(this);n||(n=new Map,ge.set(this,n));var r=n.get(i);n.delete(i),v.clearTimeout(r);var a=v.setTimeout(function(){0===n.size&&(n=null,ge.delete(t)),t.trigger(e)},0);n.set(i,a)};function ve(e){return"string"==typeof e&&/\S/.test(e)||Array.isArray(e)&&!!e.length}function _e(e){if(!e.nodeName&&!Ce(e))throw new Error("Invalid target; must be a DOM node or evented object.")}function be(e){if(!ve(e))throw new Error("Invalid event type; must be a non-empty string or array.")}function Te(e){if("function"!=typeof e)throw new Error("Invalid listener; must be a function.")}function Se(e,t){var i,n,r,a=t.length<3||t[0]===e||t[0]===e.eventBusEl_;return r=a?(i=e.eventBusEl_,3<=t.length&&t.shift(),n=t[0],t[1]):(i=t[0],n=t[1],t[2]),_e(i),be(n),Te(r),{isTargetingSelf:a,target:i,type:n,listener:r=pe(e,r)}}function ke(e,t,i,n){_e(e),e.nodeName?ye[t](e,i,n):e[t](i,n)}var Ce=function(t){return t instanceof me||!!t.eventBusEl_&&["on","one","off","trigger"].every(function(e){return"function"==typeof t[e]})},Ee={on:function(){for(var e=this,t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];var r=Se(this,i),a=r.isTargetingSelf,s=r.target,o=r.type,u=r.listener;if(ke(s,"on",o,u),!a){function l(){return e.off(s,o,u)}l.guid=u.guid;function c(){return e.off("dispose",l)}c.guid=u.guid,ke(this,"on","dispose",l),ke(s,"on","dispose",c)}},one:function(){for(var n=this,e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var r=Se(this,t),a=r.isTargetingSelf,s=r.target,o=r.type,u=r.listener;if(a)ke(s,"one",o,u);else{function l(){n.off(s,o,l);for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];u.apply(null,t)}l.guid=u.guid,ke(s,"one",o,l)}},any:function(){for(var n=this,e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var r=Se(this,t),a=r.isTargetingSelf,s=r.target,o=r.type,u=r.listener;if(a)ke(s,"any",o,u);else{function l(){n.off(s,o,l);for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];u.apply(null,t)}l.guid=u.guid,ke(s,"any",o,l)}},off:function(e,t,i){if(!e||ve(e))le(this.eventBusEl_,e,t);else{var n=e,r=t;_e(n),be(r),Te(i),i=pe(this,i),this.off("dispose",i),n.nodeName?(le(n,r,i),le(n,"dispose",i)):Ce(n)&&(n.off(r,i),n.off("dispose",i))}},trigger:function(e,t){return ce(this.eventBusEl_,e,t)}};function we(e,t){void 0===t&&(t={});var i=t.eventBusKey;if(i){if(!e[i].nodeName)throw new Error('The eventBusKey "'+i+'" does not refer to an element.');e.eventBusEl_=e[i]}else e.eventBusEl_=b("span",{className:"vjs-event-bus"});return m(e,Ee),e.eventedCallbacks&&e.eventedCallbacks.forEach(function(e){e()}),e.on("dispose",function(){e.off(),v.setTimeout(function(){e.eventBusEl_=null},0)}),e}var Ae={state:{},setState:function(e){var i,n=this;return"function"==typeof e&&(e=e()),r(e,function(e,t){n.state[t]!==e&&((i=i||{})[t]={from:n.state[t],to:e}),n.state[t]=e}),i&&Ce(this)&&this.trigger({changes:i,type:"statechanged"}),i}};function Pe(e,t){return m(e,Ae),e.state=m({},e.state,t),"function"==typeof e.handleStateChanged&&Ce(e)&&e.on("statechanged",e.handleStateChanged),e}function Ie(e){return"string"!=typeof e?e:e.replace(/./,function(e){return e.toLowerCase()})}function Le(e){return"string"!=typeof e?e:e.replace(/./,function(e){return e.toUpperCase()})}function Oe(){for(var i={},e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.forEach(function(e){e&&r(e,function(e,t){o(e)?(o(i[t])||(i[t]={}),i[t]=Oe(i[t],e)):i[t]=e})}),i}var xe=function(){function l(e,t,i){if(!e&&this.play?this.player_=e=this:this.player_=e,this.parentComponent_=null,this.options_=Oe({},this.options_),t=this.options_=Oe(this.options_,t),this.id_=t.id||t.el&&t.el.id,!this.id_){var n=e&&e.id&&e.id()||"no_player";this.id_=n+"_component_"+te()}var r;this.name_=t.name||null,t.el?this.el_=t.el:!1!==t.createEl&&(this.el_=this.createEl()),!1!==t.evented&&we(this,{eventBusKey:this.el_?"el_":null}),Pe(this,this.constructor.defaultState),this.children_=[],this.childIndex_={},this.childNameIndex_={},v.Set||(r=function(){function e(){this.set_={}}var t=e.prototype;return t.has=function(e){return e in this.set_},t.delete=function(e){var t=this.has(e);return delete this.set_[e],t},t.add=function(e){return this.set_[e]=1,this},t.forEach=function(e,t){for(var i in this.set_)e.call(t,i,i,this)},e}()),this.setTimeoutIds_=v.Set?new Set:new r,this.setIntervalIds_=v.Set?new Set:new r,this.rafIds_=v.Set?new Set:new r,(this.clearingTimersOnDispose_=!1)!==t.initChildren&&this.initChildren(),this.ready(i),!1!==t.reportTouchActivity&&this.enableTouchActivity()}var e=l.prototype;return e.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var e=this.children_.length-1;0<=e;e--)this.children_[e].dispose&&this.children_[e].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.parentComponent_=null,this.el_&&(this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),ie.has(this.el_)&&ie.delete(this.el_),this.el_=null),this.player_=null},e.player=function(){return this.player_},e.options=function(e){return e&&(this.options_=Oe(this.options_,e)),this.options_},e.el=function(){return this.el_},e.createEl=function(e,t,i){return b(e,t,i)},e.localize=function(e,r,t){void 0===t&&(t=e);var i=this.player_.language&&this.player_.language(),n=this.player_.languages&&this.player_.languages(),a=n&&n[i],s=i&&i.split("-")[0],o=n&&n[s],u=t;return a&&a[e]?u=a[e]:o&&o[e]&&(u=o[e]),r&&(u=u.replace(/\{(\d+)\}/g,function(e,t){var i=r[t-1],n=i;return"undefined"==typeof i&&(n=e),n})),u},e.contentEl=function(){return this.contentEl_||this.el_},e.id=function(){return this.id_},e.name=function(){return this.name_},e.children=function(){return this.children_},e.getChildById=function(e){return this.childIndex_[e]},e.getChild=function(e){if(e)return this.childNameIndex_[e]},e.addChild=function(e,t,i){var n,r;if(void 0===t&&(t={}),void 0===i&&(i=this.children_.length),"string"==typeof e){r=Le(e);var a=t.componentClass||r;t.name=r;var s=l.getComponent(a);if(!s)throw new Error("Component "+a+" does not exist");if("function"!=typeof s)return null;n=new s(this.player_||this,t)}else n=e;if(n.parentComponent_&&n.parentComponent_.removeChild(n),this.children_.splice(i,0,n),n.parentComponent_=this,"function"==typeof n.id&&(this.childIndex_[n.id()]=n),(r=r||n.name&&Le(n.name()))&&(this.childNameIndex_[r]=n,this.childNameIndex_[Ie(r)]=n),"function"==typeof n.el&&n.el()){var o=this.contentEl().children[i]||null;this.contentEl().insertBefore(n.el(),o)}return n},e.removeChild=function(e){if("string"==typeof e&&(e=this.getChild(e)),e&&this.children_){for(var t=!1,i=this.children_.length-1;0<=i;i--)if(this.children_[i]===e){t=!0,this.children_.splice(i,1);break}if(t){e.parentComponent_=null,this.childIndex_[e.id()]=null,this.childNameIndex_[Le(e.name())]=null,this.childNameIndex_[Ie(e.name())]=null;var n=e.el();n&&n.parentNode===this.contentEl()&&this.contentEl().removeChild(e.el())}}},e.initChildren=function(){var r=this,n=this.options_.children;if(n){var e,a=this.options_,i=l.getComponent("Tech");(e=Array.isArray(n)?n:Object.keys(n)).concat(Object.keys(this.options_).filter(function(t){return!e.some(function(e){return"string"==typeof e?t===e:t===e.name})})).map(function(e){var t,i;return i="string"==typeof e?n[t=e]||r.options_[t]||{}:(t=e.name,e),{name:t,opts:i}}).filter(function(e){var t=l.getComponent(e.opts.componentClass||Le(e.name));return t&&!i.isTech(t)}).forEach(function(e){var t=e.name,i=e.opts;if(void 0!==a[t]&&(i=a[t]),!1!==i){!0===i&&(i={}),i.playerOptions=r.options_.playerOptions;var n=r.addChild(t,i);n&&(r[t]=n)}})}},e.buildCSSClass=function(){return""},e.ready=function(e,t){if(void 0===t&&(t=!1),e)return this.isReady_?void(t?e.call(this):this.setTimeout(e,1)):(this.readyQueue_=this.readyQueue_||[],void this.readyQueue_.push(e))},e.triggerReady=function(){this.isReady_=!0,this.setTimeout(function(){var e=this.readyQueue_;this.readyQueue_=[],e&&0<e.length&&e.forEach(function(e){e.call(this)},this),this.trigger("ready")},1)},e.$=function(e,t){return W(e,t||this.contentEl())},e.$$=function(e,t){return z(e,t||this.contentEl())},e.hasClass=function(e){return k(this.el_,e)},e.addClass=function(e){C(this.el_,e)},e.removeClass=function(e){E(this.el_,e)},e.toggleClass=function(e,t){w(this.el_,e,t)},e.show=function(){this.removeClass("vjs-hidden")},e.hide=function(){this.addClass("vjs-hidden")},e.lockShowing=function(){this.addClass("vjs-lock-showing")},e.unlockShowing=function(){this.removeClass("vjs-lock-showing")},e.getAttribute=function(e){return I(this.el_,e)},e.setAttribute=function(e,t){L(this.el_,e,t)},e.removeAttribute=function(e){O(this.el_,e)},e.width=function(e,t){return this.dimension("width",e,t)},e.height=function(e,t){return this.dimension("height",e,t)},e.dimensions=function(e,t){this.width(e,!0),this.height(t)},e.dimension=function(e,t,i){if(void 0!==t)return null!==t&&t==t||(t=0),-1!==(""+t).indexOf("%")||-1!==(""+t).indexOf("px")?this.el_.style[e]=t:this.el_.style[e]="auto"===t?"":t+"px",void(i||this.trigger("componentresize"));if(!this.el_)return 0;var n=this.el_.style[e],r=n.indexOf("px");return-1!==r?parseInt(n.slice(0,r),10):parseInt(this.el_["offset"+Le(e)],10)},e.currentDimension=function(e){var t=0;if("width"!==e&&"height"!==e)throw new Error("currentDimension only accepts width or height value");if(t=n(this.el_,e),0===(t=parseFloat(t))||isNaN(t)){var i="offset"+Le(e);t=this.el_[i]}return t},e.currentDimensions=function(){return{width:this.currentDimension("width"),height:this.currentDimension("height")}},e.currentWidth=function(){return this.currentDimension("width")},e.currentHeight=function(){return this.currentDimension("height")},e.focus=function(){this.el_.focus()},e.blur=function(){this.el_.blur()},e.handleKeyDown=function(e){this.player_&&(e.stopPropagation(),this.player_.handleKeyDown(e))},e.handleKeyPress=function(e){this.handleKeyDown(e)},e.emitTapEvents=function(){var n,t=0,r=null;this.on("touchstart",function(e){1===e.touches.length&&(r={pageX:e.touches[0].pageX,pageY:e.touches[0].pageY},t=v.performance.now(),n=!0)}),this.on("touchmove",function(e){if(1<e.touches.length)n=!1;else if(r){var t=e.touches[0].pageX-r.pageX,i=e.touches[0].pageY-r.pageY;10<Math.sqrt(t*t+i*i)&&(n=!1)}});function e(){n=!1}this.on("touchleave",e),this.on("touchcancel",e),this.on("touchend",function(e){!(r=null)===n&&v.performance.now()-t<200&&(e.preventDefault(),this.trigger("tap"))})},e.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var t,i=pe(this.player(),this.player().reportUserActivity);this.on("touchstart",function(){i(),this.clearInterval(t),t=this.setInterval(i,250)});function e(e){i(),this.clearInterval(t)}this.on("touchmove",i),this.on("touchend",e),this.on("touchcancel",e)}},e.setTimeout=function(e,t){var i,n=this;return e=pe(this,e),this.clearTimersOnDispose_(),i=v.setTimeout(function(){n.setTimeoutIds_.has(i)&&n.setTimeoutIds_.delete(i),e()},t),this.setTimeoutIds_.add(i),i},e.clearTimeout=function(e){return this.setTimeoutIds_.has(e)&&(this.setTimeoutIds_.delete(e),v.clearTimeout(e)),e},e.setInterval=function(e,t){e=pe(this,e),this.clearTimersOnDispose_();var i=v.setInterval(e,t);return this.setIntervalIds_.add(i),i},e.clearInterval=function(e){return this.setIntervalIds_.has(e)&&(this.setIntervalIds_.delete(e),v.clearInterval(e)),e},e.requestAnimationFrame=function(e){var t,i=this;return this.supportsRaf_?(this.clearTimersOnDispose_(),e=pe(this,e),t=v.requestAnimationFrame(function(){i.rafIds_.has(t)&&i.rafIds_.delete(t),e()}),this.rafIds_.add(t),t):this.setTimeout(e,1e3/60)},e.cancelAnimationFrame=function(e){return this.supportsRaf_?(this.rafIds_.has(e)&&(this.rafIds_.delete(e),v.cancelAnimationFrame(e)),e):this.clearTimeout(e)},e.clearTimersOnDispose_=function(){var n=this;this.clearingTimersOnDispose_||(this.clearingTimersOnDispose_=!0,this.one("dispose",function(){[["rafIds_","cancelAnimationFrame"],["setTimeoutIds_","clearTimeout"],["setIntervalIds_","clearInterval"]].forEach(function(e){var t=e[0],i=e[1];n[t].forEach(n[i],n)}),n.clearingTimersOnDispose_=!1}))},l.registerComponent=function(e,t){if("string"!=typeof e||!e)throw new Error('Illegal component name, "'+e+'"; must be a non-empty string.');var i,n=l.getComponent("Tech"),r=n&&n.isTech(t),a=l===t||l.prototype.isPrototypeOf(t.prototype);if(r||!a)throw i=r?"techs must be registered using Tech.registerTech()":"must be a Component subclass",new Error('Illegal component, "'+e+'"; '+i+".");e=Le(e),l.components_||(l.components_={});var s=l.getComponent("Player");if("Player"===e&&s&&s.players){var o=s.players,u=Object.keys(o);if(o&&0<u.length&&u.map(function(e){return o[e]}).every(Boolean))throw new Error("Can not register Player component after player has been created.")}return l.components_[e]=t,l.components_[Ie(e)]=t},l.getComponent=function(e){if(e&&l.components_)return l.components_[e]},l}();function De(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}function Ue(e,t){return(Ue=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Re(e,t,i){return(Re=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,i){var n=[null];n.push.apply(n,t);var r=new(Function.bind.apply(e,n));return i&&Ue(r,i.prototype),r}).apply(null,arguments)}function Me(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}xe.prototype.supportsRaf_="function"==typeof v.requestAnimationFrame&&"function"==typeof v.cancelAnimationFrame,xe.registerComponent("Component",xe);var Ne,Be,je,Fe,He=v.navigator&&v.navigator.userAgent||"",Ve=/AppleWebKit\/([\d.]+)/i.exec(He),qe=Ve?parseFloat(Ve.pop()):null,We=/iPad/i.test(He),ze=/iPhone/i.test(He)&&!We,$e=/iPod/i.test(He),Ge=ze||We||$e,Xe=(Ne=He.match(/OS (\d+)_/i))&&Ne[1]?Ne[1]:null,Ke=/Android/i.test(He),Ye=function(){var e=He.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!e)return null;var t=e[1]&&parseFloat(e[1]),i=e[2]&&parseFloat(e[2]);return t&&i?parseFloat(e[1]+"."+e[2]):t||null}(),Qe=Ke&&Ye<5&&qe<537,Je=/Firefox/i.test(He),Ze=/Edge/i.test(He),et=!Ze&&(/Chrome/i.test(He)||/CriOS/i.test(He)),tt=(Be=He.match(/(Chrome|CriOS)\/(\d+)/))&&Be[2]?parseFloat(Be[2]):null,it=(je=/MSIE\s(\d+)\.\d/.exec(He),!(Fe=je&&parseFloat(je[1]))&&/Trident\/7.0/i.test(He)&&/rv:11.0/.test(He)&&(Fe=11),Fe),nt=/Safari/i.test(He)&&!et&&!Ke&&!Ze,rt=(nt||Ge)&&!et,at=/Windows/i.test(He),st=c()&&("ontouchstart"in v||v.navigator.maxTouchPoints||v.DocumentTouch&&v.document instanceof v.DocumentTouch),ot=Object.freeze({IS_IPAD:We,IS_IPHONE:ze,IS_IPOD:$e,IS_IOS:Ge,IOS_VERSION:Xe,IS_ANDROID:Ke,ANDROID_VERSION:Ye,IS_NATIVE_ANDROID:Qe,IS_FIREFOX:Je,IS_EDGE:Ze,IS_CHROME:et,CHROME_VERSION:tt,IE_VERSION:it,IS_SAFARI:nt,IS_ANY_SAFARI:rt,IS_WINDOWS:at,TOUCH_ENABLED:st});function ut(e,t,i,n){return function(e,t,i){if("number"!=typeof t||t<0||i<t)throw new Error("Failed to execute '"+e+"' on 'TimeRanges': The index provided ("+t+") is non-numeric or out of bounds (0-"+i+").")}(e,n,i.length-1),i[n][t]}function lt(e){return void 0===e||0===e.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:e.length,start:ut.bind(null,"start",0,e),end:ut.bind(null,"end",1,e)}}function ct(e,t){return Array.isArray(e)?lt(e):void 0===e||void 0===t?lt():lt([[e,t]])}function ht(e,t){var i,n,r=0;if(!t)return 0;e&&e.length||(e=ct(0,0));for(var a=0;a<e.length;a++)i=e.start(a),t<(n=e.end(a))&&(n=t),r+=n-i;return r/t}for(var dt,pt={prefixed:!0},ft=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror","fullscreen"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror","-webkit-full-screen"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror","-moz-full-screen"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError","-ms-fullscreen"]],mt=ft[0],gt=0;gt<ft.length;gt++)if(ft[gt][1]in h){dt=ft[gt];break}if(dt){for(var yt=0;yt<dt.length;yt++)pt[mt[yt]]=dt[yt];pt.prefixed=dt[0]!==mt[0]}function vt(e){if(e instanceof vt)return e;"number"==typeof e?this.code=e:"string"==typeof e?this.message=e:s(e)&&("number"==typeof e.code&&(this.code=e.code),m(this,e)),this.message||(this.message=vt.defaultMessages[this.code]||"")}vt.prototype.code=0,vt.prototype.message="",vt.prototype.status=null,vt.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],vt.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var _t=0;_t<vt.errorTypes.length;_t++)vt[vt.errorTypes[_t]]=_t,vt.prototype[vt.errorTypes[_t]]=_t;var bt=function(e,t){var i,n=null;try{i=JSON.parse(e,t)}catch(e){n=e}return[n,i]};function Tt(e){return null!=e&&"function"==typeof e.then}function St(e){Tt(e)&&e.then(null,function(e){})}function kt(n){return["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce(function(e,t,i){return n[t]&&(e[t]=n[t]),e},{cues:n.cues&&Array.prototype.map.call(n.cues,function(e){return{startTime:e.startTime,endTime:e.endTime,text:e.text,id:e.id}})})}var Ct=function(e){var t=e.$$("track"),i=Array.prototype.map.call(t,function(e){return e.track});return Array.prototype.map.call(t,function(e){var t=kt(e.track);return e.src&&(t.src=e.src),t}).concat(Array.prototype.filter.call(e.textTracks(),function(e){return-1===i.indexOf(e)}).map(kt))},Et=function(e,i){return e.forEach(function(e){var t=i.addRemoteTextTrack(e).track;!e.src&&e.cues&&e.cues.forEach(function(e){return t.addCue(e)})}),i.textTracks()};function wt(e,t){return e(t={exports:{}},t.exports),t.exports}var At=wt(function(e,t){function i(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return s[e];var i,n=String(e);return(i=r[n.toLowerCase()])?i:(i=a[n.toLowerCase()])||(1===n.length?n.charCodeAt(0):void 0)}i.isEventKey=function(e,t){if(e&&"object"==typeof e){var i=e.which||e.keyCode||e.charCode;if(null==i)return!1;if("string"==typeof t){var n;if(n=r[t.toLowerCase()])return n===i;if(n=a[t.toLowerCase()])return n===i}else if("number"==typeof t)return t===i;return!1}};var r=(t=e.exports=i).code=t.codes={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,command:91,"left command":91,"right command":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},a=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91};for(n=97;n<123;n++)r[String.fromCharCode(n)]=n-32;for(var n=48;n<58;n++)r[n-48]=n;for(n=1;n<13;n++)r["f"+n]=n+111;for(n=0;n<10;n++)r["numpad "+n]=n+96;var s=t.names=t.title={};for(n in r)s[r[n]]=n;for(var o in a)r[o]=a[o]}),Pt=(At.code,At.codes,At.aliases,At.names,At.title,"vjs-modal-dialog"),It=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).opened_=i.hasBeenOpened_=i.hasBeenFilled_=!1,i.closeable(!i.options_.uncloseable),i.content(i.options_.content),i.contentEl_=b("div",{className:Pt+"-content"},{role:"document"}),i.descEl_=b("p",{className:Pt+"-description vjs-control-text",id:i.el().getAttribute("aria-describedby")}),T(i.descEl_,i.description()),i.el_.appendChild(i.descEl_),i.el_.appendChild(i.contentEl_),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},t.dispose=function(){this.contentEl_=null,this.descEl_=null,this.previouslyActiveEl_=null,n.prototype.dispose.call(this)},t.buildCSSClass=function(){return Pt+" vjs-hidden "+n.prototype.buildCSSClass.call(this)},t.label=function(){return this.localize(this.options_.label||"Modal Window")},t.description=function(){var e=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(e+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),e},t.open=function(){if(!this.opened_){var e=this.player();this.trigger("beforemodalopen"),this.opened_=!0,!this.options_.fillAlways&&(this.hasBeenOpened_||this.hasBeenFilled_)||this.fill(),this.wasPlaying_=!e.paused(),this.options_.pauseOnOpen&&this.wasPlaying_&&e.pause(),this.on("keydown",this.handleKeyDown),this.hadControls_=e.controls(),e.controls(!1),this.show(),this.conditionalFocus_(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0}},t.opened=function(e){return"boolean"==typeof e&&this[e?"open":"close"](),this.opened_},t.close=function(){if(this.opened_){var e=this.player();this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&this.options_.pauseOnOpen&&e.play(),this.off("keydown",this.handleKeyDown),this.hadControls_&&e.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.conditionalBlur_(),this.options_.temporary&&this.dispose()}},t.closeable=function(e){if("boolean"==typeof e){var t=this.closeable_=!!e,i=this.getChild("closeButton");if(t&&!i){var n=this.contentEl_;this.contentEl_=this.el_,i=this.addChild("closeButton",{controlText:"Close Modal Dialog"}),this.contentEl_=n,this.on(i,"close",this.close)}!t&&i&&(this.off(i,"close",this.close),this.removeChild(i),i.dispose())}return this.closeable_},t.fill=function(){this.fillWith(this.content())},t.fillWith=function(e){var t=this.contentEl(),i=t.parentNode,n=t.nextSibling;this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,i.removeChild(t),this.empty(),H(t,e),this.trigger("modalfill"),n?i.insertBefore(t,n):i.appendChild(t);var r=this.getChild("closeButton");r&&i.appendChild(r.el_)},t.empty=function(){this.trigger("beforemodalempty"),B(this.contentEl()),this.trigger("modalempty")},t.content=function(e){return"undefined"!=typeof e&&(this.content_=e),this.content_},t.conditionalFocus_=function(){var e=h.activeElement,t=this.player_.el_;this.previouslyActiveEl_=null,!t.contains(e)&&t!==e||(this.previouslyActiveEl_=e,this.focus())},t.conditionalBlur_=function(){this.previouslyActiveEl_&&(this.previouslyActiveEl_.focus(),this.previouslyActiveEl_=null)},t.handleKeyDown=function(e){if(e.stopPropagation(),At.isEventKey(e,"Escape")&&this.closeable())return e.preventDefault(),void this.close();if(At.isEventKey(e,"Tab")){for(var t,i=this.focusableEls_(),n=this.el_.querySelector(":focus"),r=0;r<i.length;r++)if(n===i[r]){t=r;break}h.activeElement===this.el_&&(t=0),e.shiftKey&&0===t?(i[i.length-1].focus(),e.preventDefault()):e.shiftKey||t!==i.length-1||(i[0].focus(),e.preventDefault())}},t.focusableEls_=function(){var e=this.el_.querySelectorAll("*");return Array.prototype.filter.call(e,function(e){return(e instanceof v.HTMLAnchorElement||e instanceof v.HTMLAreaElement)&&e.hasAttribute("href")||(e instanceof v.HTMLInputElement||e instanceof v.HTMLSelectElement||e instanceof v.HTMLTextAreaElement||e instanceof v.HTMLButtonElement)&&!e.hasAttribute("disabled")||e instanceof v.HTMLIFrameElement||e instanceof v.HTMLObjectElement||e instanceof v.HTMLEmbedElement||e.hasAttribute("tabindex")&&-1!==e.getAttribute("tabindex")||e.hasAttribute("contenteditable")})},e}(xe);It.prototype.options_={pauseOnOpen:!0,temporary:!0},xe.registerComponent("ModalDialog",It);var Lt=function(n){function e(e){var t;void 0===e&&(e=[]),(t=n.call(this)||this).tracks_=[],Object.defineProperty(Me(t),"length",{get:function(){return this.tracks_.length}});for(var i=0;i<e.length;i++)t.addTrack(e[i]);return t}De(e,n);var t=e.prototype;return t.addTrack=function(e){var t=this.tracks_.length;""+t in this||Object.defineProperty(this,t,{get:function(){return this.tracks_[t]}}),-1===this.tracks_.indexOf(e)&&(this.tracks_.push(e),this.trigger({track:e,type:"addtrack",target:this}))},t.removeTrack=function(e){for(var t,i=0,n=this.length;i<n;i++)if(this[i]===e){(t=this[i]).off&&t.off(),this.tracks_.splice(i,1);break}t&&this.trigger({track:t,type:"removetrack",target:this})},t.getTrackById=function(e){for(var t=null,i=0,n=this.length;i<n;i++){var r=this[i];if(r.id===e){t=r;break}}return t},e}(me);for(var Ot in Lt.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack"},Lt.prototype.allowedEvents_)Lt.prototype["on"+Ot]=null;function xt(e,t){for(var i=0;i<e.length;i++)Object.keys(e[i]).length&&t.id!==e[i].id&&(e[i].enabled=!1)}function Dt(e,t){for(var i=0;i<e.length;i++)Object.keys(e[i]).length&&t.id!==e[i].id&&(e[i].selected=!1)}function Ut(e){var t=["protocol","hostname","port","pathname","search","hash","host"],i=h.createElement("a");i.href=e;var n,r=""===i.host&&"file:"!==i.protocol;r&&((n=h.createElement("div")).innerHTML='<a href="'+e+'"></a>',i=n.firstChild,n.setAttribute("style","display:none; position:absolute;"),h.body.appendChild(n));for(var a={},s=0;s<t.length;s++)a[t[s]]=i[t[s]];return"http:"===a.protocol&&(a.host=a.host.replace(/:80$/,"")),"https:"===a.protocol&&(a.host=a.host.replace(/:443$/,"")),a.protocol||(a.protocol=v.location.protocol),r&&h.body.removeChild(n),a}function Rt(e){if(!e.match(/^https?:\/\//)){var t=h.createElement("div");t.innerHTML='<a href="'+e+'">x</a>',e=t.firstChild.href}return e}function Mt(e){if("string"==typeof e){var t=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/.exec(e);if(t)return t.pop().toLowerCase()}return""}function Nt(e){var t=v.location,i=Ut(e);return(":"===i.protocol?t.protocol:i.protocol)+i.host!==t.protocol+t.host}var Bt=function(n){function e(e){var t;void 0===e&&(e=[]);for(var i=e.length-1;0<=i;i--)if(e[i].enabled){xt(e,e[i]);break}return(t=n.call(this,e)||this).changing_=!1,t}De(e,n);var t=e.prototype;return t.addTrack=function(e){var t=this;e.enabled&&xt(this,e),n.prototype.addTrack.call(this,e),e.addEventListener&&(e.enabledChange_=function(){t.changing_||(t.changing_=!0,xt(t,e),t.changing_=!1,t.trigger("change"))},e.addEventListener("enabledchange",e.enabledChange_))},t.removeTrack=function(e){n.prototype.removeTrack.call(this,e),e.removeEventListener&&e.enabledChange_&&(e.removeEventListener("enabledchange",e.enabledChange_),e.enabledChange_=null)},e}(Lt),jt=function(n){function e(e){var t;void 0===e&&(e=[]);for(var i=e.length-1;0<=i;i--)if(e[i].selected){Dt(e,e[i]);break}return(t=n.call(this,e)||this).changing_=!1,Object.defineProperty(Me(t),"selectedIndex",{get:function(){for(var e=0;e<this.length;e++)if(this[e].selected)return e;return-1},set:function(){}}),t}De(e,n);var t=e.prototype;return t.addTrack=function(e){var t=this;e.selected&&Dt(this,e),n.prototype.addTrack.call(this,e),e.addEventListener&&(e.selectedChange_=function(){t.changing_||(t.changing_=!0,Dt(t,e),t.changing_=!1,t.trigger("change"))},e.addEventListener("selectedchange",e.selectedChange_))},t.removeTrack=function(e){n.prototype.removeTrack.call(this,e),e.removeEventListener&&e.selectedChange_&&(e.removeEventListener("selectedchange",e.selectedChange_),e.selectedChange_=null)},e}(Lt),Ft=function(i){function e(){return i.apply(this,arguments)||this}De(e,i);var t=e.prototype;return t.addTrack=function(e){var t=this;i.prototype.addTrack.call(this,e),this.queueChange_||(this.queueChange_=function(){return t.queueTrigger("change")}),this.triggerSelectedlanguagechange||(this.triggerSelectedlanguagechange_=function(){return t.trigger("selectedlanguagechange")}),e.addEventListener("modechange",this.queueChange_);-1===["metadata","chapters"].indexOf(e.kind)&&e.addEventListener("modechange",this.triggerSelectedlanguagechange_)},t.removeTrack=function(e){i.prototype.removeTrack.call(this,e),e.removeEventListener&&(this.queueChange_&&e.removeEventListener("modechange",this.queueChange_),this.selectedlanguagechange_&&e.removeEventListener("modechange",this.triggerSelectedlanguagechange_))},e}(Lt),Ht=function(){function e(e){void 0===e&&(e=[]),this.trackElements_=[],Object.defineProperty(this,"length",{get:function(){return this.trackElements_.length}});for(var t=0,i=e.length;t<i;t++)this.addTrackElement_(e[t])}var t=e.prototype;return t.addTrackElement_=function(e){var t=this.trackElements_.length;""+t in this||Object.defineProperty(this,t,{get:function(){return this.trackElements_[t]}}),-1===this.trackElements_.indexOf(e)&&this.trackElements_.push(e)},t.getTrackElementByTrack_=function(e){for(var t,i=0,n=this.trackElements_.length;i<n;i++)if(e===this.trackElements_[i].track){t=this.trackElements_[i];break}return t},t.removeTrackElement_=function(e){for(var t=0,i=this.trackElements_.length;t<i;t++)if(e===this.trackElements_[t]){this.trackElements_[t].track&&"function"==typeof this.trackElements_[t].track.off&&this.trackElements_[t].track.off(),"function"==typeof this.trackElements_[t].off&&this.trackElements_[t].off(),this.trackElements_.splice(t,1);break}},e}(),Vt=function(){function t(e){t.prototype.setCues_.call(this,e),Object.defineProperty(this,"length",{get:function(){return this.length_}})}var e=t.prototype;return e.setCues_=function(e){var t=this.length||0,i=0,n=e.length;this.cues_=e,this.length_=e.length;function r(e){""+e in this||Object.defineProperty(this,""+e,{get:function(){return this.cues_[e]}})}if(t<n)for(i=t;i<n;i++)r.call(this,i)},e.getCueById=function(e){for(var t=null,i=0,n=this.length;i<n;i++){var r=this[i];if(r.id===e){t=r;break}}return t},t}(),qt={alternative:"alternative",captions:"captions",main:"main",sign:"sign",subtitles:"subtitles",commentary:"commentary"},Wt={alternative:"alternative",descriptions:"descriptions",main:"main","main-desc":"main-desc",translation:"translation",commentary:"commentary"},zt={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"},$t={disabled:"disabled",hidden:"hidden",showing:"showing"},Gt=function(a){function e(e){var t;void 0===e&&(e={}),t=a.call(this)||this;function i(e){Object.defineProperty(Me(t),e,{get:function(){return n[e]},set:function(){}})}var n={id:e.id||"vjs_track_"+te(),kind:e.kind||"",label:e.label||"",language:e.language||""};for(var r in n)i(r);return t}return De(e,a),e}(me),Xt=Object.freeze({parseUrl:Ut,getAbsoluteURL:Rt,getFileExtension:Mt,isCrossOrigin:Nt}),Kt=function(e){var t=Yt.call(e);return"[object Function]"===t||"function"==typeof e&&"[object RegExp]"!==t||"undefined"!=typeof window&&(e===window.setTimeout||e===window.alert||e===window.confirm||e===window.prompt)},Yt=Object.prototype.toString;function Qt(e){var t=ii.call(e),i="[object Arguments]"===t;return i=i||"[object Array]"!==t&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&0<=e.length&&"[object Function]"===ii.call(e.callee)}var Jt,Zt=Array.prototype.slice,ei=Object.prototype.toString,ti=Function.prototype.bind||function(t){var i=this;if("function"!=typeof i||"[object Function]"!==ei.call(i))throw new TypeError("Function.prototype.bind called on incompatible "+i);for(var n,r=Zt.call(arguments,1),e=Math.max(0,i.length-r.length),a=[],s=0;s<e;s++)a.push("$"+s);if(n=Function("binder","return function ("+a.join(",")+"){ return binder.apply(this,arguments); }")(function(){if(this instanceof n){var e=i.apply(this,r.concat(Zt.call(arguments)));return Object(e)===e?e:this}return i.apply(t,r.concat(Zt.call(arguments)))}),i.prototype){function o(){}o.prototype=i.prototype,n.prototype=new o,o.prototype=null}return n},ii=Object.prototype.toString;if(!Object.keys){function ni(e){var t=e.constructor;return t&&t.prototype===e}var ri=Object.prototype.hasOwnProperty,ai=Object.prototype.toString,si=Qt,oi=Object.prototype.propertyIsEnumerable,ui=!oi.call({toString:null},"toString"),li=oi.call(function(){},"prototype"),ci=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],hi={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},di=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!hi["$"+e]&&ri.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{ni(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();Jt=function(e){var t=null!==e&&"object"==typeof e,i="[object Function]"===ai.call(e),n=si(e),r=t&&"[object String]"===ai.call(e),a=[];if(!t&&!i&&!n)throw new TypeError("Object.keys called on a non-object");var s=li&&i;if(r&&0<e.length&&!ri.call(e,0))for(var o=0;o<e.length;++o)a.push(String(o));if(n&&0<e.length)for(var u=0;u<e.length;++u)a.push(String(u));else for(var l in e)s&&"prototype"===l||!ri.call(e,l)||a.push(String(l));if(ui)for(var c=function(e){if("undefined"==typeof window||!di)return ni(e);try{return ni(e)}catch(e){return!1}}(e),h=0;h<ci.length;++h)c&&"constructor"===ci[h]||!ri.call(e,ci[h])||a.push(ci[h]);return a}}var pi=Jt,fi=Array.prototype.slice,mi=Object.keys,gi=mi?function(e){return mi(e)}:pi,yi=Object.keys;gi.shim=function(){Object.keys?function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2)||(Object.keys=function(e){return Qt(e)?yi(fi.call(e)):yi(e)}):Object.keys=gi;return Object.keys||gi};function vi(e,t,i,n){t in e&&(!function(e){return"function"==typeof e&&"[object Function]"===Si.call(e)}(n)||!n())||(Ei?Ci(e,t,{configurable:!0,enumerable:!1,value:i,writable:!0}):e[t]=i)}function _i(e,t,i){var n=2<arguments.length?i:{},r=bi(t);Ti&&(r=ki.call(r,Object.getOwnPropertySymbols(t)));for(var a=0;a<r.length;a+=1)vi(e,r[a],t[r[a]],n[r[a]])}var bi=gi,Ti="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),Si=Object.prototype.toString,ki=Array.prototype.concat,Ci=Object.defineProperty,Ei=Ci&&function(){var e={};try{for(var t in Ci(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}();_i.supportsDescriptors=!!Ei;function wi(e,t){if(1<arguments.length&&"boolean"!=typeof t)throw new TypeError('"allowMissing" argument must be a boolean');var i="$ "+e;if(!(i in Fi))throw new SyntaxError("intrinsic "+e+" does not exist!");if("undefined"==typeof Fi[i]&&!t)throw new TypeError("intrinsic "+e+" exists, but is not available. Please file an issue!");return Fi[i]}function Ai(e,t,i,n){var r=Wi[t];if("function"!=typeof r)throw new qi("unknown record type: "+t);if(!r(e,n))throw new Vi(i+" must be a "+t)}function Pi(e){return 0<=e?1:-1}function Ii(e){try{var t=Xi.call(e);return Ki.test(t)}catch(e){return!1}}function Li(e){if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if("function"==typeof e&&!e.prototype)return!0;if(Qi)return function(e){try{return!Ii(e)&&(Xi.call(e),!0)}catch(e){return!1}}(e);if(Ii(e))return!1;var t=Yi.call(e);return"[object Function]"===t||"[object GeneratorFunction]"===t}function Oi(e){return null===e||"function"!=typeof e&&"object"!=typeof e}function xi(){var e=rn.ToString(rn.CheckObjectCoercible(this));return an(an(e,sn,""),on,"")}function Di(){return String.prototype.trim&&"​"==="​".trim()?String.prototype.trim:xi}var Ui,Ri=_i,Mi=Object.getOwnPropertyDescriptor?function(){return Object.getOwnPropertyDescriptor(arguments,"callee").get}():function(){throw new TypeError},Ni="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator,Bi=Object.getPrototypeOf||function(e){return e.__proto__},ji="undefined"==typeof Uint8Array?Ui:Bi(Uint8Array),Fi={"$ %Array%":Array,"$ %ArrayBuffer%":"undefined"==typeof ArrayBuffer?Ui:ArrayBuffer,"$ %ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?Ui:ArrayBuffer.prototype,"$ %ArrayIteratorPrototype%":Ni?Bi([][Symbol.iterator]()):Ui,"$ %ArrayPrototype%":Array.prototype,"$ %ArrayProto_entries%":Array.prototype.entries,"$ %ArrayProto_forEach%":Array.prototype.forEach,"$ %ArrayProto_keys%":Array.prototype.keys,"$ %ArrayProto_values%":Array.prototype.values,"$ %AsyncFromSyncIteratorPrototype%":Ui,"$ %AsyncFunction%":void 0,"$ %AsyncFunctionPrototype%":Ui,"$ %AsyncGenerator%":Ui,"$ %AsyncGeneratorFunction%":void 0,"$ %AsyncGeneratorPrototype%":Ui,"$ %AsyncIteratorPrototype%":Ui,"$ %Atomics%":"undefined"==typeof Atomics?Ui:Atomics,"$ %Boolean%":Boolean,"$ %BooleanPrototype%":Boolean.prototype,"$ %DataView%":"undefined"==typeof DataView?Ui:DataView,"$ %DataViewPrototype%":"undefined"==typeof DataView?Ui:DataView.prototype,"$ %Date%":Date,"$ %DatePrototype%":Date.prototype,"$ %decodeURI%":decodeURI,"$ %decodeURIComponent%":decodeURIComponent,"$ %encodeURI%":encodeURI,"$ %encodeURIComponent%":encodeURIComponent,"$ %Error%":Error,"$ %ErrorPrototype%":Error.prototype,"$ %eval%":eval,"$ %EvalError%":EvalError,"$ %EvalErrorPrototype%":EvalError.prototype,"$ %Float32Array%":"undefined"==typeof Float32Array?Ui:Float32Array,"$ %Float32ArrayPrototype%":"undefined"==typeof Float32Array?Ui:Float32Array.prototype,"$ %Float64Array%":"undefined"==typeof Float64Array?Ui:Float64Array,"$ %Float64ArrayPrototype%":"undefined"==typeof Float64Array?Ui:Float64Array.prototype,"$ %Function%":Function,"$ %FunctionPrototype%":Function.prototype,"$ %Generator%":Ui,"$ %GeneratorFunction%":void 0,"$ %GeneratorPrototype%":Ui,"$ %Int8Array%":"undefined"==typeof Int8Array?Ui:Int8Array,"$ %Int8ArrayPrototype%":"undefined"==typeof Int8Array?Ui:Int8Array.prototype,"$ %Int16Array%":"undefined"==typeof Int16Array?Ui:Int16Array,"$ %Int16ArrayPrototype%":"undefined"==typeof Int16Array?Ui:Int8Array.prototype,"$ %Int32Array%":"undefined"==typeof Int32Array?Ui:Int32Array,"$ %Int32ArrayPrototype%":"undefined"==typeof Int32Array?Ui:Int32Array.prototype,"$ %isFinite%":isFinite,"$ %isNaN%":isNaN,"$ %IteratorPrototype%":Ni?Bi(Bi([][Symbol.iterator]())):Ui,"$ %JSON%":JSON,"$ %JSONParse%":JSON.parse,"$ %Map%":"undefined"==typeof Map?Ui:Map,"$ %MapIteratorPrototype%":"undefined"!=typeof Map&&Ni?Bi((new Map)[Symbol.iterator]()):Ui,"$ %MapPrototype%":"undefined"==typeof Map?Ui:Map.prototype,"$ %Math%":Math,"$ %Number%":Number,"$ %NumberPrototype%":Number.prototype,"$ %Object%":Object,"$ %ObjectPrototype%":Object.prototype,"$ %ObjProto_toString%":Object.prototype.toString,"$ %ObjProto_valueOf%":Object.prototype.valueOf,"$ %parseFloat%":parseFloat,"$ %parseInt%":parseInt,"$ %Promise%":"undefined"==typeof Promise?Ui:Promise,"$ %PromisePrototype%":"undefined"==typeof Promise?Ui:Promise.prototype,"$ %PromiseProto_then%":"undefined"==typeof Promise?Ui:Promise.prototype.then,"$ %Promise_all%":"undefined"==typeof Promise?Ui:Promise.all,"$ %Promise_reject%":"undefined"==typeof Promise?Ui:Promise.reject,"$ %Promise_resolve%":"undefined"==typeof Promise?Ui:Promise.resolve,"$ %Proxy%":"undefined"==typeof Proxy?Ui:Proxy,"$ %RangeError%":RangeError,"$ %RangeErrorPrototype%":RangeError.prototype,"$ %ReferenceError%":ReferenceError,"$ %ReferenceErrorPrototype%":ReferenceError.prototype,"$ %Reflect%":"undefined"==typeof Reflect?Ui:Reflect,"$ %RegExp%":RegExp,"$ %RegExpPrototype%":RegExp.prototype,"$ %Set%":"undefined"==typeof Set?Ui:Set,"$ %SetIteratorPrototype%":"undefined"!=typeof Set&&Ni?Bi((new Set)[Symbol.iterator]()):Ui,"$ %SetPrototype%":"undefined"==typeof Set?Ui:Set.prototype,"$ %SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?Ui:SharedArrayBuffer,"$ %SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?Ui:SharedArrayBuffer.prototype,"$ %String%":String,"$ %StringIteratorPrototype%":Ni?Bi(""[Symbol.iterator]()):Ui,"$ %StringPrototype%":String.prototype,"$ %Symbol%":Ni?Symbol:Ui,"$ %SymbolPrototype%":Ni?Symbol.prototype:Ui,"$ %SyntaxError%":SyntaxError,"$ %SyntaxErrorPrototype%":SyntaxError.prototype,"$ %ThrowTypeError%":Mi,"$ %TypedArray%":ji,"$ %TypedArrayPrototype%":ji?ji.prototype:Ui,"$ %TypeError%":TypeError,"$ %TypeErrorPrototype%":TypeError.prototype,"$ %Uint8Array%":"undefined"==typeof Uint8Array?Ui:Uint8Array,"$ %Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?Ui:Uint8Array.prototype,"$ %Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?Ui:Uint8ClampedArray,"$ %Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?Ui:Uint8ClampedArray.prototype,"$ %Uint16Array%":"undefined"==typeof Uint16Array?Ui:Uint16Array,"$ %Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?Ui:Uint16Array.prototype,"$ %Uint32Array%":"undefined"==typeof Uint32Array?Ui:Uint32Array,"$ %Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?Ui:Uint32Array.prototype,"$ %URIError%":URIError,"$ %URIErrorPrototype%":URIError.prototype,"$ %WeakMap%":"undefined"==typeof WeakMap?Ui:WeakMap,"$ %WeakMapPrototype%":"undefined"==typeof WeakMap?Ui:WeakMap.prototype,"$ %WeakSet%":"undefined"==typeof WeakSet?Ui:WeakSet,"$ %WeakSetPrototype%":"undefined"==typeof WeakSet?Ui:WeakSet.prototype},Hi=ti.call(Function.call,Object.prototype.hasOwnProperty),Vi=wi("%TypeError%"),qi=wi("%SyntaxError%"),Wi={"Property Descriptor":function(e,t){if("Object"!==e.Type(t))return!1;var i={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var n in t)if(Hi(t,n)&&!i[n])return!1;var r=Hi(t,"[[Value]]"),a=Hi(t,"[[Get]]")||Hi(t,"[[Set]]");if(r&&a)throw new Vi("Property Descriptors may not be both accessor and data descriptors");return!0}},zi=Number.isNaN||function(e){return e!=e},$i=Number.isNaN||function(e){return e!=e},Gi=Number.isFinite||function(e){return"number"==typeof e&&!$i(e)&&e!==1/0&&e!==-1/0},Xi=Function.prototype.toString,Ki=/^\s*class\b/,Yi=Object.prototype.toString,Qi="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,Ji=Object.prototype.toString,Zi=function(e,t){var i;if((i=1<arguments.length?t:"[object Date]"===Ji.call(e)?String:Number)!==String&&i!==Number)throw new TypeError("invalid [[DefaultValue]] hint supplied");var n,r,a=i===String?["toString","valueOf"]:["valueOf","toString"];for(r=0;r<a.length;++r)if(Li(e[a[r]])&&(n=e[a[r]](),Oi(n)))return n;throw new TypeError("No default value")},en=wi("%Object%"),tn=wi("%TypeError%"),nn=wi("%String%"),rn={ToPrimitive:function(e,t){return Oi(e)?e:1<arguments.length?Zi(e,t):Zi(e)},ToBoolean:function(e){return!!e},ToNumber:function(e){return+e},ToInteger:function(e){var t=this.ToNumber(e);return zi(t)?0:0!==t&&Gi(t)?Pi(t)*Math.floor(Math.abs(t)):t},ToInt32:function(e){return this.ToNumber(e)>>0},ToUint32:function(e){return this.ToNumber(e)>>>0},ToUint16:function(e){var t=this.ToNumber(e);return zi(t)||0===t||!Gi(t)?0:function(e,t){var i=e%t;return Math.floor(0<=i?i:i+t)}(Pi(t)*Math.floor(Math.abs(t)),65536)},ToString:function(e){return nn(e)},ToObject:function(e){return this.CheckObjectCoercible(e),en(e)},CheckObjectCoercible:function(e,t){if(null==e)throw new tn(t||"Cannot call method on "+e);return e},IsCallable:Li,SameValue:function(e,t){return e===t?0!==e||1/e==1/t:zi(e)&&zi(t)},Type:function(e){return null===e?"Null":"undefined"==typeof e?"Undefined":"function"==typeof e||"object"==typeof e?"Object":"number"==typeof e?"Number":"boolean"==typeof e?"Boolean":"string"==typeof e?"String":void 0},IsPropertyDescriptor:function(e){if("Object"!==this.Type(e))return!1;var t={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var i in e)if(Hi(e,i)&&!t[i])return!1;var n=Hi(e,"[[Value]]"),r=Hi(e,"[[Get]]")||Hi(e,"[[Set]]");if(n&&r)throw new tn("Property Descriptors may not be both accessor and data descriptors");return!0},IsAccessorDescriptor:function(e){return"undefined"!=typeof e&&(Ai(this,"Property Descriptor","Desc",e),!(!Hi(e,"[[Get]]")&&!Hi(e,"[[Set]]")))},IsDataDescriptor:function(e){return"undefined"!=typeof e&&(Ai(this,"Property Descriptor","Desc",e),!(!Hi(e,"[[Value]]")&&!Hi(e,"[[Writable]]")))},IsGenericDescriptor:function(e){return"undefined"!=typeof e&&(Ai(this,"Property Descriptor","Desc",e),!this.IsAccessorDescriptor(e)&&!this.IsDataDescriptor(e))},FromPropertyDescriptor:function(e){if("undefined"==typeof e)return e;if(Ai(this,"Property Descriptor","Desc",e),this.IsDataDescriptor(e))return{value:e["[[Value]]"],writable:!!e["[[Writable]]"],enumerable:!!e["[[Enumerable]]"],configurable:!!e["[[Configurable]]"]};if(this.IsAccessorDescriptor(e))return{get:e["[[Get]]"],set:e["[[Set]]"],enumerable:!!e["[[Enumerable]]"],configurable:!!e["[[Configurable]]"]};throw new tn("FromPropertyDescriptor must be called with a fully populated Property Descriptor")},ToPropertyDescriptor:function(e){if("Object"!==this.Type(e))throw new tn("ToPropertyDescriptor requires an object");var t={};if(Hi(e,"enumerable")&&(t["[[Enumerable]]"]=this.ToBoolean(e.enumerable)),Hi(e,"configurable")&&(t["[[Configurable]]"]=this.ToBoolean(e.configurable)),Hi(e,"value")&&(t["[[Value]]"]=e.value),Hi(e,"writable")&&(t["[[Writable]]"]=this.ToBoolean(e.writable)),Hi(e,"get")){var i=e.get;if("undefined"!=typeof i&&!this.IsCallable(i))throw new TypeError("getter must be a function");t["[[Get]]"]=i}if(Hi(e,"set")){var n=e.set;if("undefined"!=typeof n&&!this.IsCallable(n))throw new tn("setter must be a function");t["[[Set]]"]=n}if((Hi(t,"[[Get]]")||Hi(t,"[[Set]]"))&&(Hi(t,"[[Value]]")||Hi(t,"[[Writable]]")))throw new tn("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");return t}},an=ti.call(Function.call,String.prototype.replace),sn=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/,on=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/,un=ti.call(Function.call,Di());Ri(un,{getPolyfill:Di,implementation:xi,shim:function(){var e=Di();return Ri(String.prototype,{trim:e},{trim:function(){return String.prototype.trim!==e}}),e}});var ln=un,cn=Object.prototype.toString,hn=Object.prototype.hasOwnProperty,dn=function(e,t,i){if(!Li(t))throw new TypeError("iterator must be a function");var n;3<=arguments.length&&(n=i),"[object Array]"===cn.call(e)?function(e,t,i){for(var n=0,r=e.length;n<r;n++)hn.call(e,n)&&(null==i?t(e[n],n,e):t.call(i,e[n],n,e))}(e,t,n):"string"==typeof e?function(e,t,i){for(var n=0,r=e.length;n<r;n++)null==i?t(e.charAt(n),n,e):t.call(i,e.charAt(n),n,e)}(e,t,n):function(e,t,i){for(var n in e)hn.call(e,n)&&(null==i?t(e[n],n,e):t.call(i,e[n],n,e))}(e,t,n)},pn=function(e){if(!e)return{};var r={};return dn(ln(e).split("\n"),function(e){var t=e.indexOf(":"),i=ln(e.slice(0,t)).toLowerCase(),n=ln(e.slice(t+1));"undefined"==typeof r[i]?r[i]=n:!function(e){return"[object Array]"===Object.prototype.toString.call(e)}(r[i])?r[i]=[r[i],n]:r[i].push(n)}),r},fn=function(){for(var e={},t=0;t<arguments.length;t++){var i=arguments[t];for(var n in i)mn.call(i,n)&&(e[n]=i[n])}return e},mn=Object.prototype.hasOwnProperty;var gn=vn;function yn(e,t,i){var n=e;return Kt(t)?(i=t,"string"==typeof e&&(n={uri:e})):n=fn(t,{uri:e}),n.callback=i,n}function vn(e,t,i){return _n(t=yn(e,t,i))}function _n(n){if("undefined"==typeof n.callback)throw new Error("callback argument missing");var r=!1,a=function(e,t,i){r||(r=!0,n.callback(e,t,i))};function t(e){return clearTimeout(o),e instanceof Error||(e=new Error(""+(e||"Unknown XMLHttpRequest Error"))),e.statusCode=0,a(e,m)}function e(){if(!s){var e;clearTimeout(o),e=n.useXDR&&void 0===u.status?200:1223===u.status?204:u.status;var t=m,i=null;return 0!==e?(t={body:function(){var e=void 0;if(e=u.response?u.response:u.responseText||function(e){if("document"===e.responseType)return e.responseXML;var t=e.responseXML&&"parsererror"===e.responseXML.documentElement.nodeName;return""!==e.responseType||t?null:e.responseXML}(u),f)try{e=JSON.parse(e)}catch(e){}return e}(),statusCode:e,method:c,headers:{},url:l,rawRequest:u},u.getAllResponseHeaders&&(t.headers=pn(u.getAllResponseHeaders()))):i=new Error("Internal XMLHttpRequest Error"),a(i,t,t.body)}}var i,s,o,u=n.xhr||null,l=(u=u||(n.cors||n.useXDR?new vn.XDomainRequest:new vn.XMLHttpRequest)).url=n.uri||n.url,c=u.method=n.method||"GET",h=n.body||n.data,d=u.headers=n.headers||{},p=!!n.sync,f=!1,m={body:void 0,headers:{},statusCode:0,method:c,url:l,rawRequest:u};if("json"in n&&!1!==n.json&&(f=!0,d.accept||d.Accept||(d.Accept="application/json"),"GET"!==c&&"HEAD"!==c&&(d["content-type"]||d["Content-Type"]||(d["Content-Type"]="application/json"),h=JSON.stringify(!0===n.json?h:n.json))),u.onreadystatechange=function(){4===u.readyState&&setTimeout(e,0)},u.onload=e,u.onerror=t,u.onprogress=function(){},u.onabort=function(){s=!0},u.ontimeout=t,u.open(c,l,!p,n.username,n.password),p||(u.withCredentials=!!n.withCredentials),!p&&0<n.timeout&&(o=setTimeout(function(){if(!s){s=!0,u.abort("timeout");var e=new Error("XMLHttpRequest timeout");e.code="ETIMEDOUT",t(e)}},n.timeout)),u.setRequestHeader)for(i in d)d.hasOwnProperty(i)&&u.setRequestHeader(i,d[i]);else if(n.headers&&!function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}(n.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in n&&(u.responseType=n.responseType),"beforeSend"in n&&"function"==typeof n.beforeSend&&n.beforeSend(u),u.send(h||null),u}vn.XMLHttpRequest=v.XMLHttpRequest||function(){},vn.XDomainRequest="withCredentials"in new vn.XMLHttpRequest?vn.XMLHttpRequest:v.XDomainRequest,function(e,t){for(var i=0;i<e.length;i++)t(e[i])}(["get","put","post","patch","head","delete"],function(n){vn["delete"===n?"del":n]=function(e,t,i){return(t=yn(e,t,i)).method=n.toUpperCase(),_n(t)}});function bn(e,t){var i=new v.WebVTT.Parser(v,v.vttjs,v.WebVTT.StringDecoder()),n=[];i.oncue=function(e){t.addCue(e)},i.onparsingerror=function(e){n.push(e)},i.onflush=function(){t.trigger({type:"loadeddata",target:t})},i.parse(e),0<n.length&&(v.console&&v.console.groupCollapsed&&v.console.groupCollapsed("Text Track parsing errors for "+t.src),n.forEach(function(e){return p.error(e)}),v.console&&v.console.groupEnd&&v.console.groupEnd()),i.flush()}var Tn=function(l){function e(e){var t;if(void 0===e&&(e={}),!e.tech)throw new Error("A tech was not provided.");var i=Oe(e,{kind:zt[e.kind]||"subtitles",language:e.language||e.srclang||""}),n=$t[i.mode]||"disabled",r=i.default;"metadata"!==i.kind&&"chapters"!==i.kind||(n="hidden"),(t=l.call(this,i)||this).tech_=i.tech,t.cues_=[],t.activeCues_=[];var a=new Vt(t.cues_),s=new Vt(t.activeCues_),o=!1,u=pe(Me(t),function(){this.activeCues=this.activeCues,o&&(this.trigger("cuechange"),o=!1)});return"disabled"!==n&&t.tech_.ready(function(){t.tech_.on("timeupdate",u)},!0),Object.defineProperties(Me(t),{default:{get:function(){return r},set:function(){}},mode:{get:function(){return n},set:function(e){var t=this;$t[e]&&("disabled"!==(n=e)?this.tech_.ready(function(){t.tech_.on("timeupdate",u)},!0):this.tech_.off("timeupdate",u),this.trigger("modechange"))}},cues:{get:function(){return this.loaded_?a:null},set:function(){}},activeCues:{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return s;for(var e=this.tech_.currentTime(),t=[],i=0,n=this.cues.length;i<n;i++){var r=this.cues[i];r.startTime<=e&&r.endTime>=e?t.push(r):r.startTime===r.endTime&&r.startTime<=e&&r.startTime+.5>=e&&t.push(r)}if(o=!1,t.length!==this.activeCues_.length)o=!0;else for(var a=0;a<t.length;a++)-1===this.activeCues_.indexOf(t[a])&&(o=!0);return this.activeCues_=t,s.setCues_(this.activeCues_),s},set:function(){}}}),i.src?(t.src=i.src,function(e,n){var t={uri:e},i=Nt(e);i&&(t.cors=i),gn(t,pe(this,function(e,t,i){if(e)return p.error(e,t);n.loaded_=!0,"function"!=typeof v.WebVTT?n.tech_&&n.tech_.any(["vttjsloaded","vttjserror"],function(e){if("vttjserror"!==e.type)return bn(i,n);p.error("vttjs failed to load, stopping trying to process "+n.src)}):bn(i,n)}))}(i.src,Me(t))):t.loaded_=!0,t}De(e,l);var t=e.prototype;return t.addCue=function(e){var t=e;if(v.vttjs&&!(e instanceof v.vttjs.VTTCue)){for(var i in t=new v.vttjs.VTTCue(e.startTime,e.endTime,e.text),e)i in t||(t[i]=e[i]);t.id=e.id,t.originalCue_=e}for(var n=this.tech_.textTracks(),r=0;r<n.length;r++)n[r]!==this&&n[r].removeCue(t);this.cues_.push(t),this.cues.setCues_(this.cues_)},t.removeCue=function(e){for(var t=this.cues_.length;t--;){var i=this.cues_[t];if(i===e||i.originalCue_&&i.originalCue_===e){this.cues_.splice(t,1),this.cues.setCues_(this.cues_);break}}},e}(Gt);Tn.prototype.allowedEvents_={cuechange:"cuechange"};var Sn=function(r){function e(e){var t;void 0===e&&(e={});var i=Oe(e,{kind:Wt[e.kind]||""});t=r.call(this,i)||this;var n=!1;return Object.defineProperty(Me(t),"enabled",{get:function(){return n},set:function(e){"boolean"==typeof e&&e!==n&&(n=e,this.trigger("enabledchange"))}}),i.enabled&&(t.enabled=i.enabled),t.loaded_=!0,t}return De(e,r),e}(Gt),kn=function(r){function e(e){var t;void 0===e&&(e={});var i=Oe(e,{kind:qt[e.kind]||""});t=r.call(this,i)||this;var n=!1;return Object.defineProperty(Me(t),"selected",{get:function(){return n},set:function(e){"boolean"==typeof e&&e!==n&&(n=e,this.trigger("selectedchange"))}}),i.selected&&(t.selected=i.selected),t}return De(e,r),e}(Gt),Cn=function(r){function e(e){var t,i;void 0===e&&(e={}),t=r.call(this)||this;var n=new Tn(e);return t.kind=n.kind,t.src=n.src,t.srclang=n.language,t.label=n.label,t.default=n.default,Object.defineProperties(Me(t),{readyState:{get:function(){return i}},track:{get:function(){return n}}}),i=0,n.addEventListener("loadeddata",function(){i=2,t.trigger({type:"load",target:Me(t)})}),t}return De(e,r),e}(me);Cn.prototype.allowedEvents_={load:"load"},Cn.NONE=0,Cn.LOADING=1,Cn.LOADED=2,Cn.ERROR=3;var En={audio:{ListClass:Bt,TrackClass:Sn,capitalName:"Audio"},video:{ListClass:jt,TrackClass:kn,capitalName:"Video"},text:{ListClass:Ft,TrackClass:Tn,capitalName:"Text"}};Object.keys(En).forEach(function(e){En[e].getterName=e+"Tracks",En[e].privateName=e+"Tracks_"});var wn={remoteText:{ListClass:Ft,TrackClass:Tn,capitalName:"RemoteText",getterName:"remoteTextTracks",privateName:"remoteTextTracks_"},remoteTextEl:{ListClass:Ht,TrackClass:Cn,capitalName:"RemoteTextTrackEls",getterName:"remoteTextTrackEls",privateName:"remoteTextTrackEls_"}},An=Oe(En,wn);wn.names=Object.keys(wn),En.names=Object.keys(En),An.names=[].concat(wn.names).concat(En.names);var Pn=Object.create||function(e){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return In.prototype=e,new In};function In(){}function Ln(e,t){this.name="ParsingError",this.code=e.code,this.message=t||e.message}function On(e){function t(e,t,i,n){return 3600*(0|e)+60*(0|t)+(0|i)+(0|n)/1e3}var i=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return i?i[3]?t(i[1],i[2],i[3].replace(":",""),i[4]):59<i[1]?t(i[1],i[2],0,i[4]):t(0,i[1],i[2],i[4]):null}function xn(){this.values=Pn(null)}function Dn(e,t,i,n){var r=n?e.split(n):[e];for(var a in r)if("string"==typeof r[a]){var s=r[a].split(i);if(2===s.length)t(s[0],s[1])}}function Un(t,e,a){var i,n,s,r=t;function o(){var e=On(t);if(null===e)throw new Ln(Ln.Errors.BadTimeStamp,"Malformed timestamp: "+r);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function u(){t=t.replace(/^\s+/,"")}if(u(),e.startTime=o(),u(),"--\x3e"!==t.substr(0,3))throw new Ln(Ln.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);t=t.substr(3),u(),e.endTime=o(),u(),i=t,n=e,s=new xn,Dn(i,function(e,t){switch(e){case"region":for(var i=a.length-1;0<=i;i--)if(a[i].id===t){s.set(e,a[i].region);break}break;case"vertical":s.alt(e,t,["rl","lr"]);break;case"line":var n=t.split(","),r=n[0];s.integer(e,r),s.percent(e,r)&&s.set("snapToLines",!1),s.alt(e,r,["auto"]),2===n.length&&s.alt("lineAlign",n[1],["start","middle","end"]);break;case"position":n=t.split(","),s.percent(e,n[0]),2===n.length&&s.alt("positionAlign",n[1],["start","middle","end"]);break;case"size":s.percent(e,t);break;case"align":s.alt(e,t,["start","middle","end","left","right"])}},/:/,/\s/),n.region=s.get("region",null),n.vertical=s.get("vertical",""),n.line=s.get("line","auto"),n.lineAlign=s.get("lineAlign","start"),n.snapToLines=s.get("snapToLines",!0),n.size=s.get("size",100),n.align=s.get("align","middle"),n.position=s.get("position",{start:0,left:0,middle:50,end:100,right:100},n.align),n.positionAlign=s.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},n.align)}((Ln.prototype=Pn(Error.prototype)).constructor=Ln).Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},xn.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,i){for(var n=0;n<i.length;++n)if(t===i[n]){this.set(e,t);break}},integer:function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},percent:function(e,t){return!!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&0<=(t=parseFloat(t))&&t<=100)&&(this.set(e,t),!0)}};var Rn={"&amp;":"&","&lt;":"<","&gt;":">","&lrm;":"‎","&rlm;":"‏","&nbsp;":" "},Mn={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},Nn={v:"title",lang:"lang"},Bn={rt:"ruby"};function jn(a,i){function e(){if(!i)return null;var e,t=i.match(/^([^<]*)(<[^>]*>?)?/);return e=t[1]?t[1]:t[2],i=i.substr(e.length),e}function t(e){return Rn[e]}function n(e){for(;f=e.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)e=e.replace(f[0],t);return e}function r(e,t){var i=Mn[e];if(!i)return null;var n=a.document.createElement(i);n.localName=i;var r=Nn[e];return r&&t&&(n[r]=t.trim()),n}for(var s,o,u,l=a.document.createElement("div"),c=l,h=[];null!==(s=e());)if("<"!==s[0])c.appendChild(a.document.createTextNode(n(s)));else{if("/"===s[1]){h.length&&h[h.length-1]===s.substr(2).replace(">","")&&(h.pop(),c=c.parentNode);continue}var d,p=On(s.substr(1,s.length-2));if(p){d=a.document.createProcessingInstruction("timestamp",p),c.appendChild(d);continue}var f=s.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!f)continue;if(!(d=r(f[1],f[3])))continue;if(o=c,Bn[(u=d).localName]&&Bn[u.localName]!==o.localName)continue;f[2]&&(d.className=f[2].substr(1).replace("."," ")),h.push(f[1]),c.appendChild(d),c=d}return l}var Fn=[[1470,1470],[1472,1472],[1475,1475],[1478,1478],[1488,1514],[1520,1524],[1544,1544],[1547,1547],[1549,1549],[1563,1563],[1566,1610],[1645,1647],[1649,1749],[1765,1766],[1774,1775],[1786,1805],[1807,1808],[1810,1839],[1869,1957],[1969,1969],[1984,2026],[2036,2037],[2042,2042],[2048,2069],[2074,2074],[2084,2084],[2088,2088],[2096,2110],[2112,2136],[2142,2142],[2208,2208],[2210,2220],[8207,8207],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64449],[64467,64829],[64848,64911],[64914,64967],[65008,65020],[65136,65140],[65142,65276],[67584,67589],[67592,67592],[67594,67637],[67639,67640],[67644,67644],[67647,67669],[67671,67679],[67840,67867],[67872,67897],[67903,67903],[67968,68023],[68030,68031],[68096,68096],[68112,68115],[68117,68119],[68121,68147],[68160,68167],[68176,68184],[68192,68223],[68352,68405],[68416,68437],[68440,68466],[68472,68479],[68608,68680],[126464,126467],[126469,126495],[126497,126498],[126500,126500],[126503,126503],[126505,126514],[126516,126519],[126521,126521],[126523,126523],[126530,126530],[126535,126535],[126537,126537],[126539,126539],[126541,126543],[126545,126546],[126548,126548],[126551,126551],[126553,126553],[126555,126555],[126557,126557],[126559,126559],[126561,126562],[126564,126564],[126567,126570],[126572,126578],[126580,126583],[126585,126588],[126590,126590],[126592,126601],[126603,126619],[126625,126627],[126629,126633],[126635,126651],[1114109,1114109]];function Hn(e){for(var t=0;t<Fn.length;t++){var i=Fn[t];if(e>=i[0]&&e<=i[1])return!0}return!1}function Vn(){}function qn(e,t,i){Vn.call(this),this.cue=t,this.cueDiv=jn(e,t.text);var n={color:"rgba(255, 255, 255, 1)",backgroundColor:"rgba(0, 0, 0, 0.8)",position:"relative",left:0,right:0,top:0,bottom:0,display:"inline",writingMode:""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext"};this.applyStyles(n,this.cueDiv),this.div=e.document.createElement("div"),n={direction:function(e){var t=[],i="";if(!e||!e.childNodes)return"ltr";function r(e,t){for(var i=t.childNodes.length-1;0<=i;i--)e.push(t.childNodes[i])}function a(e){if(!e||!e.length)return null;var t=e.pop(),i=t.textContent||t.innerText;if(i){var n=i.match(/^.*(\n|\r)/);return n?n[e.length=0]:i}return"ruby"===t.tagName?a(e):t.childNodes?(r(e,t),a(e)):void 0}for(r(t,e);i=a(t);)for(var n=0;n<i.length;n++)if(Hn(i.charCodeAt(n)))return"rtl";return"ltr"}(this.cueDiv),writingMode:""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext",textAlign:"middle"===t.align?"center":t.align,font:i.font,whiteSpace:"pre-line",position:"absolute"},this.applyStyles(n),this.div.appendChild(this.cueDiv);var r=0;switch(t.positionAlign){case"start":r=t.position;break;case"middle":r=t.position-t.size/2;break;case"end":r=t.position-t.size}""===t.vertical?this.applyStyles({left:this.formatStyle(r,"%"),width:this.formatStyle(t.size,"%")}):this.applyStyles({top:this.formatStyle(r,"%"),height:this.formatStyle(t.size,"%")}),this.move=function(e){this.applyStyles({top:this.formatStyle(e.top,"px"),bottom:this.formatStyle(e.bottom,"px"),left:this.formatStyle(e.left,"px"),right:this.formatStyle(e.right,"px"),height:this.formatStyle(e.height,"px"),width:this.formatStyle(e.width,"px")})}}function Wn(e){var t,i,n,r;if(e.div){i=e.div.offsetHeight,n=e.div.offsetWidth,r=e.div.offsetTop;var a=(a=e.div.childNodes)&&(a=a[0])&&a.getClientRects&&a.getClientRects();e=e.div.getBoundingClientRect(),t=a?Math.max(a[0]&&a[0].height||0,e.height/a.length):0}this.left=e.left,this.right=e.right,this.top=e.top||r,this.height=e.height||i,this.bottom=e.bottom||r+(e.height||i),this.width=e.width||n,this.lineHeight=void 0!==t?t:e.lineHeight}function zn(e,t,o,u){var i=new Wn(t),n=t.cue,r=function(e){if("number"==typeof e.line&&(e.snapToLines||0<=e.line&&e.line<=100))return e.line;if(!e.track||!e.track.textTrackList||!e.track.textTrackList.mediaElement)return-1;for(var t=e.track,i=t.textTrackList,n=0,r=0;r<i.length&&i[r]!==t;r++)"showing"===i[r].mode&&n++;return-1*++n}(n),a=[];if(n.snapToLines){var s;switch(n.vertical){case"":a=["+y","-y"],s="height";break;case"rl":a=["+x","-x"],s="width";break;case"lr":a=["-x","+x"],s="width"}var l=i.lineHeight,c=l*Math.round(r),h=o[s]+l,d=a[0];Math.abs(c)>h&&(c=c<0?-1:1,c*=Math.ceil(h/l)*l),r<0&&(c+=""===n.vertical?o.height:o.width,a=a.reverse()),i.move(d,c)}else{var p=i.lineHeight/o.height*100;switch(n.lineAlign){case"middle":r-=p/2;break;case"end":r-=p}switch(n.vertical){case"":t.applyStyles({top:t.formatStyle(r,"%")});break;case"rl":t.applyStyles({left:t.formatStyle(r,"%")});break;case"lr":t.applyStyles({right:t.formatStyle(r,"%")})}a=["+y","-x","+x","-y"],i=new Wn(t)}var f=function(e,t){for(var i,n=new Wn(e),r=1,a=0;a<t.length;a++){for(;e.overlapsOppositeAxis(o,t[a])||e.within(o)&&e.overlapsAny(u);)e.move(t[a]);if(e.within(o))return e;var s=e.intersectPercentage(o);s<r&&(i=new Wn(e),r=s),e=new Wn(n)}return i||n}(i,a);t.move(f.toCSSCompatValues(o))}function $n(){}Vn.prototype.applyStyles=function(e,t){for(var i in t=t||this.div,e)e.hasOwnProperty(i)&&(t.style[i]=e[i])},Vn.prototype.formatStyle=function(e,t){return 0===e?0:e+t},(qn.prototype=Pn(Vn.prototype)).constructor=qn,Wn.prototype.move=function(e,t){switch(t=void 0!==t?t:this.lineHeight,e){case"+x":this.left+=t,this.right+=t;break;case"-x":this.left-=t,this.right-=t;break;case"+y":this.top+=t,this.bottom+=t;break;case"-y":this.top-=t,this.bottom-=t}},Wn.prototype.overlaps=function(e){return this.left<e.right&&this.right>e.left&&this.top<e.bottom&&this.bottom>e.top},Wn.prototype.overlapsAny=function(e){for(var t=0;t<e.length;t++)if(this.overlaps(e[t]))return!0;return!1},Wn.prototype.within=function(e){return this.top>=e.top&&this.bottom<=e.bottom&&this.left>=e.left&&this.right<=e.right},Wn.prototype.overlapsOppositeAxis=function(e,t){switch(t){case"+x":return this.left<e.left;case"-x":return this.right>e.right;case"+y":return this.top<e.top;case"-y":return this.bottom>e.bottom}},Wn.prototype.intersectPercentage=function(e){return Math.max(0,Math.min(this.right,e.right)-Math.max(this.left,e.left))*Math.max(0,Math.min(this.bottom,e.bottom)-Math.max(this.top,e.top))/(this.height*this.width)},Wn.prototype.toCSSCompatValues=function(e){return{top:this.top-e.top,bottom:e.bottom-this.bottom,left:this.left-e.left,right:e.right-this.right,height:this.height,width:this.width}},Wn.getSimpleBoxPosition=function(e){var t=e.div?e.div.offsetHeight:e.tagName?e.offsetHeight:0,i=e.div?e.div.offsetWidth:e.tagName?e.offsetWidth:0,n=e.div?e.div.offsetTop:e.tagName?e.offsetTop:0;return{left:(e=e.div?e.div.getBoundingClientRect():e.tagName?e.getBoundingClientRect():e).left,right:e.right,top:e.top||n,height:e.height||t,bottom:e.bottom||n+(e.height||t),width:e.width||i}},$n.StringDecoder=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}},$n.convertCueToDOMTree=function(e,t){return e&&t?jn(e,t):null};$n.processCues=function(n,r,e){if(!n||!r||!e)return null;for(;e.firstChild;)e.removeChild(e.firstChild);var a=n.document.createElement("div");if(a.style.position="absolute",a.style.left="0",a.style.right="0",a.style.top="0",a.style.bottom="0",a.style.margin="1.5%",e.appendChild(a),function(e){for(var t=0;t<e.length;t++)if(e[t].hasBeenReset||!e[t].displayState)return!0;return!1}(r)){var s=[],o=Wn.getSimpleBoxPosition(a),u={font:Math.round(.05*o.height*100)/100+"px sans-serif"};!function(){for(var e,t,i=0;i<r.length;i++)t=r[i],e=new qn(n,t,u),a.appendChild(e.div),zn(0,e,o,s),t.displayState=e.div,s.push(Wn.getSimpleBoxPosition(e))}()}else for(var t=0;t<r.length;t++)a.appendChild(r[t].displayState)},($n.Parser=function(e,t,i){i||(i=t,t={}),t=t||{},this.window=e,this.vttjs=t,this.state="INITIAL",this.buffer="",this.decoder=i||new TextDecoder("utf8"),this.regionList=[]}).prototype={reportOrThrowError:function(e){if(!(e instanceof Ln))throw e;this.onparsingerror&&this.onparsingerror(e)},parse:function(e){var n=this;function t(){for(var e=n.buffer,t=0;t<e.length&&"\r"!==e[t]&&"\n"!==e[t];)++t;var i=e.substr(0,t);return"\r"===e[t]&&++t,"\n"===e[t]&&++t,n.buffer=e.substr(t),i}function i(e){e.match(/X-TIMESTAMP-MAP/)?Dn(e,function(e,t){switch(e){case"X-TIMESTAMP-MAP":!function(e){var i=new xn;Dn(e,function(e,t){switch(e){case"MPEGT":i.integer(e+"S",t);break;case"LOCA":i.set(e+"L",On(t))}},/[^\d]:/,/,/),n.ontimestampmap&&n.ontimestampmap({MPEGTS:i.get("MPEGTS"),LOCAL:i.get("LOCAL")})}(t)}},/=/):Dn(e,function(e,t){switch(e){case"Region":!function(e){var r=new xn;if(Dn(e,function(e,t){switch(e){case"id":r.set(e,t);break;case"width":r.percent(e,t);break;case"lines":r.integer(e,t);break;case"regionanchor":case"viewportanchor":var i=t.split(",");if(2!==i.length)break;var n=new xn;if(n.percent("x",i[0]),n.percent("y",i[1]),!n.has("x")||!n.has("y"))break;r.set(e+"X",n.get("x")),r.set(e+"Y",n.get("y"));break;case"scroll":r.alt(e,t,["up"])}},/=/,/\s/),r.has("id")){var t=new(n.vttjs.VTTRegion||n.window.VTTRegion);t.width=r.get("width",100),t.lines=r.get("lines",3),t.regionAnchorX=r.get("regionanchorX",0),t.regionAnchorY=r.get("regionanchorY",100),t.viewportAnchorX=r.get("viewportanchorX",0),t.viewportAnchorY=r.get("viewportanchorY",100),t.scroll=r.get("scroll",""),n.onregion&&n.onregion(t),n.regionList.push({id:r.get("id"),region:t})}}(t)}},/:/)}e&&(n.buffer+=n.decoder.decode(e,{stream:!0}));try{var r;if("INITIAL"===n.state){if(!/\r\n|\n/.test(n.buffer))return this;var a=(r=t()).match(/^WEBVTT([ \t].*)?$/);if(!a||!a[0])throw new Ln(Ln.Errors.BadSignature);n.state="HEADER"}for(var s=!1;n.buffer;){if(!/\r\n|\n/.test(n.buffer))return this;switch(s?s=!1:r=t(),n.state){case"HEADER":/:/.test(r)?i(r):r||(n.state="ID");continue;case"NOTE":r||(n.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(r)){n.state="NOTE";break}if(!r)continue;if(n.cue=new(n.vttjs.VTTCue||n.window.VTTCue)(0,0,""),n.state="CUE",-1===r.indexOf("--\x3e")){n.cue.id=r;continue}case"CUE":try{Un(r,n.cue,n.regionList)}catch(e){n.reportOrThrowError(e),n.cue=null,n.state="BADCUE";continue}n.state="CUETEXT";continue;case"CUETEXT":var o=-1!==r.indexOf("--\x3e");if(!r||o&&(s=!0)){n.oncue&&n.oncue(n.cue),n.cue=null,n.state="ID";continue}n.cue.text&&(n.cue.text+="\n"),n.cue.text+=r;continue;case"BADCUE":r||(n.state="ID");continue}}}catch(e){n.reportOrThrowError(e),"CUETEXT"===n.state&&n.cue&&n.oncue&&n.oncue(n.cue),n.cue=null,n.state="INITIAL"===n.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var t=this;try{if(t.buffer+=t.decoder.decode(),!t.cue&&"HEADER"!==t.state||(t.buffer+="\n\n",t.parse()),"INITIAL"===t.state)throw new Ln(Ln.Errors.BadSignature)}catch(e){t.reportOrThrowError(e)}return t.onflush&&t.onflush(),this}};var Gn=$n,Xn={"":1,lr:1,rl:1},Kn={start:1,middle:1,end:1,left:1,right:1};function Yn(e){return"string"==typeof e&&(!!Kn[e.toLowerCase()]&&e.toLowerCase())}function Qn(e,t,i){this.hasBeenReset=!1;var n="",r=!1,a=e,s=t,o=i,u=null,l="",c=!0,h="auto",d="start",p=50,f="middle",m=50,g="middle";Object.defineProperties(this,{id:{enumerable:!0,get:function(){return n},set:function(e){n=""+e}},pauseOnExit:{enumerable:!0,get:function(){return r},set:function(e){r=!!e}},startTime:{enumerable:!0,get:function(){return a},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");a=e,this.hasBeenReset=!0}},endTime:{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");s=e,this.hasBeenReset=!0}},text:{enumerable:!0,get:function(){return o},set:function(e){o=""+e,this.hasBeenReset=!0}},region:{enumerable:!0,get:function(){return u},set:function(e){u=e,this.hasBeenReset=!0}},vertical:{enumerable:!0,get:function(){return l},set:function(e){var t=function(e){return"string"==typeof e&&(!!Xn[e.toLowerCase()]&&e.toLowerCase())}(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");l=t,this.hasBeenReset=!0}},snapToLines:{enumerable:!0,get:function(){return c},set:function(e){c=!!e,this.hasBeenReset=!0}},line:{enumerable:!0,get:function(){return h},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("An invalid number or illegal string was specified.");h=e,this.hasBeenReset=!0}},lineAlign:{enumerable:!0,get:function(){return d},set:function(e){var t=Yn(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");d=t,this.hasBeenReset=!0}},position:{enumerable:!0,get:function(){return p},set:function(e){if(e<0||100<e)throw new Error("Position must be between 0 and 100.");p=e,this.hasBeenReset=!0}},positionAlign:{enumerable:!0,get:function(){return f},set:function(e){var t=Yn(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");f=t,this.hasBeenReset=!0}},size:{enumerable:!0,get:function(){return m},set:function(e){if(e<0||100<e)throw new Error("Size must be between 0 and 100.");m=e,this.hasBeenReset=!0}},align:{enumerable:!0,get:function(){return g},set:function(e){var t=Yn(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");g=t,this.hasBeenReset=!0}}}),this.displayState=void 0}Qn.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)};var Jn=Qn,Zn={"":!0,up:!0};function er(e){return"number"==typeof e&&0<=e&&e<=100}function tr(){var t=100,i=3,n=0,r=100,a=0,s=100,o="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return t},set:function(e){if(!er(e))throw new Error("Width must be between 0 and 100.");t=e}},lines:{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e)throw new TypeError("Lines must be set to a number.");i=e}},regionAnchorY:{enumerable:!0,get:function(){return r},set:function(e){if(!er(e))throw new Error("RegionAnchorX must be between 0 and 100.");r=e}},regionAnchorX:{enumerable:!0,get:function(){return n},set:function(e){if(!er(e))throw new Error("RegionAnchorY must be between 0 and 100.");n=e}},viewportAnchorY:{enumerable:!0,get:function(){return s},set:function(e){if(!er(e))throw new Error("ViewportAnchorY must be between 0 and 100.");s=e}},viewportAnchorX:{enumerable:!0,get:function(){return a},set:function(e){if(!er(e))throw new Error("ViewportAnchorX must be between 0 and 100.");a=e}},scroll:{enumerable:!0,get:function(){return o},set:function(e){var t=function(e){return"string"==typeof e&&(!!Zn[e.toLowerCase()]&&e.toLowerCase())}(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");o=t}}})}var ir=wt(function(e){var t=e.exports={WebVTT:Gn,VTTCue:Jn,VTTRegion:tr};v.vttjs=t,v.WebVTT=t.WebVTT;var i=t.VTTCue,n=t.VTTRegion,r=v.VTTCue,a=v.VTTRegion;t.shim=function(){v.VTTCue=i,v.VTTRegion=n},t.restore=function(){v.VTTCue=r,v.VTTRegion=a},v.VTTCue||t.shim()});ir.WebVTT,ir.VTTCue,ir.VTTRegion;var nr=function(t){function i(i,e){var n;return void 0===i&&(i={}),void 0===e&&(e=function(){}),i.reportTouchActivity=!1,(n=t.call(this,null,i,e)||this).hasStarted_=!1,n.on("playing",function(){this.hasStarted_=!0}),n.on("loadstart",function(){this.hasStarted_=!1}),An.names.forEach(function(e){var t=An[e];i&&i[t.getterName]&&(n[t.privateName]=i[t.getterName])}),n.featuresProgressEvents||n.manualProgressOn(),n.featuresTimeupdateEvents||n.manualTimeUpdatesOn(),["Text","Audio","Video"].forEach(function(e){!1===i["native"+e+"Tracks"]&&(n["featuresNative"+e+"Tracks"]=!1)}),!1===i.nativeCaptions||!1===i.nativeTextTracks?n.featuresNativeTextTracks=!1:!0!==i.nativeCaptions&&!0!==i.nativeTextTracks||(n.featuresNativeTextTracks=!0),n.featuresNativeTextTracks||n.emulateTextTracks(),n.autoRemoteTextTracks_=new An.text.ListClass,n.initTrackListeners(),i.nativeControlsForTouch||n.emitTapEvents(),n.constructor&&(n.name_=n.constructor.name||"Unknown Tech"),n}De(i,t);var e=i.prototype;return e.triggerSourceset=function(e){var t=this;this.isReady_||this.one("ready",function(){return t.setTimeout(function(){return t.triggerSourceset(e)},1)}),this.trigger({src:e,type:"sourceset"})},e.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},e.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},e.trackProgress=function(e){this.stopTrackingProgress(),this.progressInterval=this.setInterval(pe(this,function(){var e=this.bufferedPercent();this.bufferedPercent_!==e&&this.trigger("progress"),1===(this.bufferedPercent_=e)&&this.stopTrackingProgress()}),500)},e.onDurationChange=function(e){this.duration_=this.duration()},e.buffered=function(){return ct(0,0)},e.bufferedPercent=function(){return ht(this.buffered(),this.duration_)},e.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},e.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},e.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},e.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},e.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},e.dispose=function(){this.clearTracks(En.names),this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),t.prototype.dispose.call(this)},e.clearTracks=function(e){var r=this;(e=[].concat(e)).forEach(function(e){for(var t=r[e+"Tracks"]()||[],i=t.length;i--;){var n=t[i];"text"===e&&r.removeRemoteTextTrack(n),t.removeTrack(n)}})},e.cleanupAutoTextTracks=function(){for(var e=this.autoRemoteTextTracks_||[],t=e.length;t--;){var i=e[t];this.removeRemoteTextTrack(i)}},e.reset=function(){},e.error=function(e){return void 0!==e&&(this.error_=new vt(e),this.trigger("error")),this.error_},e.played=function(){return this.hasStarted_?ct(0,0):ct()},e.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},e.initTrackListeners=function(){var r=this;En.names.forEach(function(e){function t(){r.trigger(e+"trackchange")}var i=En[e],n=r[i.getterName]();n.addEventListener("removetrack",t),n.addEventListener("addtrack",t),r.on("dispose",function(){n.removeEventListener("removetrack",t),n.removeEventListener("addtrack",t)})})},e.addWebVttScript_=function(){var e=this;if(!v.WebVTT)if(h.body.contains(this.el())){if(!this.options_["vtt.js"]&&o(ir)&&0<Object.keys(ir).length)return void this.trigger("vttjsloaded");var t=h.createElement("script");t.src=this.options_["vtt.js"]||"https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js",t.onload=function(){e.trigger("vttjsloaded")},t.onerror=function(){e.trigger("vttjserror")},this.on("dispose",function(){t.onload=null,t.onerror=null}),v.WebVTT=!0,this.el().parentNode.appendChild(t)}else this.ready(this.addWebVttScript_)},e.emulateTextTracks=function(){function t(e){return n.addTrack(e.track)}function i(e){return n.removeTrack(e.track)}var e=this,n=this.textTracks(),r=this.remoteTextTracks();r.on("addtrack",t),r.on("removetrack",i),this.addWebVttScript_();function a(){return e.trigger("texttrackchange")}function s(){a();for(var e=0;e<n.length;e++){var t=n[e];t.removeEventListener("cuechange",a),"showing"===t.mode&&t.addEventListener("cuechange",a)}}s(),n.addEventListener("change",s),n.addEventListener("addtrack",s),n.addEventListener("removetrack",s),this.on("dispose",function(){r.off("addtrack",t),r.off("removetrack",i),n.removeEventListener("change",s),n.removeEventListener("addtrack",s),n.removeEventListener("removetrack",s);for(var e=0;e<n.length;e++){n[e].removeEventListener("cuechange",a)}})},e.addTextTrack=function(e,t,i){if(!e)throw new Error("TextTrack kind is required but was not provided");return function(e,t,i,n,r){void 0===r&&(r={});var a=e.textTracks();r.kind=t,i&&(r.label=i),n&&(r.language=n),r.tech=e;var s=new An.text.TrackClass(r);return a.addTrack(s),s}(this,e,t,i)},e.createRemoteTextTrack=function(e){var t=Oe(e,{tech:this});return new wn.remoteTextEl.TrackClass(t)},e.addRemoteTextTrack=function(e,t){var i=this;void 0===e&&(e={});var n=this.createRemoteTextTrack(e);return!0!==t&&!1!==t&&(p.warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'),t=!0),this.remoteTextTrackEls().addTrackElement_(n),this.remoteTextTracks().addTrack(n.track),!0!==t&&this.ready(function(){return i.autoRemoteTextTracks_.addTrack(n.track)}),n},e.removeRemoteTextTrack=function(e){var t=this.remoteTextTrackEls().getTrackElementByTrack_(e);this.remoteTextTrackEls().removeTrackElement_(t),this.remoteTextTracks().removeTrack(e),this.autoRemoteTextTracks_.removeTrack(e)},e.getVideoPlaybackQuality=function(){return{}},e.requestPictureInPicture=function(){var e=this.options_.Promise||v.Promise;if(e)return e.reject()},e.setPoster=function(){},e.playsinline=function(){},e.setPlaysinline=function(){},e.overrideNativeAudioTracks=function(){},e.overrideNativeVideoTracks=function(){},e.canPlayType=function(){return""},i.canPlayType=function(){return""},i.canPlaySource=function(e,t){return i.canPlayType(e.type)},i.isTech=function(e){return e.prototype instanceof i||e instanceof i||e===i},i.registerTech=function(e,t){if(i.techs_||(i.techs_={}),!i.isTech(t))throw new Error("Tech "+e+" must be a Tech");if(!i.canPlayType)throw new Error("Techs must have a static canPlayType method on them");if(!i.canPlaySource)throw new Error("Techs must have a static canPlaySource method on them");return e=Le(e),i.techs_[e]=t,i.techs_[Ie(e)]=t,"Tech"!==e&&i.defaultTechOrder_.push(e),t},i.getTech=function(e){if(e)return i.techs_&&i.techs_[e]?i.techs_[e]:(e=Le(e),v&&v.videojs&&v.videojs[e]?(p.warn("The "+e+" tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),v.videojs[e]):void 0)},i}(xe);An.names.forEach(function(e){var t=An[e];nr.prototype[t.getterName]=function(){return this[t.privateName]=this[t.privateName]||new t.ListClass,this[t.privateName]}}),nr.prototype.featuresVolumeControl=!0,nr.prototype.featuresMuteControl=!0,nr.prototype.featuresFullscreenResize=!1,nr.prototype.featuresPlaybackRate=!1,nr.prototype.featuresProgressEvents=!1,nr.prototype.featuresSourceset=!1,nr.prototype.featuresTimeupdateEvents=!1,nr.prototype.featuresNativeTextTracks=!1,nr.withSourceHandlers=function(r){r.registerSourceHandler=function(e,t){var i=r.sourceHandlers;i=i||(r.sourceHandlers=[]),void 0===t&&(t=i.length),i.splice(t,0,e)},r.canPlayType=function(e){for(var t,i=r.sourceHandlers||[],n=0;n<i.length;n++)if(t=i[n].canPlayType(e))return t;return""},r.selectSourceHandler=function(e,t){for(var i=r.sourceHandlers||[],n=0;n<i.length;n++)if(i[n].canHandleSource(e,t))return i[n];return null},r.canPlaySource=function(e,t){var i=r.selectSourceHandler(e,t);return i?i.canHandleSource(e,t):""};["seekable","seeking","duration"].forEach(function(e){var t=this[e];"function"==typeof t&&(this[e]=function(){return this.sourceHandler_&&this.sourceHandler_[e]?this.sourceHandler_[e].apply(this.sourceHandler_,arguments):t.apply(this,arguments)})},r.prototype),r.prototype.setSource=function(e){var t=r.selectSourceHandler(e,this.options_);t||(r.nativeSourceHandler?t=r.nativeSourceHandler:p.error("No source handler found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler),t!==r.nativeSourceHandler&&(this.currentSource_=e),this.sourceHandler_=t.handleSource(e,this,this.options_),this.one("dispose",this.disposeSourceHandler)},r.prototype.disposeSourceHandler=function(){this.currentSource_&&(this.clearTracks(["audio","video"]),this.currentSource_=null),this.cleanupAutoTextTracks(),this.sourceHandler_&&(this.sourceHandler_.dispose&&this.sourceHandler_.dispose(),this.sourceHandler_=null)}},xe.registerComponent("Tech",nr),nr.registerTech("Tech",nr),nr.defaultTechOrder_=[];var rr={},ar={},sr={};function or(e,t,i){e.setTimeout(function(){return function i(n,e,r,a,s,o){void 0===n&&(n={});void 0===e&&(e=[]);void 0===s&&(s=[]);void 0===o&&(o=!1);var t=e,u=t[0],l=t.slice(1);if("string"==typeof u)i(n,rr[u],r,a,s,o);else if(u){var c=pr(a,u);if(!c.setSource)return s.push(c),i(n,l,r,a,s,o);c.setSource(m({},n),function(e,t){if(e)return i(n,l,r,a,s,o);s.push(c),i(t,n.type===t.type?l:rr[t.type],r,a,s,o)})}else l.length?i(n,l,r,a,s,o):o?r(n,s):i(n,rr["*"],r,a,s,!0)}(t,rr[t.type],i,e)},1)}function ur(e,t,i,n){void 0===n&&(n=null);var r="call"+Le(i),a=e.reduce(dr(r),n),s=a===sr,o=s?null:t[i](a);return function(e,t,i,n){for(var r=e.length-1;0<=r;r--){var a=e[r];a[t]&&a[t](n,i)}}(e,i,o,s),o}var lr={buffered:1,currentTime:1,duration:1,seekable:1,played:1,paused:1,volume:1},cr={setCurrentTime:1,setVolume:1},hr={play:1,pause:1};function dr(i){return function(e,t){return e===sr?sr:t[i]?t[i](e):e}}function pr(e,t){var i=ar[e.id()],n=null;if(null==i)return n=t(e),ar[e.id()]=[[t,n]],n;for(var r=0;r<i.length;r++){var a=i[r],s=a[0],o=a[1];s===t&&(n=o)}return null===n&&(n=t(e),i.push([t,n])),n}function fr(e){void 0===e&&(e="");var t=Mt(e);return mr[t.toLowerCase()]||""}var mr={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",m4a:"audio/mp4",mp3:"audio/mpeg",aac:"audio/aac",oga:"audio/ogg",m3u8:"application/x-mpegURL",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",svg:"image/svg+xml",webp:"image/webp"};function gr(e){if(!e.type){var t=fr(e.src);t&&(e.type=t)}return e}var yr=function(l){function e(e,t,i){var n,r=Oe({createEl:!1},t);if(n=l.call(this,e,r,i)||this,t.playerOptions.sources&&0!==t.playerOptions.sources.length)e.src(t.playerOptions.sources);else for(var a=0,s=t.playerOptions.techOrder;a<s.length;a++){var o=Le(s[a]),u=nr.getTech(o);if(o||(u=xe.getComponent(o)),u&&u.isSupported()){e.loadTech_(o);break}}return n}return De(e,l),e}(xe);xe.registerComponent("MediaLoader",yr);var vr=function(r){function e(e,t){var i;return(i=r.call(this,e,t)||this).emitTapEvents(),i.enable(),i}De(e,r);var t=e.prototype;return t.createEl=function(e,t,i){void 0===e&&(e="div"),void 0===t&&(t={}),void 0===i&&(i={}),t=m({innerHTML:'<span aria-hidden="true" class="vjs-icon-placeholder"></span>',className:this.buildCSSClass(),tabIndex:0},t),"button"===e&&p.error("Creating a ClickableComponent with an HTML element of "+e+" is not supported; use a Button instead."),i=m({role:"button"},i),this.tabIndex_=t.tabIndex;var n=r.prototype.createEl.call(this,e,t,i);return this.createControlTextEl(n),n},t.dispose=function(){this.controlTextEl_=null,r.prototype.dispose.call(this)},t.createControlTextEl=function(e){return this.controlTextEl_=b("span",{className:"vjs-control-text"},{"aria-live":"polite"}),e&&e.appendChild(this.controlTextEl_),this.controlText(this.controlText_,e),this.controlTextEl_},t.controlText=function(e,t){if(void 0===t&&(t=this.el()),void 0===e)return this.controlText_||"Need Text";var i=this.localize(e);this.controlText_=e,T(this.controlTextEl_,i),this.nonIconControl||t.setAttribute("title",i)},t.buildCSSClass=function(){return"vjs-control vjs-button "+r.prototype.buildCSSClass.call(this)},t.enable=function(){this.enabled_||(this.enabled_=!0,this.removeClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","false"),"undefined"!=typeof this.tabIndex_&&this.el_.setAttribute("tabIndex",this.tabIndex_),this.on(["tap","click"],this.handleClick),this.on("keydown",this.handleKeyDown))},t.disable=function(){this.enabled_=!1,this.addClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","true"),"undefined"!=typeof this.tabIndex_&&this.el_.removeAttribute("tabIndex"),this.off("mouseover",this.handleMouseOver),this.off("mouseout",this.handleMouseOut),this.off(["tap","click"],this.handleClick),this.off("keydown",this.handleKeyDown)},t.handleClick=function(e){},t.handleKeyDown=function(e){At.isEventKey(e,"Space")||At.isEventKey(e,"Enter")?(e.preventDefault(),e.stopPropagation(),this.trigger("click")):r.prototype.handleKeyDown.call(this,e)},e}(xe);xe.registerComponent("ClickableComponent",vr);var _r=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).update(),e.on("posterchange",pe(Me(i),i.update)),i}De(e,n);var t=e.prototype;return t.dispose=function(){this.player().off("posterchange",this.update),n.prototype.dispose.call(this)},t.createEl=function(){return b("div",{className:"vjs-poster",tabIndex:-1})},t.update=function(e){var t=this.player().poster();this.setSrc(t),t?this.show():this.hide()},t.setSrc=function(e){var t="";e&&(t='url("'+e+'")'),this.el_.style.backgroundImage=t},t.handleClick=function(e){this.player_.controls()&&(this.player_.tech(!0)&&this.player_.tech(!0).focus(),this.player_.paused()?St(this.player_.play()):this.player_.pause())},e}(vr);xe.registerComponent("PosterImage",_r);var br="#222",Tr={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'};function Sr(e,t){var i;if(4===e.length)i=e[1]+e[1]+e[2]+e[2]+e[3]+e[3];else{if(7!==e.length)throw new Error("Invalid color code provided, "+e+"; must be formatted as e.g. #f0e or #f604e2.");i=e.slice(1)}return"rgba("+parseInt(i.slice(0,2),16)+","+parseInt(i.slice(2,4),16)+","+parseInt(i.slice(4,6),16)+","+t+")"}function kr(e,t,i){try{e.style[t]=i}catch(e){return}}var Cr=function(a){function e(i,e,t){var n;n=a.call(this,i,e,t)||this;var r=pe(Me(n),n.updateDisplay);return i.on("loadstart",pe(Me(n),n.toggleDisplay)),i.on("texttrackchange",r),i.on("loadedmetadata",pe(Me(n),n.preselectTrack)),i.ready(pe(Me(n),function(){if(i.tech_&&i.tech_.featuresNativeTextTracks)this.hide();else{i.on("fullscreenchange",r),i.on("playerresize",r),v.addEventListener("orientationchange",r),i.on("dispose",function(){return v.removeEventListener("orientationchange",r)});for(var e=this.options_.playerOptions.tracks||[],t=0;t<e.length;t++)this.player_.addRemoteTextTrack(e[t],!0);this.preselectTrack()}})),n}De(e,a);var t=e.prototype;return t.preselectTrack=function(){for(var e,t,i,n={captions:1,subtitles:1},r=this.player_.textTracks(),a=this.player_.cache_.selectedLanguage,s=0;s<r.length;s++){var o=r[s];a&&a.enabled&&a.language&&a.language===o.language&&o.kind in n?i=o.kind===a.kind?o:i||o:a&&!a.enabled?t=e=i=null:o.default&&("descriptions"!==o.kind||e?o.kind in n&&!t&&(t=o):e=o)}i?i.mode="showing":t?t.mode="showing":e&&(e.mode="showing")},t.toggleDisplay=function(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()},t.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"},{"aria-live":"off","aria-atomic":"true"})},t.clearDisplay=function(){"function"==typeof v.WebVTT&&v.WebVTT.processCues(v,[],this.el_)},t.updateDisplay=function(){var e=this.player_.textTracks(),t=this.options_.allowMultipleShowingTracks;if(this.clearDisplay(),t){for(var i=[],n=0;n<e.length;++n){var r=e[n];"showing"===r.mode&&i.push(r)}this.updateForTrack(i)}else{for(var a=null,s=null,o=e.length;o--;){var u=e[o];"showing"===u.mode&&("descriptions"===u.kind?a=u:s=u)}s?("off"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","off"),this.updateForTrack(s)):a&&("assertive"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","assertive"),this.updateForTrack(a))}},t.updateDisplayState=function(e){for(var t=this.player_.textTrackSettings.getValues(),i=e.activeCues,n=i.length;n--;){var r=i[n];if(r){var a=r.displayState;if(t.color&&(a.firstChild.style.color=t.color),t.textOpacity&&kr(a.firstChild,"color",Sr(t.color||"#fff",t.textOpacity)),t.backgroundColor&&(a.firstChild.style.backgroundColor=t.backgroundColor),t.backgroundOpacity&&kr(a.firstChild,"backgroundColor",Sr(t.backgroundColor||"#000",t.backgroundOpacity)),t.windowColor&&(t.windowOpacity?kr(a,"backgroundColor",Sr(t.windowColor,t.windowOpacity)):a.style.backgroundColor=t.windowColor),t.edgeStyle&&("dropshadow"===t.edgeStyle?a.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px "+br:"raised"===t.edgeStyle?a.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px "+br:"depressed"===t.edgeStyle?a.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px "+br:"uniform"===t.edgeStyle&&(a.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px "+br)),t.fontPercent&&1!==t.fontPercent){var s=v.parseFloat(a.style.fontSize);a.style.fontSize=s*t.fontPercent+"px",a.style.height="auto",a.style.top="auto",a.style.bottom="2px"}t.fontFamily&&"default"!==t.fontFamily&&("small-caps"===t.fontFamily?a.firstChild.style.fontVariant="small-caps":a.firstChild.style.fontFamily=Tr[t.fontFamily])}}},t.updateForTrack=function(e){if(Array.isArray(e)||(e=[e]),"function"==typeof v.WebVTT&&!e.every(function(e){return!e.activeCues})){for(var t=[],i=0;i<e.length;++i)for(var n=e[i],r=0;r<n.activeCues.length;++r)t.push(n.activeCues[r]);v.WebVTT.processCues(v,t,this.el_);for(var a=0;a<e.length;++a){for(var s=e[a],o=0;o<s.activeCues.length;++o){var u=s.activeCues[o].displayState;C(u,"vjs-text-track-cue"),C(u,"vjs-text-track-cue-"+(s.language?s.language:a))}this.player_.textTrackSettings&&this.updateDisplayState(s)}}},e}(xe);xe.registerComponent("TextTrackDisplay",Cr);var Er=function(r){function e(){return r.apply(this,arguments)||this}return De(e,r),e.prototype.createEl=function(){var e=this.player_.isAudio(),t=this.localize(e?"Audio Player":"Video Player"),i=b("span",{className:"vjs-control-text",innerHTML:this.localize("{1} is loading.",[t])}),n=r.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner",dir:"ltr"});return n.appendChild(i),n},e}(xe);xe.registerComponent("LoadingSpinner",Er);var wr=function(t){function e(){return t.apply(this,arguments)||this}De(e,t);var i=e.prototype;return i.createEl=function(e,t,i){void 0===t&&(t={}),void 0===i&&(i={}),t=m({innerHTML:'<span aria-hidden="true" class="vjs-icon-placeholder"></span>',className:this.buildCSSClass()},t),i=m({type:"button"},i);var n=xe.prototype.createEl.call(this,"button",t,i);return this.createControlTextEl(n),n},i.addChild=function(e,t){void 0===t&&(t={});var i=this.constructor.name;return p.warn("Adding an actionable (user controllable) child to a Button ("+i+") is not supported; use a ClickableComponent instead."),xe.prototype.addChild.call(this,e,t)},i.enable=function(){t.prototype.enable.call(this),this.el_.removeAttribute("disabled")},i.disable=function(){t.prototype.disable.call(this),this.el_.setAttribute("disabled","disabled")},i.handleKeyDown=function(e){At.isEventKey(e,"Space")||At.isEventKey(e,"Enter")?e.stopPropagation():t.prototype.handleKeyDown.call(this,e)},e}(vr);xe.registerComponent("Button",wr);var Ar=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).mouseused_=!1,i.on("mousedown",i.handleMouseDown),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-big-play-button"},t.handleClick=function(e){var t=this.player_.play();if(this.mouseused_&&e.clientX&&e.clientY)return St(t),void(this.player_.tech(!0)&&this.player_.tech(!0).focus());var i=this.player_.getChild("controlBar"),n=i&&i.getChild("playToggle");if(n){function r(){return n.focus()}Tt(t)?t.then(r,function(){}):this.setTimeout(r,1)}else this.player_.tech(!0).focus()},t.handleKeyDown=function(e){this.mouseused_=!1,n.prototype.handleKeyDown.call(this,e)},t.handleMouseDown=function(e){this.mouseused_=!0},e}(wr);Ar.prototype.controlText_="Play Video",xe.registerComponent("BigPlayButton",Ar);var Pr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).controlText(t&&t.controlText||i.localize("Close")),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-close-button "+n.prototype.buildCSSClass.call(this)},t.handleClick=function(e){this.trigger({type:"close",bubbles:!1})},t.handleKeyDown=function(e){At.isEventKey(e,"Esc")?(e.preventDefault(),e.stopPropagation(),this.trigger("click")):n.prototype.handleKeyDown.call(this,e)},e}(wr);xe.registerComponent("CloseButton",Pr);var Ir=function(n){function e(e,t){var i;return void 0===t&&(t={}),i=n.call(this,e,t)||this,t.replay=void 0===t.replay||t.replay,i.on(e,"play",i.handlePlay),i.on(e,"pause",i.handlePause),t.replay&&i.on(e,"ended",i.handleEnded),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-play-control "+n.prototype.buildCSSClass.call(this)},t.handleClick=function(e){this.player_.paused()?this.player_.play():this.player_.pause()},t.handleSeeked=function(e){this.removeClass("vjs-ended"),this.player_.paused()?this.handlePause(e):this.handlePlay(e)},t.handlePlay=function(e){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},t.handlePause=function(e){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},t.handleEnded=function(e){this.removeClass("vjs-playing"),this.addClass("vjs-ended"),this.controlText("Replay"),this.one(this.player_,"seeked",this.handleSeeked)},e}(wr);Ir.prototype.controlText_="Play",xe.registerComponent("PlayToggle",Ir);function Lr(e,t){e=e<0?0:e;var i=Math.floor(e%60),n=Math.floor(e/60%60),r=Math.floor(e/3600),a=Math.floor(t/60%60),s=Math.floor(t/3600);return!isNaN(e)&&e!==1/0||(r=n=i="-"),(r=0<r||0<s?r+":":"")+(n=((r||10<=a)&&n<10?"0"+n:n)+":")+(i=i<10?"0"+i:i)}var Or=Lr;function xr(e,t){return void 0===t&&(t=e),Or(e,t)}var Dr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).throttledUpdateContent=fe(pe(Me(i),i.updateContent),30),i.on(e,"timeupdate",i.throttledUpdateContent),i}De(e,n);var t=e.prototype;return t.createEl=function(){var e=this.buildCSSClass(),t=n.prototype.createEl.call(this,"div",{className:e+" vjs-time-control vjs-control",innerHTML:'<span class="vjs-control-text" role="presentation">'+this.localize(this.labelText_)+" </span>"});return this.contentEl_=b("span",{className:e+"-display"},{"aria-live":"off",role:"presentation"}),this.updateTextNode_(),t.appendChild(this.contentEl_),t},t.dispose=function(){this.contentEl_=null,this.textNode_=null,n.prototype.dispose.call(this)},t.updateTextNode_=function(){if(this.contentEl_){for(;this.contentEl_.firstChild;)this.contentEl_.removeChild(this.contentEl_.firstChild);this.textNode_=h.createTextNode(this.formattedTime_||this.formatTime_(0)),this.contentEl_.appendChild(this.textNode_)}},t.formatTime_=function(e){return xr(e)},t.updateFormattedTime_=function(e){var t=this.formatTime_(e);t!==this.formattedTime_&&(this.formattedTime_=t,this.requestAnimationFrame(this.updateTextNode_))},t.updateContent=function(e){},e}(xe);Dr.prototype.labelText_="Time",Dr.prototype.controlText_="Time",xe.registerComponent("TimeDisplay",Dr);var Ur=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on(e,"ended",i.handleEnded),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-current-time"},t.updateContent=function(e){var t=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.updateFormattedTime_(t)},t.handleEnded=function(e){this.player_.duration()&&this.updateFormattedTime_(this.player_.duration())},e}(Dr);Ur.prototype.labelText_="Current Time",Ur.prototype.controlText_="Current Time",xe.registerComponent("CurrentTimeDisplay",Ur);var Rr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on(e,"durationchange",i.updateContent),i.on(e,"loadstart",i.updateContent),i.on(e,"loadedmetadata",i.throttledUpdateContent),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-duration"},t.updateContent=function(e){var t=this.player_.duration();this.duration_!==t&&(this.duration_=t,this.updateFormattedTime_(t))},e}(Dr);Rr.prototype.labelText_="Duration",Rr.prototype.controlText_="Duration",xe.registerComponent("DurationDisplay",Rr);var Mr=function(e){function t(){return e.apply(this,arguments)||this}return De(t,e),t.prototype.createEl=function(){return e.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"<div><span>/</span></div>"},{"aria-hidden":!0})},t}(xe);xe.registerComponent("TimeDivider",Mr);var Nr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on(e,"durationchange",i.throttledUpdateContent),i.on(e,"ended",i.handleEnded),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-remaining-time"},t.createEl=function(){var e=n.prototype.createEl.call(this);return e.insertBefore(b("span",{},{"aria-hidden":!0},"-"),this.contentEl_),e},t.updateContent=function(e){"number"==typeof this.player_.duration()&&(this.player_.remainingTimeDisplay?this.updateFormattedTime_(this.player_.remainingTimeDisplay()):this.updateFormattedTime_(this.player_.remainingTime()))},t.handleEnded=function(e){this.player_.duration()&&this.updateFormattedTime_(0)},e}(Dr);Nr.prototype.labelText_="Remaining Time",Nr.prototype.controlText_="Remaining Time",xe.registerComponent("RemainingTimeDisplay",Nr);var Br=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).updateShowing(),i.on(i.player(),"durationchange",i.updateShowing),i}De(e,n);var t=e.prototype;return t.createEl=function(){var e=n.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=b("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Stream Type")+" </span>"+this.localize("LIVE")},{"aria-live":"off"}),e.appendChild(this.contentEl_),e},t.dispose=function(){this.contentEl_=null,n.prototype.dispose.call(this)},t.updateShowing=function(e){this.player().duration()===1/0?this.show():this.hide()},e}(xe);xe.registerComponent("LiveDisplay",Br);var jr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).updateLiveEdgeStatus(),i.player_.liveTracker&&i.on(i.player_.liveTracker,"liveedgechange",i.updateLiveEdgeStatus),i}De(e,n);var t=e.prototype;return t.createEl=function(){var e=n.prototype.createEl.call(this,"button",{className:"vjs-seek-to-live-control vjs-control"});return this.textEl_=b("span",{className:"vjs-seek-to-live-text",innerHTML:this.localize("LIVE")},{"aria-hidden":"true"}),e.appendChild(this.textEl_),e},t.updateLiveEdgeStatus=function(e){!this.player_.liveTracker||this.player_.liveTracker.atLiveEdge()?(this.setAttribute("aria-disabled",!0),this.addClass("vjs-at-live-edge"),this.controlText("Seek to live, currently playing live")):(this.setAttribute("aria-disabled",!1),this.removeClass("vjs-at-live-edge"),this.controlText("Seek to live, currently behind live"))},t.handleClick=function(){this.player_.liveTracker.seekToLiveEdge()},t.dispose=function(){this.player_.liveTracker&&this.off(this.player_.liveTracker,"liveedgechange",this.updateLiveEdgeStatus),this.textEl_=null,n.prototype.dispose.call(this)},e}(wr);jr.prototype.controlText_="Seek to live, currently playing live",xe.registerComponent("SeekToLive",jr);var Fr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).bar=i.getChild(i.options_.barName),i.vertical(!!i.options_.vertical),i.enable(),i}De(e,n);var t=e.prototype;return t.enabled=function(){return this.enabled_},t.enable=function(){this.enabled()||(this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("keydown",this.handleKeyDown),this.on("click",this.handleClick),this.on(this.player_,"controlsvisible",this.update),this.playerEvent&&this.on(this.player_,this.playerEvent,this.update),this.removeClass("disabled"),this.setAttribute("tabindex",0),this.enabled_=!0)},t.disable=function(){if(this.enabled()){var e=this.bar.el_.ownerDocument;this.off("mousedown",this.handleMouseDown),this.off("touchstart",this.handleMouseDown),this.off("keydown",this.handleKeyDown),this.off("click",this.handleClick),this.off(this.player_,"controlsvisible",this.update),this.off(e,"mousemove",this.handleMouseMove),this.off(e,"mouseup",this.handleMouseUp),this.off(e,"touchmove",this.handleMouseMove),this.off(e,"touchend",this.handleMouseUp),this.removeAttribute("tabindex"),this.addClass("disabled"),this.playerEvent&&this.off(this.player_,this.playerEvent,this.update),this.enabled_=!1}},t.createEl=function(e,t,i){return void 0===t&&(t={}),void 0===i&&(i={}),t.className=t.className+" vjs-slider",t=m({tabIndex:0},t),i=m({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},i),n.prototype.createEl.call(this,e,t,i)},t.handleMouseDown=function(e){var t=this.bar.el_.ownerDocument;"mousedown"===e.type&&e.preventDefault(),"touchstart"!==e.type||et||e.preventDefault(),x(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(t,"mousemove",this.handleMouseMove),this.on(t,"mouseup",this.handleMouseUp),this.on(t,"touchmove",this.handleMouseMove),this.on(t,"touchend",this.handleMouseUp),this.handleMouseMove(e)},t.handleMouseMove=function(e){},t.handleMouseUp=function(){var e=this.bar.el_.ownerDocument;D(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(e,"mousemove",this.handleMouseMove),this.off(e,"mouseup",this.handleMouseUp),this.off(e,"touchmove",this.handleMouseMove),this.off(e,"touchend",this.handleMouseUp),this.update()},t.update=function(){if(this.el_){var e=this.getPercent(),t=this.bar;if(t){("number"!=typeof e||e!=e||e<0||e===1/0)&&(e=0);var i=(100*e).toFixed(2)+"%",n=t.el().style,r=this.vertical()?"height":"width";return n[r]!==i&&(n[r]=i),e}}},t.calculateDistance=function(e){var t=M(this.el_,e);return this.vertical()?t.y:t.x},t.handleKeyDown=function(e){At.isEventKey(e,"Left")||At.isEventKey(e,"Down")?(e.preventDefault(),e.stopPropagation(),this.stepBack()):At.isEventKey(e,"Right")||At.isEventKey(e,"Up")?(e.preventDefault(),e.stopPropagation(),this.stepForward()):n.prototype.handleKeyDown.call(this,e)},t.handleClick=function(e){e.stopPropagation(),e.preventDefault()},t.vertical=function(e){if(void 0===e)return this.vertical_||!1;this.vertical_=!!e,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal")},e}(xe);xe.registerComponent("Slider",Fr);var Hr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).partEls_=[],i.on(e,"progress",i.update),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Loaded")+'</span>: <span class="vjs-control-text-loaded-percentage">0%</span></span>'})},t.dispose=function(){this.partEls_=null,n.prototype.dispose.call(this)},t.update=function(e){function t(e,t,i){var n=e/t||0;return n=100*(1<=n?1:n),i&&(n=n.toFixed(2)),n+"%"}var i=this.player_.liveTracker,n=this.player_.buffered(),r=i&&i.isLive()?i.seekableEnd():this.player_.duration(),a=this.player_.bufferedEnd(),s=this.partEls_,o=this.$(".vjs-control-text-loaded-percentage");this.el_.style.width=t(a,r),T(o,t(a,r,!0));for(var u=0;u<n.length;u++){var l=n.start(u),c=n.end(u),h=s[u];h||(h=this.el_.appendChild(b()),s[u]=h),h.style.left=t(l,a),h.style.width=t(c-l,a)}for(var d=s.length;d>n.length;d--)this.el_.removeChild(s[d-1]);s.length=n.length},e}(xe);xe.registerComponent("LoadProgressBar",Hr);var Vr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).update=fe(pe(Me(i),i.update),30),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-time-tooltip"},{"aria-hidden":"true"})},t.update=function(e,t,i){var n=U(this.el_),r=U(this.player_.el()),a=e.width*t;if(r&&n){var s=e.left-r.left+a,o=e.width-a+(r.right-e.right),u=n.width/2;s<u?u+=u-s:o<u&&(u=o),u<0?u=0:u>n.width&&(u=n.width),this.el_.style.right="-"+u+"px",this.write(i)}},t.write=function(e){T(this.el_,e)},t.updateTime=function(r,a,s,o){var u=this;this.rafId_&&this.cancelAnimationFrame(this.rafId_),this.rafId_=this.requestAnimationFrame(function(){var e,t=u.player_.duration();if(u.player_.liveTracker&&u.player_.liveTracker.isLive()){var i=u.player_.liveTracker.liveWindow(),n=i-a*i;e=(n<1?"":"-")+xr(n,i)}else e=xr(s,t);u.update(r,a,e),o&&o()})},e}(xe);xe.registerComponent("TimeTooltip",Vr);var qr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).update=fe(pe(Me(i),i.update),30),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar"},{"aria-hidden":"true"})},t.update=function(e,t){var i=this.getChild("timeTooltip");if(i){var n=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();i.updateTime(e,t,n)}},e}(xe);qr.prototype.options_={children:[]},Ge||Ke||qr.prototype.options_.children.push("timeTooltip"),xe.registerComponent("PlayProgressBar",qr);var Wr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).update=fe(pe(Me(i),i.update),30),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},t.update=function(e,t){var i=this,n=t*this.player_.duration();this.getChild("timeTooltip").updateTime(e,t,n,function(){i.el_.style.left=e.width*t+"px"})},e}(xe);Wr.prototype.options_={children:["timeTooltip"]},xe.registerComponent("MouseTimeDisplay",Wr);var zr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).setEventHandlers_(),i}De(e,n);var t=e.prototype;return t.setEventHandlers_=function(){this.update=fe(pe(this,this.update),30),this.on(this.player_,"timeupdate",this.update),this.on(this.player_,"ended",this.handleEnded),this.on(this.player_,"durationchange",this.update),this.player_.liveTracker&&this.on(this.player_.liveTracker,"liveedgechange",this.update),this.updateInterval=null,this.on(this.player_,["playing"],this.enableInterval_),this.on(this.player_,["ended","pause","waiting"],this.disableInterval_),"hidden"in h&&"visibilityState"in h&&this.on(h,"visibilitychange",this.toggleVisibility_)},t.toggleVisibility_=function(e){h.hidden?this.disableInterval_(e):(this.enableInterval_(),this.requestAnimationFrame(this.update))},t.enableInterval_=function(){var e=this;this.clearInterval(this.updateInterval),this.updateInterval=this.setInterval(function(){e.requestAnimationFrame(e.update)},30)},t.disableInterval_=function(e){this.player_.liveTracker&&this.player_.liveTracker.isLive()&&"ended"!==e.type||this.clearInterval(this.updateInterval)},t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":this.localize("Progress Bar")})},t.update_=function(e,t){var i=this.player_.liveTracker,n=this.player_.duration();i&&i.isLive()&&(n=this.player_.liveTracker.liveCurrentTime()),this.el_.setAttribute("aria-valuenow",(100*t).toFixed(2)),this.el_.setAttribute("aria-valuetext",this.localize("progress bar timing: currentTime={1} duration={2}",[xr(e,n),xr(n,n)],"{1} of {2}")),this.bar&&this.bar.update(U(this.el_),t)},t.update=function(e){if(null!==this.el().offsetParent){var t=n.prototype.update.call(this);return this.update_(this.getCurrentTime_(),t),t}},t.getCurrentTime_=function(){return this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime()},t.handleEnded=function(e){this.update_(this.player_.duration(),1)},t.getPercent=function(){var e,t=this.getCurrentTime_(),i=this.player_.liveTracker;return i&&i.isLive()?(e=(t-i.seekableStart())/i.liveWindow(),i.atLiveEdge()&&(e=1)):e=t/this.player_.duration(),1<=e?1:e||0},t.handleMouseDown=function(e){V(e)&&(e.stopPropagation(),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause(),n.prototype.handleMouseDown.call(this,e))},t.handleMouseMove=function(e){if(V(e)){var t,i=this.calculateDistance(e),n=this.player_.liveTracker;if(n&&n.isLive()){var r=n.seekableStart(),a=n.liveCurrentTime();if(a<=(t=r+i*n.liveWindow())&&(t=a),t<=r&&(t=r+.1),t===1/0)return}else(t=i*this.player_.duration())===this.player_.duration()&&(t-=.1);this.player_.currentTime(t)}},t.enable=function(){n.prototype.enable.call(this);var e=this.getChild("mouseTimeDisplay");e&&e.show()},t.disable=function(){n.prototype.disable.call(this);var e=this.getChild("mouseTimeDisplay");e&&e.hide()},t.handleMouseUp=function(e){n.prototype.handleMouseUp.call(this,e),e&&e.stopPropagation(),this.player_.scrubbing(!1),this.player_.trigger({type:"timeupdate",target:this,manuallyTriggered:!0}),this.videoWasPlaying&&St(this.player_.play())},t.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},t.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},t.handleAction=function(e){this.player_.paused()?this.player_.play():this.player_.pause()},t.handleKeyDown=function(e){if(At.isEventKey(e,"Space")||At.isEventKey(e,"Enter"))e.preventDefault(),e.stopPropagation(),this.handleAction(e);else if(At.isEventKey(e,"Home"))e.preventDefault(),e.stopPropagation(),this.player_.currentTime(0);else if(At.isEventKey(e,"End"))e.preventDefault(),e.stopPropagation(),this.player_.currentTime(this.player_.duration());else if(/^[0-9]$/.test(At(e))){e.preventDefault(),e.stopPropagation();var t=10*(At.codes[At(e)]-At.codes[0])/100;this.player_.currentTime(this.player_.duration()*t)}else At.isEventKey(e,"PgDn")?(e.preventDefault(),e.stopPropagation(),this.player_.currentTime(this.player_.currentTime()-60)):At.isEventKey(e,"PgUp")?(e.preventDefault(),e.stopPropagation(),this.player_.currentTime(this.player_.currentTime()+60)):n.prototype.handleKeyDown.call(this,e)},e}(Fr);zr.prototype.options_={children:["loadProgressBar","playProgressBar"],barName:"playProgressBar"},Ge||Ke||zr.prototype.options_.children.splice(1,0,"mouseTimeDisplay"),xe.registerComponent("SeekBar",zr);var $r=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).handleMouseMove=fe(pe(Me(i),i.handleMouseMove),30),i.throttledHandleMouseSeek=fe(pe(Me(i),i.handleMouseSeek),30),i.enable(),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},t.handleMouseMove=function(e){var t=this.getChild("seekBar");if(t){var i=t.getChild("mouseTimeDisplay"),n=t.el(),r=U(n),a=M(n,e).x;1<a?a=1:a<0&&(a=0),i&&i.update(r,a)}},t.handleMouseSeek=function(e){var t=this.getChild("seekBar");t&&t.handleMouseMove(e)},t.enabled=function(){return this.enabled_},t.disable=function(){this.children().forEach(function(e){return e.disable&&e.disable()}),this.enabled()&&(this.off(["mousedown","touchstart"],this.handleMouseDown),this.off(this.el_,"mousemove",this.handleMouseMove),this.handleMouseUp(),this.addClass("disabled"),this.enabled_=!1)},t.enable=function(){this.children().forEach(function(e){return e.enable&&e.enable()}),this.enabled()||(this.on(["mousedown","touchstart"],this.handleMouseDown),this.on(this.el_,"mousemove",this.handleMouseMove),this.removeClass("disabled"),this.enabled_=!0)},t.handleMouseDown=function(e){var t=this.el_.ownerDocument,i=this.getChild("seekBar");i&&i.handleMouseDown(e),this.on(t,"mousemove",this.throttledHandleMouseSeek),this.on(t,"touchmove",this.throttledHandleMouseSeek),this.on(t,"mouseup",this.handleMouseUp),this.on(t,"touchend",this.handleMouseUp)},t.handleMouseUp=function(e){var t=this.el_.ownerDocument,i=this.getChild("seekBar");i&&i.handleMouseUp(e),this.off(t,"mousemove",this.throttledHandleMouseSeek),this.off(t,"touchmove",this.throttledHandleMouseSeek),this.off(t,"mouseup",this.handleMouseUp),this.off(t,"touchend",this.handleMouseUp)},e}(xe);$r.prototype.options_={children:["seekBar"]},xe.registerComponent("ProgressControl",$r);var Gr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on(e,["enterpictureinpicture","leavepictureinpicture"],i.handlePictureInPictureChange),h.pictureInPictureEnabled||i.disable(),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-picture-in-picture-control "+n.prototype.buildCSSClass.call(this)},t.handlePictureInPictureChange=function(e){this.player_.isInPictureInPicture()?this.controlText("Exit Picture-in-Picture"):this.controlText("Picture-in-Picture")},t.handleClick=function(e){this.player_.isInPictureInPicture()?this.player_.exitPictureInPicture():this.player_.requestPictureInPicture()},e}(wr);Gr.prototype.controlText_="Picture-in-Picture",xe.registerComponent("PictureInPictureToggle",Gr);var Xr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on(e,"fullscreenchange",i.handleFullscreenChange),!1===h[e.fsApi_.fullscreenEnabled]&&i.disable(),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-fullscreen-control "+n.prototype.buildCSSClass.call(this)},t.handleFullscreenChange=function(e){this.player_.isFullscreen()?this.controlText("Non-Fullscreen"):this.controlText("Fullscreen")},t.handleClick=function(e){this.player_.isFullscreen()?this.player_.exitFullscreen():this.player_.requestFullscreen()},e}(wr);Xr.prototype.controlText_="Fullscreen",xe.registerComponent("FullscreenToggle",Xr);var Kr=function(e){function t(){return e.apply(this,arguments)||this}return De(t,e),t.prototype.createEl=function(){return e.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})},t}(xe);xe.registerComponent("VolumeLevel",Kr);var Yr=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on("slideractive",i.updateLastVolume_),i.on(e,"volumechange",i.updateARIAAttributes),e.ready(function(){return i.updateARIAAttributes()}),i}De(e,n);var t=e.prototype;return t.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":this.localize("Volume Level"),"aria-live":"polite"})},t.handleMouseDown=function(e){V(e)&&n.prototype.handleMouseDown.call(this,e)},t.handleMouseMove=function(e){V(e)&&(this.checkMuted(),this.player_.volume(this.calculateDistance(e)))},t.checkMuted=function(){this.player_.muted()&&this.player_.muted(!1)},t.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},t.stepForward=function(){this.checkMuted(),this.player_.volume(this.player_.volume()+.1)},t.stepBack=function(){this.checkMuted(),this.player_.volume(this.player_.volume()-.1)},t.updateARIAAttributes=function(e){var t=this.player_.muted()?0:this.volumeAsPercentage_();this.el_.setAttribute("aria-valuenow",t),this.el_.setAttribute("aria-valuetext",t+"%")},t.volumeAsPercentage_=function(){return Math.round(100*this.player_.volume())},t.updateLastVolume_=function(){var e=this,t=this.player_.volume();this.one("sliderinactive",function(){0===e.player_.volume()&&e.player_.lastVolume_(t)})},e}(Fr);Yr.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},Yr.prototype.playerEvent="volumechange",xe.registerComponent("VolumeBar",Yr);var Qr=function(n){function e(e,t){var i;return void 0===t&&(t={}),t.vertical=t.vertical||!1,"undefined"!=typeof t.volumeBar&&!o(t.volumeBar)||(t.volumeBar=t.volumeBar||{},t.volumeBar.vertical=t.vertical),function(e,t){t.tech_&&!t.tech_.featuresVolumeControl&&e.addClass("vjs-hidden"),e.on(t,"loadstart",function(){t.tech_.featuresVolumeControl?e.removeClass("vjs-hidden"):e.addClass("vjs-hidden")})}(Me(i=n.call(this,e,t)||this),e),i.throttledHandleMouseMove=fe(pe(Me(i),i.handleMouseMove),30),i.on("mousedown",i.handleMouseDown),i.on("touchstart",i.handleMouseDown),i.on(i.volumeBar,["focus","slideractive"],function(){i.volumeBar.addClass("vjs-slider-active"),i.addClass("vjs-slider-active"),i.trigger("slideractive")}),i.on(i.volumeBar,["blur","sliderinactive"],function(){i.volumeBar.removeClass("vjs-slider-active"),i.removeClass("vjs-slider-active"),i.trigger("sliderinactive")}),i}De(e,n);var t=e.prototype;return t.createEl=function(){var e="vjs-volume-horizontal";return this.options_.vertical&&(e="vjs-volume-vertical"),n.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control "+e})},t.handleMouseDown=function(e){var t=this.el_.ownerDocument;this.on(t,"mousemove",this.throttledHandleMouseMove),this.on(t,"touchmove",this.throttledHandleMouseMove),this.on(t,"mouseup",this.handleMouseUp),this.on(t,"touchend",this.handleMouseUp)},t.handleMouseUp=function(e){var t=this.el_.ownerDocument;this.off(t,"mousemove",this.throttledHandleMouseMove),this.off(t,"touchmove",this.throttledHandleMouseMove),this.off(t,"mouseup",this.handleMouseUp),this.off(t,"touchend",this.handleMouseUp)},t.handleMouseMove=function(e){this.volumeBar.handleMouseMove(e)},e}(xe);Qr.prototype.options_={children:["volumeBar"]},xe.registerComponent("VolumeControl",Qr);var Jr=function(n){function e(e,t){var i;return function(e,t){t.tech_&&!t.tech_.featuresMuteControl&&e.addClass("vjs-hidden"),e.on(t,"loadstart",function(){t.tech_.featuresMuteControl?e.removeClass("vjs-hidden"):e.addClass("vjs-hidden")})}(Me(i=n.call(this,e,t)||this),e),i.on(e,["loadstart","volumechange"],i.update),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-mute-control "+n.prototype.buildCSSClass.call(this)},t.handleClick=function(e){var t=this.player_.volume(),i=this.player_.lastVolume_();if(0===t){var n=i<.1?.1:i;this.player_.volume(n),this.player_.muted(!1)}else this.player_.muted(!this.player_.muted())},t.update=function(e){this.updateIcon_(),this.updateControlText_()},t.updateIcon_=function(){var e=this.player_.volume(),t=3;Ge&&this.player_.tech_&&this.player_.tech_.el_&&this.player_.muted(this.player_.tech_.el_.muted),0===e||this.player_.muted()?t=0:e<.33?t=1:e<.67&&(t=2);for(var i=0;i<4;i++)E(this.el_,"vjs-vol-"+i);C(this.el_,"vjs-vol-"+t)},t.updateControlText_=function(){var e=this.player_.muted()||0===this.player_.volume()?"Unmute":"Mute";this.controlText()!==e&&this.controlText(e)},e}(wr);Jr.prototype.controlText_="Mute",xe.registerComponent("MuteToggle",Jr);var Zr=function(n){function e(e,t){var i;return void 0===t&&(t={}),"undefined"!=typeof t.inline?t.inline=t.inline:t.inline=!0,"undefined"!=typeof t.volumeControl&&!o(t.volumeControl)||(t.volumeControl=t.volumeControl||{},t.volumeControl.vertical=!t.inline),(i=n.call(this,e,t)||this).on(e,["loadstart"],i.volumePanelState_),i.on(i.muteToggle,"keyup",i.handleKeyPress),i.on(i.volumeControl,"keyup",i.handleVolumeControlKeyUp),i.on("keydown",i.handleKeyPress),i.on("mouseover",i.handleMouseOver),i.on("mouseout",i.handleMouseOut),i.on(i.volumeControl,["slideractive"],i.sliderActive_),i.on(i.volumeControl,["sliderinactive"],i.sliderInactive_),i}De(e,n);var t=e.prototype;return t.sliderActive_=function(){this.addClass("vjs-slider-active")},t.sliderInactive_=function(){this.removeClass("vjs-slider-active")},t.volumePanelState_=function(){this.volumeControl.hasClass("vjs-hidden")&&this.muteToggle.hasClass("vjs-hidden")&&this.addClass("vjs-hidden"),this.volumeControl.hasClass("vjs-hidden")&&!this.muteToggle.hasClass("vjs-hidden")&&this.addClass("vjs-mute-toggle-only")},t.createEl=function(){var e="vjs-volume-panel-horizontal";return this.options_.inline||(e="vjs-volume-panel-vertical"),n.prototype.createEl.call(this,"div",{className:"vjs-volume-panel vjs-control "+e})},t.dispose=function(){this.handleMouseOut(),n.prototype.dispose.call(this)},t.handleVolumeControlKeyUp=function(e){At.isEventKey(e,"Esc")&&this.muteToggle.focus()},t.handleMouseOver=function(e){this.addClass("vjs-hover"),ue(h,"keyup",pe(this,this.handleKeyPress))},t.handleMouseOut=function(e){this.removeClass("vjs-hover"),le(h,"keyup",pe(this,this.handleKeyPress))},t.handleKeyPress=function(e){At.isEventKey(e,"Esc")&&this.handleMouseOut()},e}(xe);Zr.prototype.options_={children:["muteToggle","volumeControl"]},xe.registerComponent("VolumePanel",Zr);var ea=function(n){function e(e,t){var i;return i=n.call(this,e,t)||this,t&&(i.menuButton_=t.menuButton),i.focusedChild_=-1,i.on("keydown",i.handleKeyDown),i.boundHandleBlur_=pe(Me(i),i.handleBlur),i.boundHandleTapClick_=pe(Me(i),i.handleTapClick),i}De(e,n);var t=e.prototype;return t.addEventListenerForItem=function(e){e instanceof xe&&(this.on(e,"blur",this.boundHandleBlur_),this.on(e,["tap","click"],this.boundHandleTapClick_))},t.removeEventListenerForItem=function(e){e instanceof xe&&(this.off(e,"blur",this.boundHandleBlur_),this.off(e,["tap","click"],this.boundHandleTapClick_))},t.removeChild=function(e){"string"==typeof e&&(e=this.getChild(e)),this.removeEventListenerForItem(e),n.prototype.removeChild.call(this,e)},t.addItem=function(e){var t=this.addChild(e);t&&this.addEventListenerForItem(t)},t.createEl=function(){var e=this.options_.contentElType||"ul";this.contentEl_=b(e,{className:"vjs-menu-content"}),this.contentEl_.setAttribute("role","menu");var t=n.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return t.appendChild(this.contentEl_),ue(t,"click",function(e){e.preventDefault(),e.stopImmediatePropagation()}),t},t.dispose=function(){this.contentEl_=null,this.boundHandleBlur_=null,this.boundHandleTapClick_=null,n.prototype.dispose.call(this)},t.handleBlur=function(e){var t=e.relatedTarget||h.activeElement;if(!this.children().some(function(e){return e.el()===t})){var i=this.menuButton_;i&&i.buttonPressed_&&t!==i.el().firstChild&&i.unpressButton()}},t.handleTapClick=function(t){if(this.menuButton_){this.menuButton_.unpressButton();var e=this.children();if(!Array.isArray(e))return;var i=e.filter(function(e){return e.el()===t.target})[0];if(!i)return;"CaptionSettingsMenuItem"!==i.name()&&this.menuButton_.focus()}},t.handleKeyDown=function(e){At.isEventKey(e,"Left")||At.isEventKey(e,"Down")?(e.preventDefault(),e.stopPropagation(),this.stepForward()):(At.isEventKey(e,"Right")||At.isEventKey(e,"Up"))&&(e.preventDefault(),e.stopPropagation(),this.stepBack())},t.stepForward=function(){var e=0;void 0!==this.focusedChild_&&(e=this.focusedChild_+1),this.focus(e)},t.stepBack=function(){var e=0;void 0!==this.focusedChild_&&(e=this.focusedChild_-1),this.focus(e)},t.focus=function(e){void 0===e&&(e=0);var t=this.children().slice();t.length&&t[0].className&&/vjs-menu-title/.test(t[0].className)&&t.shift(),0<t.length&&(e<0?e=0:e>=t.length&&(e=t.length-1),t[this.focusedChild_=e].el_.focus())},e}(xe);xe.registerComponent("Menu",ea);var ta=function(r){function e(e,t){var i;void 0===t&&(t={}),(i=r.call(this,e,t)||this).menuButton_=new wr(e,t),i.menuButton_.controlText(i.controlText_),i.menuButton_.el_.setAttribute("aria-haspopup","true");var n=wr.prototype.buildCSSClass();return i.menuButton_.el_.className=i.buildCSSClass()+" "+n,i.menuButton_.removeClass("vjs-control"),i.addChild(i.menuButton_),i.update(),i.enabled_=!0,i.on(i.menuButton_,"tap",i.handleClick),i.on(i.menuButton_,"click",i.handleClick),i.on(i.menuButton_,"keydown",i.handleKeyDown),i.on(i.menuButton_,"mouseenter",function(){i.addClass("vjs-hover"),i.menu.show(),ue(h,"keyup",pe(Me(i),i.handleMenuKeyUp))}),i.on("mouseleave",i.handleMouseLeave),i.on("keydown",i.handleSubmenuKeyDown),i}De(e,r);var t=e.prototype;return t.update=function(){var e=this.createMenu();this.menu&&(this.menu.dispose(),this.removeChild(this.menu)),this.menu=e,this.addChild(e),this.buttonPressed_=!1,this.menuButton_.el_.setAttribute("aria-expanded","false"),this.items&&this.items.length<=this.hideThreshold_?this.hide():this.show()},t.createMenu=function(){var e=new ea(this.player_,{menuButton:this});if(this.hideThreshold_=0,this.options_.title){var t=b("li",{className:"vjs-menu-title",innerHTML:Le(this.options_.title),tabIndex:-1});this.hideThreshold_+=1;var i=new xe(this.player_,{el:t});e.addItem(i)}if(this.items=this.createItems(),this.items)for(var n=0;n<this.items.length;n++)e.addItem(this.items[n]);return e},t.createItems=function(){},t.createEl=function(){return r.prototype.createEl.call(this,"div",{className:this.buildWrapperCSSClass()},{})},t.buildWrapperCSSClass=function(){var e="vjs-menu-button";return!0===this.options_.inline?e+="-inline":e+="-popup","vjs-menu-button "+e+" "+wr.prototype.buildCSSClass()+" "+r.prototype.buildCSSClass.call(this)},t.buildCSSClass=function(){var e="vjs-menu-button";return!0===this.options_.inline?e+="-inline":e+="-popup","vjs-menu-button "+e+" "+r.prototype.buildCSSClass.call(this)},t.controlText=function(e,t){return void 0===t&&(t=this.menuButton_.el()),this.menuButton_.controlText(e,t)},t.dispose=function(){this.handleMouseLeave(),r.prototype.dispose.call(this)},t.handleClick=function(e){this.buttonPressed_?this.unpressButton():this.pressButton()},t.handleMouseLeave=function(e){this.removeClass("vjs-hover"),le(h,"keyup",pe(this,this.handleMenuKeyUp))},t.focus=function(){this.menuButton_.focus()},t.blur=function(){this.menuButton_.blur()},t.handleKeyDown=function(e){At.isEventKey(e,"Esc")||At.isEventKey(e,"Tab")?(this.buttonPressed_&&this.unpressButton(),At.isEventKey(e,"Tab")||(e.preventDefault(),this.menuButton_.focus())):(At.isEventKey(e,"Up")||At.isEventKey(e,"Down"))&&(this.buttonPressed_||(e.preventDefault(),this.pressButton()))},t.handleMenuKeyUp=function(e){(At.isEventKey(e,"Esc")||At.isEventKey(e,"Tab"))&&this.removeClass("vjs-hover")},t.handleSubmenuKeyPress=function(e){this.handleSubmenuKeyDown(e)},t.handleSubmenuKeyDown=function(e){(At.isEventKey(e,"Esc")||At.isEventKey(e,"Tab"))&&(this.buttonPressed_&&this.unpressButton(),At.isEventKey(e,"Tab")||(e.preventDefault(),this.menuButton_.focus()))},t.pressButton=function(){if(this.enabled_){if(this.buttonPressed_=!0,this.menu.show(),this.menu.lockShowing(),this.menuButton_.el_.setAttribute("aria-expanded","true"),Ge&&y())return;this.menu.focus()}},t.unpressButton=function(){this.enabled_&&(this.buttonPressed_=!1,this.menu.unlockShowing(),this.menu.hide(),this.menuButton_.el_.setAttribute("aria-expanded","false"))},t.disable=function(){this.unpressButton(),this.enabled_=!1,this.addClass("vjs-disabled"),this.menuButton_.disable()},t.enable=function(){this.enabled_=!0,this.removeClass("vjs-disabled"),this.menuButton_.enable()},e}(xe);xe.registerComponent("MenuButton",ta);var ia=function(a){function e(e,t){var i,n=t.tracks;if((i=a.call(this,e,t)||this).items.length<=1&&i.hide(),!n)return Me(i);var r=pe(Me(i),i.update);return n.addEventListener("removetrack",r),n.addEventListener("addtrack",r),i.player_.on("ready",r),i.player_.on("dispose",function(){n.removeEventListener("removetrack",r),n.removeEventListener("addtrack",r)}),i}return De(e,a),e}(ta);xe.registerComponent("TrackButton",ia);var na=["Tab","Esc","Up","Down","Right","Left"],ra=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).selectable=t.selectable,i.isSelected_=t.selected||!1,i.multiSelectable=t.multiSelectable,i.selected(i.isSelected_),i.selectable?i.multiSelectable?i.el_.setAttribute("role","menuitemcheckbox"):i.el_.setAttribute("role","menuitemradio"):i.el_.setAttribute("role","menuitem"),i}De(e,n);var t=e.prototype;return t.createEl=function(e,t,i){return this.nonIconControl=!0,n.prototype.createEl.call(this,"li",m({className:"vjs-menu-item",innerHTML:'<span class="vjs-menu-item-text">'+this.localize(this.options_.label)+"</span>",tabIndex:-1},t),i)},t.handleKeyDown=function(t){na.some(function(e){return At.isEventKey(t,e)})||n.prototype.handleKeyDown.call(this,t)},t.handleClick=function(e){this.selected(!0)},t.selected=function(e){this.selectable&&(e?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-checked","true"),this.controlText(", selected"),this.isSelected_=!0):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-checked","false"),this.controlText(""),this.isSelected_=!1))},e}(vr);xe.registerComponent("MenuItem",ra);var aa=function(u){function e(e,t){var n,i=t.track,r=e.textTracks();t.label=i.label||i.language||"Unknown",t.selected="showing"===i.mode,(n=u.call(this,e,t)||this).track=i,n.kinds=(t.kinds||[t.kind||n.track.kind]).filter(Boolean);function a(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];n.handleTracksChange.apply(Me(n),t)}function s(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];n.handleSelectedLanguageChange.apply(Me(n),t)}var o;e.on(["loadstart","texttrackchange"],a),r.addEventListener("change",a),r.addEventListener("selectedlanguagechange",s),n.on("dispose",function(){e.off(["loadstart","texttrackchange"],a),r.removeEventListener("change",a),r.removeEventListener("selectedlanguagechange",s)}),void 0===r.onchange&&n.on(["tap","click"],function(){if("object"!=typeof v.Event)try{o=new v.Event("change")}catch(e){}o||(o=h.createEvent("Event")).initEvent("change",!0,!0),r.dispatchEvent(o)});return n.handleTracksChange(),n}De(e,u);var t=e.prototype;return t.handleClick=function(e){var t=this.track,i=this.player_.textTracks();if(u.prototype.handleClick.call(this,e),i)for(var n=0;n<i.length;n++){var r=i[n];-1!==this.kinds.indexOf(r.kind)&&(r===t?"showing"!==r.mode&&(r.mode="showing"):"disabled"!==r.mode&&(r.mode="disabled"))}},t.handleTracksChange=function(e){var t="showing"===this.track.mode;t!==this.isSelected_&&this.selected(t)},t.handleSelectedLanguageChange=function(e){if("showing"===this.track.mode){var t=this.player_.cache_.selectedLanguage;if(t&&t.enabled&&t.language===this.track.language&&t.kind!==this.track.kind)return;this.player_.cache_.selectedLanguage={enabled:!0,language:this.track.language,kind:this.track.kind}}},t.dispose=function(){this.track=null,u.prototype.dispose.call(this)},e}(ra);xe.registerComponent("TextTrackMenuItem",aa);var sa=function(i){function e(e,t){return t.track={player:e,kind:t.kind,kinds:t.kinds,default:!1,mode:"disabled"},t.kinds||(t.kinds=[t.kind]),t.label?t.track.label=t.label:t.track.label=t.kinds.join(" and ")+" off",t.selectable=!0,t.multiSelectable=!1,i.call(this,e,t)||this}De(e,i);var t=e.prototype;return t.handleTracksChange=function(e){for(var t=this.player().textTracks(),i=!0,n=0,r=t.length;n<r;n++){var a=t[n];if(-1<this.options_.kinds.indexOf(a.kind)&&"showing"===a.mode){i=!1;break}}i!==this.isSelected_&&this.selected(i)},t.handleSelectedLanguageChange=function(e){for(var t=this.player().textTracks(),i=!0,n=0,r=t.length;n<r;n++){var a=t[n];if(-1<["captions","descriptions","subtitles"].indexOf(a.kind)&&"showing"===a.mode){i=!1;break}}i&&(this.player_.cache_.selectedLanguage={enabled:!1})},e}(aa);xe.registerComponent("OffTextTrackMenuItem",sa);var oa=function(i){function e(e,t){return void 0===t&&(t={}),t.tracks=e.textTracks(),i.call(this,e,t)||this}return De(e,i),e.prototype.createItems=function(e,t){var i;void 0===e&&(e=[]),void 0===t&&(t=aa),this.label_&&(i=this.label_+" off"),e.push(new sa(this.player_,{kinds:this.kinds_,kind:this.kind_,label:i})),this.hideThreshold_+=1;var n=this.player_.textTracks();Array.isArray(this.kinds_)||(this.kinds_=[this.kind_]);for(var r=0;r<n.length;r++){var a=n[r];if(-1<this.kinds_.indexOf(a.kind)){var s=new t(this.player_,{track:a,kinds:this.kinds_,kind:this.kind_,selectable:!0,multiSelectable:!1});s.addClass("vjs-"+a.kind+"-menu-item"),e.push(s)}}return e},e}(ia);xe.registerComponent("TextTrackButton",oa);var ua=function(s){function e(e,t){var i,n=t.track,r=t.cue,a=e.currentTime();return t.selectable=!0,t.multiSelectable=!1,t.label=r.text,t.selected=r.startTime<=a&&a<r.endTime,(i=s.call(this,e,t)||this).track=n,i.cue=r,n.addEventListener("cuechange",pe(Me(i),i.update)),i}De(e,s);var t=e.prototype;return t.handleClick=function(e){s.prototype.handleClick.call(this),this.player_.currentTime(this.cue.startTime),this.update(this.cue.startTime)},t.update=function(e){var t=this.cue,i=this.player_.currentTime();this.selected(t.startTime<=i&&i<t.endTime)},e}(ra);xe.registerComponent("ChaptersTrackMenuItem",ua);var la=function(n){function e(e,t,i){return n.call(this,e,t,i)||this}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-chapters-button "+n.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-chapters-button "+n.prototype.buildWrapperCSSClass.call(this)},t.update=function(e){this.track_&&(!e||"addtrack"!==e.type&&"removetrack"!==e.type)||this.setTrack(this.findChaptersTrack()),n.prototype.update.call(this)},t.setTrack=function(e){if(this.track_!==e){if(this.updateHandler_||(this.updateHandler_=this.update.bind(this)),this.track_){var t=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);t&&t.removeEventListener("load",this.updateHandler_),this.track_=null}if(this.track_=e,this.track_){this.track_.mode="hidden";var i=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);i&&i.addEventListener("load",this.updateHandler_)}}},t.findChaptersTrack=function(){for(var e=this.player_.textTracks()||[],t=e.length-1;0<=t;t--){var i=e[t];if(i.kind===this.kind_)return i}},t.getMenuCaption=function(){return this.track_&&this.track_.label?this.track_.label:this.localize(Le(this.kind_))},t.createMenu=function(){return this.options_.title=this.getMenuCaption(),n.prototype.createMenu.call(this)},t.createItems=function(){var e=[];if(!this.track_)return e;var t=this.track_.cues;if(!t)return e;for(var i=0,n=t.length;i<n;i++){var r=t[i],a=new ua(this.player_,{track:this.track_,cue:r});e.push(a)}return e},e}(oa);la.prototype.kind_="chapters",la.prototype.controlText_="Chapters",xe.registerComponent("ChaptersButton",la);var ca=function(s){function e(e,t,i){var n;n=s.call(this,e,t,i)||this;var r=e.textTracks(),a=pe(Me(n),n.handleTracksChange);return r.addEventListener("change",a),n.on("dispose",function(){r.removeEventListener("change",a)}),n}De(e,s);var t=e.prototype;return t.handleTracksChange=function(e){for(var t=this.player().textTracks(),i=!1,n=0,r=t.length;n<r;n++){var a=t[n];if(a.kind!==this.kind_&&"showing"===a.mode){i=!0;break}}i?this.disable():this.enable()},t.buildCSSClass=function(){return"vjs-descriptions-button "+s.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-descriptions-button "+s.prototype.buildWrapperCSSClass.call(this)},e}(oa);ca.prototype.kind_="descriptions",ca.prototype.controlText_="Descriptions",xe.registerComponent("DescriptionsButton",ca);var ha=function(n){function e(e,t,i){return n.call(this,e,t,i)||this}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-subtitles-button "+n.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-subtitles-button "+n.prototype.buildWrapperCSSClass.call(this)},e}(oa);ha.prototype.kind_="subtitles",ha.prototype.controlText_="Subtitles",xe.registerComponent("SubtitlesButton",ha);var da=function(n){function e(e,t){var i;return t.track={player:e,kind:t.kind,label:t.kind+" settings",selectable:!1,default:!1,mode:"disabled"},t.selectable=!1,t.name="CaptionSettingsMenuItem",(i=n.call(this,e,t)||this).addClass("vjs-texttrack-settings"),i.controlText(", opens "+t.kind+" settings dialog"),i}return De(e,n),e.prototype.handleClick=function(e){this.player().getChild("textTrackSettings").open()},e}(aa);xe.registerComponent("CaptionSettingsMenuItem",da);var pa=function(n){function e(e,t,i){return n.call(this,e,t,i)||this}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-captions-button "+n.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-captions-button "+n.prototype.buildWrapperCSSClass.call(this)},t.createItems=function(){var e=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||!this.player().getChild("textTrackSettings")||(e.push(new da(this.player_,{kind:this.kind_})),this.hideThreshold_+=1),n.prototype.createItems.call(this,e)},e}(oa);pa.prototype.kind_="captions",pa.prototype.controlText_="Captions",xe.registerComponent("CaptionsButton",pa);var fa=function(r){function e(){return r.apply(this,arguments)||this}return De(e,r),e.prototype.createEl=function(e,t,i){var n='<span class="vjs-menu-item-text">'+this.localize(this.options_.label);return"captions"===this.options_.track.kind&&(n+='\n <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n <span class="vjs-control-text"> '+this.localize("Captions")+"</span>\n "),n+="</span>",r.prototype.createEl.call(this,e,m({innerHTML:n},t),i)},e}(aa);xe.registerComponent("SubsCapsMenuItem",fa);var ma=function(n){function e(e,t){var i;return void 0===t&&(t={}),(i=n.call(this,e,t)||this).label_="subtitles",-1<["en","en-us","en-ca","fr-ca"].indexOf(i.player_.language_)&&(i.label_="captions"),i.menuButton_.controlText(Le(i.label_)),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-subs-caps-button "+n.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-subs-caps-button "+n.prototype.buildWrapperCSSClass.call(this)},t.createItems=function(){var e=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||!this.player().getChild("textTrackSettings")||(e.push(new da(this.player_,{kind:this.label_})),this.hideThreshold_+=1),e=n.prototype.createItems.call(this,e,fa)},e}(oa);ma.prototype.kinds_=["captions","subtitles"],ma.prototype.controlText_="Subtitles",xe.registerComponent("SubsCapsButton",ma);var ga=function(s){function e(e,t){var n,i=t.track,r=e.audioTracks();t.label=i.label||i.language||"Unknown",t.selected=i.enabled,(n=s.call(this,e,t)||this).track=i,n.addClass("vjs-"+i.kind+"-menu-item");function a(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];n.handleTracksChange.apply(Me(n),t)}return r.addEventListener("change",a),n.on("dispose",function(){r.removeEventListener("change",a)}),n}De(e,s);var t=e.prototype;return t.createEl=function(e,t,i){var n='<span class="vjs-menu-item-text">'+this.localize(this.options_.label);return"main-desc"===this.options_.track.kind&&(n+='\n <span aria-hidden="true" class="vjs-icon-placeholder"></span>\n <span class="vjs-control-text"> '+this.localize("Descriptions")+"</span>\n "),n+="</span>",s.prototype.createEl.call(this,e,m({innerHTML:n},t),i)},t.handleClick=function(e){var t=this.player_.audioTracks();s.prototype.handleClick.call(this,e);for(var i=0;i<t.length;i++){var n=t[i];n.enabled=n===this.track}},t.handleTracksChange=function(e){this.selected(this.track.enabled)},e}(ra);xe.registerComponent("AudioTrackMenuItem",ga);var ya=function(i){function e(e,t){return void 0===t&&(t={}),t.tracks=e.audioTracks(),i.call(this,e,t)||this}De(e,i);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-audio-button "+i.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-audio-button "+i.prototype.buildWrapperCSSClass.call(this)},t.createItems=function(e){void 0===e&&(e=[]),this.hideThreshold_=1;for(var t=this.player_.audioTracks(),i=0;i<t.length;i++){var n=t[i];e.push(new ga(this.player_,{track:n,selectable:!0,multiSelectable:!1}))}return e},e}(ia);ya.prototype.controlText_="Audio Track",xe.registerComponent("AudioTrackButton",ya);var va=function(a){function e(e,t){var i,n=t.rate,r=parseFloat(n,10);return t.label=n,t.selected=1===r,t.selectable=!0,t.multiSelectable=!1,(i=a.call(this,e,t)||this).label=n,i.rate=r,i.on(e,"ratechange",i.update),i}De(e,a);var t=e.prototype;return t.handleClick=function(e){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},t.update=function(e){this.selected(this.player().playbackRate()===this.rate)},e}(ra);va.prototype.contentElType="button",xe.registerComponent("PlaybackRateMenuItem",va);var _a=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).updateVisibility(),i.updateLabel(),i.on(e,"loadstart",i.updateVisibility),i.on(e,"ratechange",i.updateLabel),i}De(e,n);var t=e.prototype;return t.createEl=function(){var e=n.prototype.createEl.call(this);return this.labelEl_=b("div",{className:"vjs-playback-rate-value",innerHTML:"1x"}),e.appendChild(this.labelEl_),e},t.dispose=function(){this.labelEl_=null,n.prototype.dispose.call(this)},t.buildCSSClass=function(){return"vjs-playback-rate "+n.prototype.buildCSSClass.call(this)},t.buildWrapperCSSClass=function(){return"vjs-playback-rate "+n.prototype.buildWrapperCSSClass.call(this)},t.createMenu=function(){var e=new ea(this.player()),t=this.playbackRates();if(t)for(var i=t.length-1;0<=i;i--)e.addChild(new va(this.player(),{rate:t[i]+"x"}));return e},t.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},t.handleClick=function(e){for(var t=this.player().playbackRate(),i=this.playbackRates(),n=i[0],r=0;r<i.length;r++)if(i[r]>t){n=i[r];break}this.player().playbackRate(n)},t.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},t.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&0<this.playbackRates().length},t.updateVisibility=function(e){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},t.updateLabel=function(e){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},e}(ta);_a.prototype.controlText_="Playback Rate",xe.registerComponent("PlaybackRateMenuButton",_a);var ba=function(e){function t(){return e.apply(this,arguments)||this}De(t,e);var i=t.prototype;return i.buildCSSClass=function(){return"vjs-spacer "+e.prototype.buildCSSClass.call(this)},i.createEl=function(){return e.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},t}(xe);xe.registerComponent("Spacer",ba);var Ta=function(t){function e(){return t.apply(this,arguments)||this}De(e,t);var i=e.prototype;return i.buildCSSClass=function(){return"vjs-custom-control-spacer "+t.prototype.buildCSSClass.call(this)},i.createEl=function(){var e=t.prototype.createEl.call(this,{className:this.buildCSSClass()});return e.innerHTML=" ",e},e}(ba);xe.registerComponent("CustomControlSpacer",Ta);var Sa=function(e){function t(){return e.apply(this,arguments)||this}return De(t,e),t.prototype.createEl=function(){return e.prototype.createEl.call(this,"div",{className:"vjs-control-bar",dir:"ltr"})},t}(xe);Sa.prototype.options_={children:["playToggle","volumePanel","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","seekToLive","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","descriptionsButton","subsCapsButton","audioTrackButton","fullscreenToggle"]},"exitPictureInPicture"in h&&Sa.prototype.options_.children.splice(Sa.prototype.options_.children.length-1,0,"pictureInPictureToggle"),xe.registerComponent("ControlBar",Sa);var ka=function(n){function e(e,t){var i;return(i=n.call(this,e,t)||this).on(e,"error",i.open),i}De(e,n);var t=e.prototype;return t.buildCSSClass=function(){return"vjs-error-display "+n.prototype.buildCSSClass.call(this)},t.content=function(){var e=this.player().error();return e?this.localize(e.message):""},e}(It);ka.prototype.options_=Oe(It.prototype.options_,{pauseOnOpen:!1,fillAlways:!0,temporary:!1,uncloseable:!0}),xe.registerComponent("ErrorDisplay",ka);var Ca="vjs-text-track-settings",Ea=["#000","Black"],wa=["#00F","Blue"],Aa=["#0FF","Cyan"],Pa=["#0F0","Green"],Ia=["#F0F","Magenta"],La=["#F00","Red"],Oa=["#FFF","White"],xa=["#FF0","Yellow"],Da=["1","Opaque"],Ua=["0.5","Semi-Transparent"],Ra=["0","Transparent"],Ma={backgroundColor:{selector:".vjs-bg-color > select",id:"captions-background-color-%s",label:"Color",options:[Ea,Oa,La,Pa,wa,xa,Ia,Aa]},backgroundOpacity:{selector:".vjs-bg-opacity > select",id:"captions-background-opacity-%s",label:"Transparency",options:[Da,Ua,Ra]},color:{selector:".vjs-fg-color > select",id:"captions-foreground-color-%s",label:"Color",options:[Oa,Ea,La,Pa,wa,xa,Ia,Aa]},edgeStyle:{selector:".vjs-edge-style > select",id:"%s",label:"Text Edge Style",options:[["none","None"],["raised","Raised"],["depressed","Depressed"],["uniform","Uniform"],["dropshadow","Dropshadow"]]},fontFamily:{selector:".vjs-font-family > select",id:"captions-font-family-%s",label:"Font Family",options:[["proportionalSansSerif","Proportional Sans-Serif"],["monospaceSansSerif","Monospace Sans-Serif"],["proportionalSerif","Proportional Serif"],["monospaceSerif","Monospace Serif"],["casual","Casual"],["script","Script"],["small-caps","Small Caps"]]},fontPercent:{selector:".vjs-font-percent > select",id:"captions-font-size-%s",label:"Font Size",options:[["0.50","50%"],["0.75","75%"],["1.00","100%"],["1.25","125%"],["1.50","150%"],["1.75","175%"],["2.00","200%"],["3.00","300%"],["4.00","400%"]],default:2,parser:function(e){return"1.00"===e?null:Number(e)}},textOpacity:{selector:".vjs-text-opacity > select",id:"captions-foreground-opacity-%s",label:"Transparency",options:[Da,Ua]},windowColor:{selector:".vjs-window-color > select",id:"captions-window-color-%s",label:"Color"},windowOpacity:{selector:".vjs-window-opacity > select",id:"captions-window-opacity-%s",label:"Transparency",options:[Ra,Ua,Da]}};function Na(e,t){if(t&&(e=t(e)),e&&"none"!==e)return e}Ma.windowColor.options=Ma.backgroundColor.options;var Ba=function(n){function e(e,t){var i;return t.temporary=!1,(i=n.call(this,e,t)||this).updateDisplay=pe(Me(i),i.updateDisplay),i.fill(),i.hasBeenOpened_=i.hasBeenFilled_=!0,i.endDialog=b("p",{className:"vjs-control-text",textContent:i.localize("End of dialog window.")}),i.el().appendChild(i.endDialog),i.setDefaults(),void 0===t.persistTextTrackSettings&&(i.options_.persistTextTrackSettings=i.options_.playerOptions.persistTextTrackSettings),i.on(i.$(".vjs-done-button"),"click",function(){i.saveSettings(),i.close()}),i.on(i.$(".vjs-default-button"),"click",function(){i.setDefaults(),i.updateDisplay()}),r(Ma,function(e){i.on(i.$(e.selector),"change",i.updateDisplay)}),i.options_.persistTextTrackSettings&&i.restoreSettings(),i}De(e,n);var t=e.prototype;return t.dispose=function(){this.endDialog=null,n.prototype.dispose.call(this)},t.createElSelect_=function(e,t,i){var n=this;void 0===t&&(t=""),void 0===i&&(i="label");var r=Ma[e],a=r.id.replace("%s",this.id_),s=[t,a].join(" ").trim();return["<"+i+' id="'+a+'" class="'+("label"===i?"vjs-label":"")+'">',this.localize(r.label),"</"+i+">",'<select aria-labelledby="'+s+'">'].concat(r.options.map(function(e){var t=a+"-"+e[1].replace(/\W+/g,"");return['<option id="'+t+'" value="'+e[0]+'" ','aria-labelledby="'+s+" "+t+'">',n.localize(e[1]),"</option>"].join("")})).concat("</select>").join("")},t.createElFgColor_=function(){var e="captions-text-legend-"+this.id_;return['<fieldset class="vjs-fg-color vjs-track-setting">','<legend id="'+e+'">',this.localize("Text"),"</legend>",this.createElSelect_("color",e),'<span class="vjs-text-opacity vjs-opacity">',this.createElSelect_("textOpacity",e),"</span>","</fieldset>"].join("")},t.createElBgColor_=function(){var e="captions-background-"+this.id_;return['<fieldset class="vjs-bg-color vjs-track-setting">','<legend id="'+e+'">',this.localize("Background"),"</legend>",this.createElSelect_("backgroundColor",e),'<span class="vjs-bg-opacity vjs-opacity">',this.createElSelect_("backgroundOpacity",e),"</span>","</fieldset>"].join("")},t.createElWinColor_=function(){var e="captions-window-"+this.id_;return['<fieldset class="vjs-window-color vjs-track-setting">','<legend id="'+e+'">',this.localize("Window"),"</legend>",this.createElSelect_("windowColor",e),'<span class="vjs-window-opacity vjs-opacity">',this.createElSelect_("windowOpacity",e),"</span>","</fieldset>"].join("")},t.createElColors_=function(){return b("div",{className:"vjs-track-settings-colors",innerHTML:[this.createElFgColor_(),this.createElBgColor_(),this.createElWinColor_()].join("")})},t.createElFont_=function(){return b("div",{className:"vjs-track-settings-font",innerHTML:['<fieldset class="vjs-font-percent vjs-track-setting">',this.createElSelect_("fontPercent","","legend"),"</fieldset>",'<fieldset class="vjs-edge-style vjs-track-setting">',this.createElSelect_("edgeStyle","","legend"),"</fieldset>",'<fieldset class="vjs-font-family vjs-track-setting">',this.createElSelect_("fontFamily","","legend"),"</fieldset>"].join("")})},t.createElControls_=function(){var e=this.localize("restore all settings to the default values");return b("div",{className:"vjs-track-settings-controls",innerHTML:['<button type="button" class="vjs-default-button" title="'+e+'">',this.localize("Reset"),'<span class="vjs-control-text"> '+e+"</span>","</button>",'<button type="button" class="vjs-done-button">'+this.localize("Done")+"</button>"].join("")})},t.content=function(){return[this.createElColors_(),this.createElFont_(),this.createElControls_()]},t.label=function(){return this.localize("Caption Settings Dialog")},t.description=function(){return this.localize("Beginning of dialog window. Escape will cancel and close the window.")},t.buildCSSClass=function(){return n.prototype.buildCSSClass.call(this)+" vjs-text-track-settings"},t.getValues=function(){var r=this;return function(i,n,e){return void 0===e&&(e=0),a(i).reduce(function(e,t){return n(e,i[t],t)},e)}(Ma,function(e,t,i){var n=function(e,t){return Na(e.options[e.options.selectedIndex].value,t)}(r.$(t.selector),t.parser);return void 0!==n&&(e[i]=n),e},{})},t.setValues=function(i){var n=this;r(Ma,function(e,t){!function(e,t,i){if(t)for(var n=0;n<e.options.length;n++)if(Na(e.options[n].value,i)===t){e.selectedIndex=n;break}}(n.$(e.selector),i[t],e.parser)})},t.setDefaults=function(){var i=this;r(Ma,function(e){var t=e.hasOwnProperty("default")?e.default:0;i.$(e.selector).selectedIndex=t})},t.restoreSettings=function(){var e;try{e=JSON.parse(v.localStorage.getItem(Ca))}catch(e){p.warn(e)}e&&this.setValues(e)},t.saveSettings=function(){if(this.options_.persistTextTrackSettings){var e=this.getValues();try{Object.keys(e).length?v.localStorage.setItem(Ca,JSON.stringify(e)):v.localStorage.removeItem(Ca)}catch(e){p.warn(e)}}},t.updateDisplay=function(){var e=this.player_.getChild("textTrackDisplay");e&&e.updateDisplay()},t.conditionalBlur_=function(){this.previouslyActiveEl_=null;var e=this.player_.controlBar,t=e&&e.subsCapsButton,i=e&&e.captionsButton;t?t.focus():i&&i.focus()},e}(It);xe.registerComponent("TextTrackSettings",Ba);var ja=function(a){function e(e,t){var i,n=t.ResizeObserver||v.ResizeObserver;null===t.ResizeObserver&&(n=!1);var r=Oe({createEl:!n,reportTouchActivity:!1},t);return(i=a.call(this,e,r)||this).ResizeObserver=t.ResizeObserver||v.ResizeObserver,i.loadListener_=null,i.resizeObserver_=null,i.debouncedHandler_=function(n,r,a,s){var o;void 0===s&&(s=v);function e(){var e=this,t=arguments,i=function(){i=o=null,a||n.apply(e,t)};!o&&a&&n.apply(e,t),s.clearTimeout(o),o=s.setTimeout(i,r)}return e.cancel=function(){s.clearTimeout(o),o=null},e}(function(){i.resizeHandler()},100,!1,Me(i)),n?(i.resizeObserver_=new i.ResizeObserver(i.debouncedHandler_),i.resizeObserver_.observe(e.el())):(i.loadListener_=function(){if(i.el_&&i.el_.contentWindow){var e=i.debouncedHandler_,t=i.unloadListener_=function(){le(this,"resize",e),le(this,"unload",t),t=null};ue(i.el_.contentWindow,"unload",t),ue(i.el_.contentWindow,"resize",e)}},i.one("load",i.loadListener_)),i}De(e,a);var t=e.prototype;return t.createEl=function(){return a.prototype.createEl.call(this,"iframe",{className:"vjs-resize-manager",tabIndex:-1},{"aria-hidden":"true"})},t.resizeHandler=function(){this.player_&&this.player_.trigger&&this.player_.trigger("playerresize")},t.dispose=function(){this.debouncedHandler_&&this.debouncedHandler_.cancel(),this.resizeObserver_&&(this.player_.el()&&this.resizeObserver_.unobserve(this.player_.el()),this.resizeObserver_.disconnect()),this.loadListener_&&this.off("load",this.loadListener_),this.el_&&this.el_.contentWindow&&this.unloadListener_&&this.unloadListener_.call(this.el_.contentWindow),this.ResizeObserver=null,this.resizeObserver=null,this.debouncedHandler_=null,this.loadListener_=null,a.prototype.dispose.call(this)},e}(xe);xe.registerComponent("ResizeManager",ja);var Fa=function(r){function e(e,t){var i,n=Oe({createEl:!1},t);return(i=r.call(this,e,n)||this).reset_(),i.on(i.player_,"durationchange",i.handleDurationchange),it&&"hidden"in h&&"visibilityState"in h&&i.on(h,"visibilitychange",i.handleVisibilityChange),i}De(e,r);var t=e.prototype;return t.handleVisibilityChange=function(){this.player_.duration()===1/0&&(h.hidden?this.stopTracking():this.startTracking())},t.isBehind_=function(){if(!this.timeupdateSeen_)return!1;var e=this.liveCurrentTime(),t=this.player_.currentTime(),i=2*this.seekableIncrement_+.07;return e!==1/0&&t<=e-i},t.trackLive_=function(){this.pastSeekEnd_=this.pastSeekEnd_;var e=this.player_.seekable();if(e&&e.length){var t=this.seekableEnd();t!==this.lastSeekEnd_&&(this.lastSeekEnd_&&(this.seekableIncrementList_=this.seekableIncrementList_.slice(-11),this.seekableIncrementList_.push(Math.abs(t-this.lastSeekEnd_)),3<this.seekableIncrementList_.length&&(this.seekableIncrement_=function(e){var t=Math.floor(e.length/2),i=[].concat(e).sort(function(e,t){return e-t});return e.length%2!=0?i[t]:(i[t-1]+i[t])/2}(this.seekableIncrementList_))),this.pastSeekEnd_=0,this.lastSeekEnd_=t,this.trigger("seekableendchange")),this.pastSeekEnd_=this.pastSeekEnd()+.03,this.isBehind_()!==this.behindLiveEdge()&&(this.behindLiveEdge_=this.isBehind_(),this.trigger("liveedgechange"))}},t.handleDurationchange=function(){this.player_.duration()===1/0?this.startTracking():this.stopTracking()},t.startTracking=function(){var e=this;this.isTracking()||(this.timeupdateSeen_||(this.timeupdateSeen_=this.player_.hasStarted()),this.trackingInterval_=this.setInterval(this.trackLive_,30),this.trackLive_(),this.on(this.player_,"play",this.trackLive_),this.on(this.player_,"pause",this.trackLive_),this.timeupdateSeen_||(this.one(this.player_,"play",this.handlePlay),this.handleTimeupdate=function(){e.timeupdateSeen_=!0,e.handleTimeupdate=null},this.one(this.player_,"timeupdate",this.handleTimeupdate)))},t.handlePlay=function(){this.one(this.player_,"timeupdate",this.seekToLiveEdge)},t.reset_=function(){this.pastSeekEnd_=0,this.lastSeekEnd_=null,this.behindLiveEdge_=null,this.timeupdateSeen_=!1,this.clearInterval(this.trackingInterval_),this.trackingInterval_=null,this.seekableIncrement_=12,this.seekableIncrementList_=[],this.off(this.player_,"play",this.trackLive_),this.off(this.player_,"pause",this.trackLive_),this.off(this.player_,"play",this.handlePlay),this.off(this.player_,"timeupdate",this.seekToLiveEdge),this.handleTimeupdate&&(this.off(this.player_,"timeupdate",this.handleTimeupdate),this.handleTimeupdate=null)},t.stopTracking=function(){this.isTracking()&&this.reset_()},t.seekableEnd=function(){for(var e=this.player_.seekable(),t=[],i=e?e.length:0;i--;)t.push(e.end(i));return t.length?t.sort()[t.length-1]:1/0},t.seekableStart=function(){for(var e=this.player_.seekable(),t=[],i=e?e.length:0;i--;)t.push(e.start(i));return t.length?t.sort()[0]:0},t.liveWindow=function(){var e=this.liveCurrentTime();return e===1/0?1/0:e-this.seekableStart()},t.isLive=function(){return this.isTracking()},t.atLiveEdge=function(){return!this.behindLiveEdge()},t.liveCurrentTime=function(){return this.pastSeekEnd()+this.seekableEnd()},t.pastSeekEnd=function(){return this.pastSeekEnd_},t.behindLiveEdge=function(){return this.behindLiveEdge_},t.isTracking=function(){return"number"==typeof this.trackingInterval_},t.seekToLiveEdge=function(){this.atLiveEdge()||(this.player_.currentTime(this.liveCurrentTime()),this.player_.paused()&&this.player_.play())},t.dispose=function(){this.stopTracking(),r.prototype.dispose.call(this)},e}(xe);xe.registerComponent("LiveTracker",Fa);function Ha(e){var t=e.el();if(t.hasAttribute("src"))return e.triggerSourceset(t.src),!0;var i=e.$$("source"),n=[],r="";if(!i.length)return!1;for(var a=0;a<i.length;a++){var s=i[a].src;s&&-1===n.indexOf(s)&&n.push(s)}return!!n.length&&(1===n.length&&(r=n[0]),e.triggerSourceset(r),!0)}function Va(e,t){for(var i={},n=0;n<e.length&&!((i=Object.getOwnPropertyDescriptor(e[n],t))&&i.set&&i.get);n++);return i.enumerable=!0,i.configurable=!0,i}function qa(a){var s=a.el();if(!s.resetSourceWatch_){function t(r){return function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=r.apply(s,t);return Ha(a),n}}var i={},e=function(e){return Va([e.el(),v.HTMLMediaElement.prototype,v.Element.prototype,za],"innerHTML")}(a);["append","appendChild","insertAdjacentHTML"].forEach(function(e){s[e]&&(i[e]=s[e],s[e]=t(i[e]))}),Object.defineProperty(s,"innerHTML",Oe(e,{set:t(e.set)})),s.resetSourceWatch_=function(){s.resetSourceWatch_=null,Object.keys(i).forEach(function(e){s[e]=i[e]}),Object.defineProperty(s,"innerHTML",e)},a.one("sourceset",s.resetSourceWatch_)}}function Wa(n){if(n.featuresSourceset){var r=n.el();if(!r.resetSourceset_){var i=function(e){return Va([e.el(),v.HTMLMediaElement.prototype,$a],"src")}(n),a=r.setAttribute,t=r.load;Object.defineProperty(r,"src",Oe(i,{set:function(e){var t=i.set.call(r,e);return n.triggerSourceset(r.src),t}})),r.setAttribute=function(e,t){var i=a.call(r,e,t);return/src/i.test(e)&&n.triggerSourceset(r.src),i},r.load=function(){var e=t.call(r);return Ha(n)||(n.triggerSourceset(""),qa(n)),e},r.currentSrc?n.triggerSourceset(r.currentSrc):Ha(n)||qa(n),r.resetSourceset_=function(){r.resetSourceset_=null,r.load=t,r.setAttribute=a,Object.defineProperty(r,"src",i),r.resetSourceWatch_&&r.resetSourceWatch_()}}}}var za=Object.defineProperty({},"innerHTML",{get:function(){return this.cloneNode(!0).innerHTML},set:function(e){var t=h.createElement(this.nodeName.toLowerCase());t.innerHTML=e;for(var i=h.createDocumentFragment();t.childNodes.length;)i.appendChild(t.childNodes[0]);return this.innerText="",v.Element.prototype.appendChild.call(this,i),this.innerHTML}}),$a=Object.defineProperty({},"src",{get:function(){return this.hasAttribute("src")?Rt(v.Element.prototype.getAttribute.call(this,"src")):""},set:function(e){return v.Element.prototype.setAttribute.call(this,"src",e),e}}),Ga=function(c){function o(e,t){var i;i=c.call(this,e,t)||this;var n=e.source,r=!1;if(n&&(i.el_.currentSrc!==n.src||e.tag&&3===e.tag.initNetworkState_)?i.setSource(n):i.handleLateInit_(i.el_),e.enableSourceset&&i.setupSourcesetHandling_(),i.el_.hasChildNodes()){for(var a=i.el_.childNodes,s=a.length,o=[];s--;){var u=a[s];"track"===u.nodeName.toLowerCase()&&(i.featuresNativeTextTracks?(i.remoteTextTrackEls().addTrackElement_(u),i.remoteTextTracks().addTrack(u.track),i.textTracks().addTrack(u.track),r||i.el_.hasAttribute("crossorigin")||!Nt(u.src)||(r=!0)):o.push(u))}for(var l=0;l<o.length;l++)i.el_.removeChild(o[l])}return i.proxyNativeTracks_(),i.featuresNativeTextTracks&&r&&p.warn("Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\nThis may prevent text tracks from loading."),i.restoreMetadataTracksInIOSNativePlayer_(),(st||ze||Qe)&&!0===e.nativeControlsForTouch&&i.setControls(!0),i.proxyWebkitFullscreen_(),i.triggerReady(),i}De(o,c);var e=o.prototype;return e.dispose=function(){this.el_&&this.el_.resetSourceset_&&this.el_.resetSourceset_(),o.disposeMediaElement(this.el_),this.options_=null,c.prototype.dispose.call(this)},e.setupSourcesetHandling_=function(){Wa(this)},e.restoreMetadataTracksInIOSNativePlayer_=function(){function e(){i=[];for(var e=0;e<n.length;e++){var t=n[e];"metadata"===t.kind&&i.push({track:t,storedMode:t.mode})}}var i,n=this.textTracks();e(),n.addEventListener("change",e),this.on("dispose",function(){return n.removeEventListener("change",e)});function r(){for(var e=0;e<i.length;e++){var t=i[e];"disabled"===t.track.mode&&t.track.mode!==t.storedMode&&(t.track.mode=t.storedMode)}n.removeEventListener("change",r)}this.on("webkitbeginfullscreen",function(){n.removeEventListener("change",e),n.removeEventListener("change",r),n.addEventListener("change",r)}),this.on("webkitendfullscreen",function(){n.removeEventListener("change",e),n.addEventListener("change",e),n.removeEventListener("change",r)})},e.overrideNative_=function(e,t){var i=this;if(t===this["featuresNative"+e+"Tracks"]){var n=e.toLowerCase();this[n+"TracksListeners_"]&&Object.keys(this[n+"TracksListeners_"]).forEach(function(e){i.el()[n+"Tracks"].removeEventListener(e,i[n+"TracksListeners_"][e])}),this["featuresNative"+e+"Tracks"]=!t,this[n+"TracksListeners_"]=null,this.proxyNativeTracksForType_(n)}},e.overrideNativeAudioTracks=function(e){this.overrideNative_("Audio",e)},e.overrideNativeVideoTracks=function(e){this.overrideNative_("Video",e)},e.proxyNativeTracksForType_=function(e){var n=this,t=En[e],r=this.el()[t.getterName],a=this[t.getterName]();if(this["featuresNative"+t.capitalName+"Tracks"]&&r&&r.addEventListener){function i(){for(var e=[],t=0;t<a.length;t++){for(var i=!1,n=0;n<r.length;n++)if(r[n]===a[t]){i=!0;break}i||e.push(a[t])}for(;e.length;)a.removeTrack(e.shift())}var s={change:function(e){a.trigger({type:"change",target:a,currentTarget:a,srcElement:a})},addtrack:function(e){a.addTrack(e.track)},removetrack:function(e){a.removeTrack(e.track)}};this[t.getterName+"Listeners_"]=s,Object.keys(s).forEach(function(t){var i=s[t];r.addEventListener(t,i),n.on("dispose",function(e){return r.removeEventListener(t,i)})}),this.on("loadstart",i),this.on("dispose",function(e){return n.off("loadstart",i)})}},e.proxyNativeTracks_=function(){var t=this;En.names.forEach(function(e){t.proxyNativeTracksForType_(e)})},e.createEl=function(){var e=this.options_.tag;if(!e||!this.options_.playerElIngest&&!this.movingMediaElementInDOM){if(e){var t=e.cloneNode(!0);e.parentNode&&e.parentNode.insertBefore(t,e),o.disposeMediaElement(e),e=t}else{e=h.createElement("video");var i=Oe({},this.options_.tag&&P(this.options_.tag));st&&!0===this.options_.nativeControlsForTouch||delete i.controls,A(e,m(i,{id:this.options_.techId,class:"vjs-tech"}))}e.playerId=this.options_.playerId}"undefined"!=typeof this.options_.preload&&L(e,"preload",this.options_.preload);for(var n=["loop","muted","playsinline","autoplay"],r=0;r<n.length;r++){var a=n[r],s=this.options_[a];"undefined"!=typeof s&&(s?L(e,a,a):O(e,a),e[a]=s)}return e},e.handleLateInit_=function(e){if(0!==e.networkState&&3!==e.networkState){if(0===e.readyState){function t(){i=!0}var i=!1;this.on("loadstart",t);function n(){i||this.trigger("loadstart")}return this.on("loadedmetadata",n),void this.ready(function(){this.off("loadstart",t),this.off("loadedmetadata",n),i||this.trigger("loadstart")})}var r=["loadstart"];r.push("loadedmetadata"),2<=e.readyState&&r.push("loadeddata"),3<=e.readyState&&r.push("canplay"),4<=e.readyState&&r.push("canplaythrough"),this.ready(function(){r.forEach(function(e){this.trigger(e)},this)})}},e.setCurrentTime=function(e){try{this.el_.currentTime=e}catch(e){p(e,"Video is not ready. (Video.js)")}},e.duration=function(){var t=this;if(this.el_.duration===1/0&&Ke&&et&&0===this.el_.currentTime){return this.on("timeupdate",function e(){0<t.el_.currentTime&&(t.el_.duration===1/0&&t.trigger("durationchange"),t.off("timeupdate",e))}),NaN}return this.el_.duration||NaN},e.width=function(){return this.el_.offsetWidth},e.height=function(){return this.el_.offsetHeight},e.proxyWebkitFullscreen_=function(){var e=this;if("webkitDisplayingFullscreen"in this.el_){function t(){this.trigger("fullscreenchange",{isFullscreen:!1})}function i(){"webkitPresentationMode"in this.el_&&"picture-in-picture"!==this.el_.webkitPresentationMode&&(this.one("webkitendfullscreen",t),this.trigger("fullscreenchange",{isFullscreen:!0}))}this.on("webkitbeginfullscreen",i),this.on("dispose",function(){e.off("webkitbeginfullscreen",i),e.off("webkitendfullscreen",t)})}},e.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var e=v.navigator&&v.navigator.userAgent||"";if(/Android/.test(e)||!/Chrome|Mac OS X 10.5/.test(e))return!0}return!1},e.enterFullScreen=function(){var e=this.el_;e.paused&&e.networkState<=e.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){e.pause(),e.webkitEnterFullScreen()},0)):e.webkitEnterFullScreen()},e.exitFullScreen=function(){this.el_.webkitExitFullScreen()},e.requestPictureInPicture=function(){return this.el_.requestPictureInPicture()},e.src=function(e){if(void 0===e)return this.el_.src;this.setSrc(e)},e.reset=function(){o.resetMediaElement(this.el_)},e.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc},e.setControls=function(e){this.el_.controls=!!e},e.addTextTrack=function(e,t,i){return this.featuresNativeTextTracks?this.el_.addTextTrack(e,t,i):c.prototype.addTextTrack.call(this,e,t,i)},e.createRemoteTextTrack=function(e){if(!this.featuresNativeTextTracks)return c.prototype.createRemoteTextTrack.call(this,e);var t=h.createElement("track");return e.kind&&(t.kind=e.kind),e.label&&(t.label=e.label),(e.language||e.srclang)&&(t.srclang=e.language||e.srclang),e.default&&(t.default=e.default),e.id&&(t.id=e.id),e.src&&(t.src=e.src),t},e.addRemoteTextTrack=function(e,t){var i=c.prototype.addRemoteTextTrack.call(this,e,t);return this.featuresNativeTextTracks&&this.el().appendChild(i),i},e.removeRemoteTextTrack=function(e){if(c.prototype.removeRemoteTextTrack.call(this,e),this.featuresNativeTextTracks)for(var t=this.$$("track"),i=t.length;i--;)e!==t[i]&&e!==t[i].track||this.el().removeChild(t[i])},e.getVideoPlaybackQuality=function(){if("function"==typeof this.el().getVideoPlaybackQuality)return this.el().getVideoPlaybackQuality();var e={};return"undefined"!=typeof this.el().webkitDroppedFrameCount&&"undefined"!=typeof this.el().webkitDecodedFrameCount&&(e.droppedVideoFrames=this.el().webkitDroppedFrameCount,e.totalVideoFrames=this.el().webkitDecodedFrameCount),v.performance&&"function"==typeof v.performance.now?e.creationTime=v.performance.now():v.performance&&v.performance.timing&&"number"==typeof v.performance.timing.navigationStart&&(e.creationTime=v.Date.now()-v.performance.timing.navigationStart),e},o}(nr);if(c()){Ga.TEST_VID=h.createElement("video");var Xa=h.createElement("track");Xa.kind="captions",Xa.srclang="en",Xa.label="English",Ga.TEST_VID.appendChild(Xa)}Ga.isSupported=function(){try{Ga.TEST_VID.volume=.5}catch(e){return!1}return!(!Ga.TEST_VID||!Ga.TEST_VID.canPlayType)},Ga.canPlayType=function(e){return Ga.TEST_VID.canPlayType(e)},Ga.canPlaySource=function(e,t){return Ga.canPlayType(e.type)},Ga.canControlVolume=function(){try{var e=Ga.TEST_VID.volume;return Ga.TEST_VID.volume=e/2+.1,e!==Ga.TEST_VID.volume}catch(e){return!1}},Ga.canMuteVolume=function(){try{var e=Ga.TEST_VID.muted;return Ga.TEST_VID.muted=!e,Ga.TEST_VID.muted?L(Ga.TEST_VID,"muted","muted"):O(Ga.TEST_VID,"muted"),e!==Ga.TEST_VID.muted}catch(e){return!1}},Ga.canControlPlaybackRate=function(){if(Ke&&et&&tt<58)return!1;try{var e=Ga.TEST_VID.playbackRate;return Ga.TEST_VID.playbackRate=e/2+.1,e!==Ga.TEST_VID.playbackRate}catch(e){return!1}},Ga.canOverrideAttributes=function(){try{function e(){}Object.defineProperty(h.createElement("video"),"src",{get:e,set:e}),Object.defineProperty(h.createElement("audio"),"src",{get:e,set:e}),Object.defineProperty(h.createElement("video"),"innerHTML",{get:e,set:e}),Object.defineProperty(h.createElement("audio"),"innerHTML",{get:e,set:e})}catch(e){return!1}return!0},Ga.supportsNativeTextTracks=function(){return rt||Ge&&et},Ga.supportsNativeVideoTracks=function(){return!(!Ga.TEST_VID||!Ga.TEST_VID.videoTracks)},Ga.supportsNativeAudioTracks=function(){return!(!Ga.TEST_VID||!Ga.TEST_VID.audioTracks)},Ga.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","resize","volumechange"],Ga.prototype.featuresVolumeControl=Ga.canControlVolume(),Ga.prototype.featuresMuteControl=Ga.canMuteVolume(),Ga.prototype.featuresPlaybackRate=Ga.canControlPlaybackRate(),Ga.prototype.featuresSourceset=Ga.canOverrideAttributes(),Ga.prototype.movingMediaElementInDOM=!Ge,Ga.prototype.featuresFullscreenResize=!0,Ga.prototype.featuresProgressEvents=!0,Ga.prototype.featuresTimeupdateEvents=!0,Ga.prototype.featuresNativeTextTracks=Ga.supportsNativeTextTracks(),Ga.prototype.featuresNativeVideoTracks=Ga.supportsNativeVideoTracks(),Ga.prototype.featuresNativeAudioTracks=Ga.supportsNativeAudioTracks();var Ka=Ga.TEST_VID&&Ga.TEST_VID.constructor.prototype.canPlayType,Ya=/^application\/(?:x-|vnd\.apple\.)mpegurl/i;Ga.patchCanPlayType=function(){4<=Ye&&!Je&&!et&&(Ga.TEST_VID.constructor.prototype.canPlayType=function(e){return e&&Ya.test(e)?"maybe":Ka.call(this,e)})},Ga.unpatchCanPlayType=function(){var e=Ga.TEST_VID.constructor.prototype.canPlayType;return Ga.TEST_VID.constructor.prototype.canPlayType=Ka,e},Ga.patchCanPlayType(),Ga.disposeMediaElement=function(e){if(e){for(e.parentNode&&e.parentNode.removeChild(e);e.hasChildNodes();)e.removeChild(e.firstChild);e.removeAttribute("src"),"function"==typeof e.load&&function(){try{e.load()}catch(e){}}()}},Ga.resetMediaElement=function(e){if(e){for(var t=e.querySelectorAll("source"),i=t.length;i--;)e.removeChild(t[i]);e.removeAttribute("src"),"function"==typeof e.load&&function(){try{e.load()}catch(e){}}()}},["muted","defaultMuted","autoplay","controls","loop","playsinline"].forEach(function(e){Ga.prototype[e]=function(){return this.el_[e]||this.el_.hasAttribute(e)}}),["muted","defaultMuted","autoplay","loop","playsinline"].forEach(function(t){Ga.prototype["set"+Le(t)]=function(e){(this.el_[t]=e)?this.el_.setAttribute(t,t):this.el_.removeAttribute(t)}}),["paused","currentTime","buffered","volume","poster","preload","error","seeking","seekable","ended","playbackRate","defaultPlaybackRate","played","networkState","readyState","videoWidth","videoHeight"].forEach(function(e){Ga.prototype[e]=function(){return this.el_[e]}}),["volume","src","poster","preload","playbackRate","defaultPlaybackRate"].forEach(function(t){Ga.prototype["set"+Le(t)]=function(e){this.el_[t]=e}}),["pause","load","play"].forEach(function(e){Ga.prototype[e]=function(){return this.el_[e]()}}),nr.withSourceHandlers(Ga),Ga.nativeSourceHandler={},Ga.nativeSourceHandler.canPlayType=function(e){try{return Ga.TEST_VID.canPlayType(e)}catch(e){return""}},Ga.nativeSourceHandler.canHandleSource=function(e,t){if(e.type)return Ga.nativeSourceHandler.canPlayType(e.type);if(e.src){var i=Mt(e.src);return Ga.nativeSourceHandler.canPlayType("video/"+i)}return""},Ga.nativeSourceHandler.handleSource=function(e,t,i){t.setSrc(e.src)},Ga.nativeSourceHandler.dispose=function(){},Ga.registerSourceHandler(Ga.nativeSourceHandler),nr.registerTech("Html5",Ga);var Qa=["progress","abort","suspend","emptied","stalled","loadedmetadata","loadeddata","timeupdate","resize","volumechange","texttrackchange"],Ja={canplay:"CanPlay",canplaythrough:"CanPlayThrough",playing:"Playing",seeked:"Seeked"},Za=["tiny","xsmall","small","medium","large","xlarge","huge"],es={};Za.forEach(function(e){var t="x"===e.charAt(0)?"x-"+e.substring(1):e;es[e]="vjs-layout-"+t});var ts={tiny:210,xsmall:320,small:425,medium:768,large:1440,xlarge:2560,huge:1/0},is=function(c){function l(e,t,i){var n;if(e.id=e.id||t.id||"vjs_video_"+te(),(t=m(l.getTagSettings(e),t)).initChildren=!1,t.createEl=!1,t.evented=!1,t.reportTouchActivity=!1,!t.language)if("function"==typeof e.closest){var r=e.closest("[lang]");r&&r.getAttribute&&(t.language=r.getAttribute("lang"))}else for(var a=e;a&&1===a.nodeType;){if(P(a).hasOwnProperty("lang")){t.language=a.getAttribute("lang");break}a=a.parentNode}if((n=c.call(this,null,t,i)||this).boundDocumentFullscreenChange_=pe(Me(n),n.documentFullscreenChange_),n.boundFullWindowOnEscKey_=pe(Me(n),n.fullWindowOnEscKey),n.log=f(n.id_),n.fsApi_=pt,n.isPosterFromTech_=!1,n.queuedCallbacks_=[],n.isReady_=!1,n.hasStarted_=!1,n.userActive_=!1,!n.options_||!n.options_.techOrder||!n.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");if(n.tag=e,n.tagAttributes=e&&P(e),n.language(n.options_.language),t.languages){var s={};Object.getOwnPropertyNames(t.languages).forEach(function(e){s[e.toLowerCase()]=t.languages[e]}),n.languages_=s}else n.languages_=l.prototype.options_.languages;n.resetCache_(),n.poster_=t.poster||"",n.controls_=!!t.controls,e.controls=!1,e.removeAttribute("controls"),n.changingSrc_=!1,n.playCallbacks_=[],n.playTerminatedQueue_=[],e.hasAttribute("autoplay")?n.autoplay(!0):n.autoplay(n.options_.autoplay),t.plugins&&Object.keys(t.plugins).forEach(function(e){if("function"!=typeof n[e])throw new Error('plugin "'+e+'" does not exist')}),n.scrubbing_=!1,n.el_=n.createEl(),we(Me(n),{eventBusKey:"el_"}),n.fluid_&&n.on("playerreset",n.updateStyleEl_);var o=Oe(n.options_);t.plugins&&Object.keys(t.plugins).forEach(function(e){n[e](t.plugins[e])}),n.options_.playerOptions=o,n.middleware_=[],n.initChildren(),n.isAudio("audio"===e.nodeName.toLowerCase()),n.controls()?n.addClass("vjs-controls-enabled"):n.addClass("vjs-controls-disabled"),n.el_.setAttribute("role","region"),n.isAudio()?n.el_.setAttribute("aria-label",n.localize("Audio Player")):n.el_.setAttribute("aria-label",n.localize("Video Player")),n.isAudio()&&n.addClass("vjs-audio"),n.flexNotSupported_()&&n.addClass("vjs-no-flex"),st&&n.addClass("vjs-touch-enabled"),Ge||n.addClass("vjs-workinghover"),l.players[n.id_]=Me(n);var u=d.split(".")[0];return n.addClass("vjs-v"+u),n.userActive(!0),n.reportUserActivity(),n.one("play",n.listenForUserActivity_),n.on("stageclick",n.handleStageClick_),n.on("keydown",n.handleKeyDown),n.breakpoints(n.options_.breakpoints),n.responsive(n.options_.responsive),n}De(l,c);var e=l.prototype;return e.dispose=function(){var n=this;this.trigger("dispose"),this.off("dispose"),le(h,this.fsApi_.fullscreenchange,this.boundDocumentFullscreenChange_),le(h,"keydown",this.boundFullWindowOnEscKey_),this.styleEl_&&this.styleEl_.parentNode&&(this.styleEl_.parentNode.removeChild(this.styleEl_),this.styleEl_=null),l.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&(this.tech_.dispose(),this.isPosterFromTech_=!1,this.poster_=""),this.playerElIngest_&&(this.playerElIngest_=null),this.tag&&(this.tag=null),function(e){ar[e.id()]=null}(this),An.names.forEach(function(e){var t=An[e],i=n[t.getterName]();i&&i.off&&i.off()}),c.prototype.dispose.call(this)},e.createEl=function(){var t,i=this.tag,e=this.playerElIngest_=i.parentNode&&i.parentNode.hasAttribute&&i.parentNode.hasAttribute("data-vjs-player"),n="video-js"===this.tag.tagName.toLowerCase();e?t=this.el_=i.parentNode:n||(t=this.el_=c.prototype.createEl.call(this,"div"));var r=P(i);if(n){for(t=this.el_=i,i=this.tag=h.createElement("video");t.children.length;)i.appendChild(t.firstChild);k(t,"video-js")||C(t,"video-js"),t.appendChild(i),e=this.playerElIngest_=t,Object.keys(t).forEach(function(e){try{i[e]=t[e]}catch(e){}})}if(i.setAttribute("tabindex","-1"),r.tabindex="-1",(it||et&&at)&&(i.setAttribute("role","application"),r.role="application"),i.removeAttribute("width"),i.removeAttribute("height"),"width"in r&&delete r.width,"height"in r&&delete r.height,Object.getOwnPropertyNames(r).forEach(function(e){n&&"class"===e||t.setAttribute(e,r[e]),n&&i.setAttribute(e,r[e])}),i.playerId=i.id,i.id+="_html5_api",i.className="vjs-tech",i.player=t.player=this,this.addClass("vjs-paused"),!0!==v.VIDEOJS_NO_DYNAMIC_STYLE){this.styleEl_=Q("vjs-styles-dimensions");var a=W(".vjs-styles-defaults"),s=W("head");s.insertBefore(this.styleEl_,a?a.nextSibling:s.firstChild)}this.fill_=!1,this.fluid_=!1,this.width(this.options_.width),this.height(this.options_.height),this.fill(this.options_.fill),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio);for(var o=i.getElementsByTagName("a"),u=0;u<o.length;u++){var l=o.item(u);C(l,"vjs-hidden"),l.setAttribute("hidden","hidden")}return i.initNetworkState_=i.networkState,i.parentNode&&!e&&i.parentNode.insertBefore(t,i),S(i,t),this.children_.unshift(i),this.el_.setAttribute("lang",this.language_),this.el_=t},e.width=function(e){return this.dimension("width",e)},e.height=function(e){return this.dimension("height",e)},e.dimension=function(e,t){var i=e+"_";if(void 0===t)return this[i]||0;if(""===t)return this[i]=void 0,void this.updateStyleEl_();var n=parseFloat(t);isNaN(n)?p.error('Improper value "'+t+'" supplied for for '+e):(this[i]=n,this.updateStyleEl_())},e.fluid=function(e){if(void 0===e)return!!this.fluid_;this.fluid_=!!e,Ce(this)&&this.off("playerreset",this.updateStyleEl_),e?(this.addClass("vjs-fluid"),this.fill(!1),function(e,t){Ce(e)?t():(e.eventedCallbacks||(e.eventedCallbacks=[]),e.eventedCallbacks.push(t))}(function(){this.on("playerreset",this.updateStyleEl_)})):this.removeClass("vjs-fluid"),this.updateStyleEl_()},e.fill=function(e){if(void 0===e)return!!this.fill_;this.fill_=!!e,e?(this.addClass("vjs-fill"),this.fluid(!1)):this.removeClass("vjs-fill")},e.aspectRatio=function(e){if(void 0===e)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(e))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=e,this.fluid(!0),this.updateStyleEl_()},e.updateStyleEl_=function(){if(!0!==v.VIDEOJS_NO_DYNAMIC_STYLE){var e,t,i,n=(void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:0<this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9").split(":"),r=n[1]/n[0];e=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/r:this.videoWidth()||300,t=void 0!==this.height_?this.height_:e*r,i=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(i),J(this.styleEl_,"\n ."+i+" {\n width: "+e+"px;\n height: "+t+"px;\n }\n\n ."+i+".vjs-fluid {\n padding-top: "+100*r+"%;\n }\n ")}else{var a="number"==typeof this.width_?this.width_:this.options_.width,s="number"==typeof this.height_?this.height_:this.options_.height,o=this.tech_&&this.tech_.el();o&&(0<=a&&(o.width=a),0<=s&&(o.height=s))}},e.loadTech_=function(e,t){var i=this;this.tech_&&this.unloadTech_();var n=Le(e),r=e.charAt(0).toLowerCase()+e.slice(1);"Html5"!==n&&this.tag&&(nr.getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=n,this.isReady_=!1;var a={source:t,autoplay:"string"!=typeof this.autoplay()&&this.autoplay(),nativeControlsForTouch:this.options_.nativeControlsForTouch,playerId:this.id(),techId:this.id()+"_"+r+"_api",playsinline:this.options_.playsinline,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),playerElIngest:this.playerElIngest_||!1,"vtt.js":this.options_["vtt.js"],canOverridePoster:!!this.options_.techCanOverridePoster,enableSourceset:this.options_.enableSourceset,Promise:this.options_.Promise};An.names.forEach(function(e){var t=An[e];a[t.getterName]=i[t.privateName]}),m(a,this.options_[n]),m(a,this.options_[r]),m(a,this.options_[e.toLowerCase()]),this.tag&&(a.tag=this.tag),t&&t.src===this.cache_.src&&0<this.cache_.currentTime&&(a.startTime=this.cache_.currentTime);var s=nr.getTech(e);if(!s)throw new Error("No Tech named '"+n+"' exists! '"+n+"' should be registered using videojs.registerTech()'");this.tech_=new s(a),this.tech_.ready(pe(this,this.handleTechReady_),!0),Et(this.textTracksJson_||[],this.tech_),Qa.forEach(function(e){i.on(i.tech_,e,i["handleTech"+Le(e)+"_"])}),Object.keys(Ja).forEach(function(t){i.on(i.tech_,t,function(e){0===i.tech_.playbackRate()&&i.tech_.seeking()?i.queuedCallbacks_.push({callback:i["handleTech"+Ja[t]+"_"].bind(i),event:e}):i["handleTech"+Ja[t]+"_"](e)})}),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"sourceset",this.handleTechSourceset_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"play",this.handleTechPlay_),this.on(this.tech_,"firstplay",this.handleTechFirstPlay_),this.on(this.tech_,"pause",this.handleTechPause_),this.on(this.tech_,"durationchange",this.handleTechDurationChange_),this.on(this.tech_,"fullscreenchange",this.handleTechFullscreenChange_),this.on(this.tech_,"enterpictureinpicture",this.handleTechEnterPictureInPicture_),this.on(this.tech_,"leavepictureinpicture",this.handleTechLeavePictureInPicture_),this.on(this.tech_,"error",this.handleTechError_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.on(this.tech_,"textdata",this.handleTechTextData_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===n&&this.tag||S(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},e.unloadTech_=function(){var i=this;An.names.forEach(function(e){var t=An[e];i[t.privateName]=i[t.getterName]()}),this.textTracksJson_=Ct(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1,this.isPosterFromTech_&&(this.poster_="",this.trigger("posterchange")),this.isPosterFromTech_=!1},e.tech=function(e){return void 0===e&&p.warn("Using the tech directly can be dangerous. I hope you know what you're doing.\nSee https://github.com/videojs/video.js/issues/2617 for more info.\n"),this.tech_},e.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mouseup",this.handleTechClick_),this.on(this.tech_,"dblclick",this.handleTechDoubleClick_),this.on(this.tech_,"touchstart",this.handleTechTouchStart_),this.on(this.tech_,"touchmove",this.handleTechTouchMove_),this.on(this.tech_,"touchend",this.handleTechTouchEnd_),this.on(this.tech_,"tap",this.handleTechTap_)},e.removeTechControlsListeners_=function(){this.off(this.tech_,"tap",this.handleTechTap_),this.off(this.tech_,"touchstart",this.handleTechTouchStart_),this.off(this.tech_,"touchmove",this.handleTechTouchMove_),this.off(this.tech_,"touchend",this.handleTechTouchEnd_),this.off(this.tech_,"mouseup",this.handleTechClick_),this.off(this.tech_,"dblclick",this.handleTechDoubleClick_)},e.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_()},e.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-seeking"),this.error(null),this.handleTechDurationChange_(),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay")),this.manualAutoplay_(this.autoplay())},e.manualAutoplay_=function(t){var n=this;if(this.tech_&&"string"==typeof t){function e(){var e=n.muted();n.muted(!0);function t(){n.muted(e)}n.playTerminatedQueue_.push(t);var i=n.play();if(Tt(i))return i.catch(t)}var i;if("any"===t&&!0!==this.muted()?Tt(i=this.play())&&(i=i.catch(e)):i="muted"===t&&!0!==this.muted()?e():this.play(),Tt(i))return i.then(function(){n.trigger({type:"autoplay-success",autoplay:t})}).catch(function(e){n.trigger({type:"autoplay-failure",autoplay:t})})}},e.updateSourceCaches_=function(e){void 0===e&&(e="");var t=e,i="";"string"!=typeof t&&(t=e.src,i=e.type),this.cache_.source=this.cache_.source||{},this.cache_.sources=this.cache_.sources||[],t&&!i&&(i=function(e,t){if(!t)return"";if(e.cache_.source.src===t&&e.cache_.source.type)return e.cache_.source.type;var i=e.cache_.sources.filter(function(e){return e.src===t});if(i.length)return i[0].type;for(var n=e.$$("source"),r=0;r<n.length;r++){var a=n[r];if(a.type&&a.src&&a.src===t)return a.type}return fr(t)}(this,t)),this.cache_.source=Oe({},e,{src:t,type:i});for(var n=this.cache_.sources.filter(function(e){return e.src&&e.src===t}),r=[],a=this.$$("source"),s=[],o=0;o<a.length;o++){var u=P(a[o]);r.push(u),u.src&&u.src===t&&s.push(u.src)}s.length&&!n.length?this.cache_.sources=r:n.length||(this.cache_.sources=[this.cache_.source]),this.cache_.src=t},e.handleTechSourceset_=function(e){var i=this;if(!this.changingSrc_){var t=function(e){return i.updateSourceCaches_(e)},n=this.currentSource().src,r=e.src;n&&!/^blob:/.test(n)&&/^blob:/.test(r)&&(this.lastSource_&&(this.lastSource_.tech===r||this.lastSource_.player===n)||(t=function(){})),t(r),e.src||this.tech_.any(["sourceset","loadstart"],function(e){if("sourceset"!==e.type){var t=i.techGet("currentSrc");i.lastSource_.tech=t,i.updateSourceCaches_(t)}})}this.lastSource_={player:this.currentSource().src,tech:e.src},this.trigger({src:e.src,type:"sourceset"})},e.hasStarted=function(e){if(void 0===e)return this.hasStarted_;e!==this.hasStarted_&&(this.hasStarted_=e,this.hasStarted_?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started"))},e.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},e.handleTechRateChange_=function(){0<this.tech_.playbackRate()&&0===this.cache_.lastPlaybackRate&&(this.queuedCallbacks_.forEach(function(e){return e.callback(e.event)}),this.queuedCallbacks_=[]),this.cache_.lastPlaybackRate=this.tech_.playbackRate(),this.trigger("ratechange")},e.handleTechWaiting_=function(){var t=this;this.addClass("vjs-waiting"),this.trigger("waiting");var i=this.currentTime();this.on("timeupdate",function e(){i!==t.currentTime()&&(t.removeClass("vjs-waiting"),t.off("timeupdate",e))})},e.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},e.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},e.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},e.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},e.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.removeClass("vjs-ended"),this.trigger("seeked")},e.handleTechFirstPlay_=function(){this.options_.starttime&&(p.warn("Passing the `starttime` option to the player will be deprecated in 6.0"),this.currentTime(this.options_.starttime)),this.addClass("vjs-has-started"),this.trigger("firstplay")},e.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},e.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},e.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},e.handleTechClick_=function(e){V(e)&&this.controls_&&(this.paused()?St(this.play()):this.pause())},e.handleTechDoubleClick_=function(t){this.controls_&&(Array.prototype.some.call(this.$$(".vjs-control-bar, .vjs-modal-dialog"),function(e){return e.contains(t.target)})||void 0!==this.options_&&void 0!==this.options_.userActions&&void 0!==this.options_.userActions.doubleClick&&!1===this.options_.userActions.doubleClick||(void 0!==this.options_&&void 0!==this.options_.userActions&&"function"==typeof this.options_.userActions.doubleClick?this.options_.userActions.doubleClick.call(this,t):this.isFullscreen()?this.exitFullscreen():this.requestFullscreen()))},e.handleTechTap_=function(){this.userActive(!this.userActive())},e.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},e.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},e.handleTechTouchEnd_=function(e){e.preventDefault()},e.handleStageClick_=function(){this.reportUserActivity()},e.toggleFullscreenClass_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},e.documentFullscreenChange_=function(e){var t=this.el(),i=h[this.fsApi_.fullscreenElement]===t;!i&&t.matches?i=t.matches(":"+this.fsApi_.fullscreen):!i&&t.msMatchesSelector&&(i=t.msMatchesSelector(":"+this.fsApi_.fullscreen)),this.isFullscreen(i),!1===this.isFullscreen()&&le(h,this.fsApi_.fullscreenchange,this.boundDocumentFullscreenChange_),this.fsApi_.prefixed&&this.trigger("fullscreenchange")},e.handleTechFullscreenChange_=function(e,t){t&&this.isFullscreen(t.isFullscreen),this.trigger("fullscreenchange")},e.togglePictureInPictureClass_=function(){this.isInPictureInPicture()?this.addClass("vjs-picture-in-picture"):this.removeClass("vjs-picture-in-picture")},e.handleTechEnterPictureInPicture_=function(e){this.isInPictureInPicture(!0)},e.handleTechLeavePictureInPicture_=function(e){this.isInPictureInPicture(!1)},e.handleTechError_=function(){var e=this.tech_.error();this.error(e)},e.handleTechTextData_=function(e,t){var i=null;1<arguments.length&&(i=t),this.trigger("textdata",i)},e.getCache=function(){return this.cache_},e.resetCache_=function(){this.cache_={currentTime:0,inactivityTimeout:this.options_.inactivityTimeout,duration:NaN,lastVolume:1,lastPlaybackRate:this.defaultPlaybackRate(),media:null,src:"",source:{},sources:[],volume:1}},e.techCall_=function(e,t){this.ready(function(){if(e in cr)return function(e,t,i,n){return t[i](e.reduce(dr(i),n))}(this.middleware_,this.tech_,e,t);if(e in hr)return ur(this.middleware_,this.tech_,e,t);try{this.tech_&&this.tech_[e](t)}catch(e){throw p(e),e}},!0)},e.techGet_=function(t){if(this.tech_&&this.tech_.isReady_){if(t in lr)return function(e,t,i){return e.reduceRight(dr(i),t[i]())}(this.middleware_,this.tech_,t);if(t in hr)return ur(this.middleware_,this.tech_,t);try{return this.tech_[t]()}catch(e){if(void 0===this.tech_[t])throw p("Video.js: "+t+" method not defined for "+this.techName_+" playback technology.",e),e;if("TypeError"===e.name)throw p("Video.js: "+t+" unavailable on "+this.techName_+" playback technology element.",e),this.tech_.isReady_=!1,e;throw p(e),e}}},e.play=function(){var t=this,e=this.options_.Promise||v.Promise;return e?new e(function(e){t.play_(e)}):this.play_()},e.play_=function(e){var t=this;void 0===e&&(e=St),this.playCallbacks_.push(e);var i=Boolean(!this.changingSrc_&&(this.src()||this.currentSrc()));if(this.waitToPlay_&&(this.off(["ready","loadstart"],this.waitToPlay_),this.waitToPlay_=null),!this.isReady_||!i)return this.waitToPlay_=function(e){t.play_()},this.one(["ready","loadstart"],this.waitToPlay_),void(i||!rt&&!Ge||this.load());var n=this.techGet_("play");null===n?this.runPlayTerminatedQueue_():this.runPlayCallbacks_(n)},e.runPlayTerminatedQueue_=function(){var e=this.playTerminatedQueue_.slice(0);this.playTerminatedQueue_=[],e.forEach(function(e){e()})},e.runPlayCallbacks_=function(t){var e=this.playCallbacks_.slice(0);this.playCallbacks_=[],this.playTerminatedQueue_=[],e.forEach(function(e){e(t)})},e.pause=function(){this.techCall_("pause")},e.paused=function(){return!1!==this.techGet_("paused")},e.played=function(){return this.techGet_("played")||ct(0,0)},e.scrubbing=function(e){if("undefined"==typeof e)return this.scrubbing_;this.scrubbing_=!!e,e?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing")},e.currentTime=function(e){return"undefined"!=typeof e?(e<0&&(e=0),void this.techCall_("setCurrentTime",e)):(this.cache_.currentTime=this.techGet_("currentTime")||0,this.cache_.currentTime)},e.duration=function(e){if(void 0===e)return void 0!==this.cache_.duration?this.cache_.duration:NaN;(e=parseFloat(e))<0&&(e=1/0),e!==this.cache_.duration&&((this.cache_.duration=e)===1/0?(this.addClass("vjs-live"),this.options_.liveui&&this.player_.liveTracker&&this.addClass("vjs-liveui")):(this.removeClass("vjs-live"),this.removeClass("vjs-liveui")),isNaN(e)||this.trigger("durationchange"))},e.remainingTime=function(){return this.duration()-this.currentTime()},e.remainingTimeDisplay=function(){return Math.floor(this.duration())-Math.floor(this.currentTime())},e.buffered=function(){var e=this.techGet_("buffered");return e&&e.length||(e=ct(0,0)),e},e.bufferedPercent=function(){return ht(this.buffered(),this.duration())},e.bufferedEnd=function(){var e=this.buffered(),t=this.duration(),i=e.end(e.length-1);return t<i&&(i=t),i},e.volume=function(e){var t;return void 0!==e?(t=Math.max(0,Math.min(1,parseFloat(e))),this.cache_.volume=t,this.techCall_("setVolume",t),void(0<t&&this.lastVolume_(t))):(t=parseFloat(this.techGet_("volume")),isNaN(t)?1:t)},e.muted=function(e){if(void 0===e)return this.techGet_("muted")||!1;this.techCall_("setMuted",e)},e.defaultMuted=function(e){return void 0!==e?this.techCall_("setDefaultMuted",e):this.techGet_("defaultMuted")||!1},e.lastVolume_=function(e){if(void 0===e||0===e)return this.cache_.lastVolume;this.cache_.lastVolume=e},e.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},e.isFullscreen=function(e){return void 0!==e?(this.isFullscreen_=!!e,void this.toggleFullscreenClass_()):!!this.isFullscreen_},e.requestFullscreen=function(e){var t;this.isFullscreen(!0),this.fsApi_.requestFullscreen?(ue(h,this.fsApi_.fullscreenchange,this.boundDocumentFullscreenChange_),this.fsApi_.prefixed||(t=this.options_.fullscreen&&this.options_.fullscreen.options||{},void 0!==e&&(t=e)),St(this.el_[this.fsApi_.requestFullscreen](t))):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange"))},e.exitFullscreen=function(){this.isFullscreen(!1),this.fsApi_.requestFullscreen?St(h[this.fsApi_.exitFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange"))},e.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=h.documentElement.style.overflow,ue(h,"keydown",this.boundFullWindowOnEscKey_),h.documentElement.style.overflow="hidden",C(h.body,"vjs-full-window"),this.trigger("enterFullWindow")},e.fullWindowOnEscKey=function(e){At.isEventKey(e,"Esc")&&(!0===this.isFullscreen()?this.exitFullscreen():this.exitFullWindow())},e.exitFullWindow=function(){this.isFullWindow=!1,le(h,"keydown",this.boundFullWindowOnEscKey_),h.documentElement.style.overflow=this.docOrigOverflow,E(h.body,"vjs-full-window"),this.trigger("exitFullWindow")},e.isInPictureInPicture=function(e){return void 0!==e?(this.isInPictureInPicture_=!!e,void this.togglePictureInPictureClass_()):!!this.isInPictureInPicture_},e.requestPictureInPicture=function(){if("pictureInPictureEnabled"in h)return this.techGet_("requestPictureInPicture")},e.exitPictureInPicture=function(){if("pictureInPictureEnabled"in h)return h.exitPictureInPicture()},e.handleKeyDown=function(e){var t=this.options_.userActions;if(t&&t.hotkeys){!function(e){var t=e.tagName.toLowerCase();if(e.isContentEditable)return!0;if("input"===t)return-1===["button","checkbox","hidden","radio","reset","submit"].indexOf(e.type);return-1!==["textarea"].indexOf(t)}(this.el_.ownerDocument.activeElement)&&("function"==typeof t.hotkeys?t.hotkeys.call(this,e):this.handleHotkeys(e))}},e.handleHotkeys=function(e){var t=this.options_.userActions?this.options_.userActions.hotkeys:{},i=t.fullscreenKey,n=void 0===i?function(e){return At.isEventKey(e,"f")}:i,r=t.muteKey,a=void 0===r?function(e){return At.isEventKey(e,"m")}:r,s=t.playPauseKey,o=void 0===s?function(e){return At.isEventKey(e,"k")||At.isEventKey(e,"Space")}:s;if(n.call(this,e)){e.preventDefault(),e.stopPropagation();var u=xe.getComponent("FullscreenToggle");!1!==h[this.fsApi_.fullscreenEnabled]&&u.prototype.handleClick.call(this,e)}else if(a.call(this,e)){e.preventDefault(),e.stopPropagation(),xe.getComponent("MuteToggle").prototype.handleClick.call(this,e)}else if(o.call(this,e)){e.preventDefault(),e.stopPropagation(),xe.getComponent("PlayToggle").prototype.handleClick.call(this,e)}},e.canPlayType=function(e){for(var t,i=0,n=this.options_.techOrder;i<n.length;i++){var r=n[i],a=nr.getTech(r);if(a=a||xe.getComponent(r)){if(a.isSupported()&&(t=a.canPlayType(e)))return t}else p.error('The "'+r+'" tech is undefined. Skipped browser support check for that tech.')}return""},e.selectSource=function(e){function t(e,i,n){var r;return e.some(function(t){return i.some(function(e){if(r=n(t,e))return!0})}),r}function i(e,t){var i=e[0];if(e[1].canPlaySource(t,r.options_[i.toLowerCase()]))return{source:t,tech:i}}var n,r=this,a=this.options_.techOrder.map(function(e){return[e,nr.getTech(e)]}).filter(function(e){var t=e[0],i=e[1];return i?i.isSupported():(p.error('The "'+t+'" tech is undefined. Skipped browser support check for that tech.'),!1)});return(this.options_.sourceOrder?t(e,a,(n=i,function(e,t){return n(t,e)})):t(a,e,i))||!1},e.src=function(e){var i=this;if("undefined"==typeof e)return this.cache_.src||"";var n=function t(e){if(Array.isArray(e)){var i=[];e.forEach(function(e){e=t(e),Array.isArray(e)?i=i.concat(e):s(e)&&i.push(e)}),e=i}else e="string"==typeof e&&e.trim()?[gr({src:e})]:s(e)&&"string"==typeof e.src&&e.src&&e.src.trim()?[gr(e)]:[];return e}(e);n.length?(this.changingSrc_=!0,this.cache_.sources=n,this.updateSourceCaches_(n[0]),or(this,n[0],function(e,t){if(i.middleware_=t,i.cache_.sources=n,i.updateSourceCaches_(e),i.src_(e))return 1<n.length?i.src(n.slice(1)):(i.changingSrc_=!1,i.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0),void i.triggerReady());!function(e,t){e.forEach(function(e){return e.setTech&&e.setTech(t)})}(t,i.tech_)})):this.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0)},e.src_=function(e){var t=this,i=this.selectSource([e]);return!i||(function(e,t){return Le(e)===Le(t)}(i.tech,this.techName_)?this.ready(function(){this.tech_.constructor.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",e):this.techCall_("src",e.src),this.changingSrc_=!1},!0):(this.changingSrc_=!0,this.loadTech_(i.tech,i.source),this.tech_.ready(function(){t.changingSrc_=!1})),!1)},e.load=function(){this.techCall_("load")},e.reset=function(){var e=this,t=this.options_.Promise||v.Promise;this.paused()||!t?this.doReset_():St(this.play().then(function(){return e.doReset_()}))},e.doReset_=function(){this.tech_&&this.tech_.clearTracks("text"),this.resetCache_(),this.poster(""),this.loadTech_(this.options_.techOrder[0],null),this.techCall_("reset"),this.resetControlBarUI_(),Ce(this)&&this.trigger("playerreset")},e.resetControlBarUI_=function(){this.resetProgressBar_(),this.resetPlaybackRate_(),this.resetVolumeBar_()},e.resetProgressBar_=function(){this.currentTime(0);var e=this.controlBar,t=e.durationDisplay,i=e.remainingTimeDisplay;t&&t.updateContent(),i&&i.updateContent()},e.resetPlaybackRate_=function(){this.playbackRate(this.defaultPlaybackRate()),this.handleTechRateChange_()},e.resetVolumeBar_=function(){this.volume(1),this.trigger("volumechange")},e.currentSources=function(){var e=this.currentSource(),t=[];return 0!==Object.keys(e).length&&t.push(e),this.cache_.sources||t},e.currentSource=function(){return this.cache_.source||{}},e.currentSrc=function(){return this.currentSource()&&this.currentSource().src||""},e.currentType=function(){return this.currentSource()&&this.currentSource().type||""},e.preload=function(e){return void 0!==e?(this.techCall_("setPreload",e),void(this.options_.preload=e)):this.techGet_("preload")},e.autoplay=function(e){if(void 0===e)return this.options_.autoplay||!1;var t;"string"==typeof e&&/(any|play|muted)/.test(e)?(this.options_.autoplay=e,this.manualAutoplay_(e),t=!1):this.options_.autoplay=!!e,t="undefined"==typeof t?this.options_.autoplay:t,this.tech_&&this.techCall_("setAutoplay",t)},e.playsinline=function(e){return void 0!==e?(this.techCall_("setPlaysinline",e),this.options_.playsinline=e,this):this.techGet_("playsinline")},e.loop=function(e){return void 0!==e?(this.techCall_("setLoop",e),void(this.options_.loop=e)):this.techGet_("loop")},e.poster=function(e){if(void 0===e)return this.poster_;(e=e||"")!==this.poster_&&(this.poster_=e,this.techCall_("setPoster",e),this.isPosterFromTech_=!1,this.trigger("posterchange"))},e.handleTechPosterChange_=function(){if((!this.poster_||this.options_.techCanOverridePoster)&&this.tech_&&this.tech_.poster){var e=this.tech_.poster()||"";e!==this.poster_&&(this.poster_=e,this.isPosterFromTech_=!0,this.trigger("posterchange"))}},e.controls=function(e){if(void 0===e)return!!this.controls_;e=!!e,this.controls_!==e&&(this.controls_=e,this.usingNativeControls()&&this.techCall_("setControls",e),this.controls_?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_()))},e.usingNativeControls=function(e){if(void 0===e)return!!this.usingNativeControls_;e=!!e,this.usingNativeControls_!==e&&(this.usingNativeControls_=e,this.usingNativeControls_?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols")))},e.error=function(e){if(void 0===e)return this.error_||null;if(this.options_.suppressNotSupportedError&&e&&e.message&&e.message===this.localize(this.options_.notSupportedMessage)){function t(){this.error(e)}return this.options_.suppressNotSupportedError=!1,this.any(["click","touchstart"],t),void this.one("loadstart",function(){this.off(["click","touchstart"],t)})}if(null===e)return this.error_=e,this.removeClass("vjs-error"),void(this.errorDisplay&&this.errorDisplay.close());this.error_=new vt(e),this.addClass("vjs-error"),p.error("(CODE:"+this.error_.code+" "+vt.errorTypes[this.error_.code]+")",this.error_.message,this.error_),this.trigger("error")},e.reportUserActivity=function(e){this.userActivity_=!0},e.userActive=function(e){if(void 0===e)return this.userActive_;if((e=!!e)!==this.userActive_){if(this.userActive_=e,this.userActive_)return this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),void this.trigger("useractive");this.tech_&&this.tech_.one("mousemove",function(e){e.stopPropagation(),e.preventDefault()}),this.userActivity_=!1,this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive")}},e.listenForUserActivity_=function(){var t,i,n,r=pe(this,this.reportUserActivity);this.on("mousedown",function(){r(),this.clearInterval(t),t=this.setInterval(r,250)}),this.on("mousemove",function(e){e.screenX===i&&e.screenY===n||(i=e.screenX,n=e.screenY,r())}),this.on("mouseup",function(e){r(),this.clearInterval(t)});var a,e=this.getChild("controlBar");!e||Ge||Ke||(e.on("mouseenter",function(e){this.player().cache_.inactivityTimeout=this.player().options_.inactivityTimeout,this.player().options_.inactivityTimeout=0}),e.on("mouseleave",function(e){this.player().options_.inactivityTimeout=this.player().cache_.inactivityTimeout})),this.on("keydown",r),this.on("keyup",r),this.setInterval(function(){if(this.userActivity_){this.userActivity_=!1,this.userActive(!0),this.clearTimeout(a);var e=this.options_.inactivityTimeout;e<=0||(a=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},e))}},250)},e.playbackRate=function(e){if(void 0===e)return this.tech_&&this.tech_.featuresPlaybackRate?this.cache_.lastPlaybackRate||this.techGet_("playbackRate"):1;this.techCall_("setPlaybackRate",e)},e.defaultPlaybackRate=function(e){return void 0!==e?this.techCall_("setDefaultPlaybackRate",e):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("defaultPlaybackRate"):1},e.isAudio=function(e){if(void 0===e)return!!this.isAudio_;this.isAudio_=!!e},e.addTextTrack=function(e,t,i){if(this.tech_)return this.tech_.addTextTrack(e,t,i)},e.addRemoteTextTrack=function(e,t){if(this.tech_)return this.tech_.addRemoteTextTrack(e,t)},e.removeRemoteTextTrack=function(e){void 0===e&&(e={});var t=e.track;if(t=t||e,this.tech_)return this.tech_.removeRemoteTextTrack(t)},e.getVideoPlaybackQuality=function(){return this.techGet_("getVideoPlaybackQuality")},e.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},e.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},e.language=function(e){if(void 0===e)return this.language_;this.language_=String(e).toLowerCase()},e.languages=function(){return Oe(l.prototype.options_.languages,this.languages_)},e.toJSON=function(){var e=Oe(this.options_),t=e.tracks;e.tracks=[];for(var i=0;i<t.length;i++){var n=t[i];(n=Oe(n)).player=void 0,e.tracks[i]=n}return e},e.createModal=function(e,t){var i=this;(t=t||{}).content=e||"";var n=new It(this,t);return this.addChild(n),n.on("dispose",function(){i.removeChild(n)}),n.open(),n},e.updateCurrentBreakpoint_=function(){if(this.responsive())for(var e=this.currentBreakpoint(),t=this.currentWidth(),i=0;i<Za.length;i++){var n=Za[i];if(t<=this.breakpoints_[n]){if(e===n)return;e&&this.removeClass(es[e]),this.addClass(es[n]),this.breakpoint_=n;break}}},e.removeCurrentBreakpoint_=function(){var e=this.currentBreakpointClass();this.breakpoint_="",e&&this.removeClass(e)},e.breakpoints=function(e){return void 0===e||(this.breakpoint_="",this.breakpoints_=m({},ts,e),this.updateCurrentBreakpoint_()),m(this.breakpoints_)},e.responsive=function(e){return void 0===e?this.responsive_:(e=Boolean(e))!==this.responsive_?((this.responsive_=e)?(this.on("playerresize",this.updateCurrentBreakpoint_),this.updateCurrentBreakpoint_()):(this.off("playerresize",this.updateCurrentBreakpoint_),this.removeCurrentBreakpoint_()),e):void 0},e.currentBreakpoint=function(){return this.breakpoint_},e.currentBreakpointClass=function(){return es[this.breakpoint_]||""},e.loadMedia=function(e,t){var i=this;if(e&&"object"==typeof e){this.reset(),this.cache_.media=Oe(e);var n=this.cache_.media,r=n.artwork,a=n.poster,s=n.src,o=n.textTracks;!r&&a&&(this.cache_.media.artwork=[{src:a,type:fr(a)}]),s&&this.src(s),a&&this.poster(a),Array.isArray(o)&&o.forEach(function(e){return i.addRemoteTextTrack(e,!1)}),this.ready(t)}},e.getMedia=function(){if(this.cache_.media)return Oe(this.cache_.media);var e=this.poster(),t={src:this.currentSources(),textTracks:Array.prototype.map.call(this.remoteTextTracks(),function(e){return{kind:e.kind,label:e.label,language:e.language,src:e.src}})};return e&&(t.poster=e,t.artwork=[{src:t.poster,type:fr(t.poster)}]),t},l.getTagSettings=function(e){var t={sources:[],tracks:[]},i=P(e),n=i["data-setup"];if(k(e,"vjs-fill")&&(i.fill=!0),k(e,"vjs-fluid")&&(i.fluid=!0),null!==n){var r=bt(n||"{}"),a=r[0],s=r[1];a&&p.error(a),m(i,s)}if(m(t,i),e.hasChildNodes())for(var o=e.childNodes,u=0,l=o.length;u<l;u++){var c=o[u],h=c.nodeName.toLowerCase();"source"===h?t.sources.push(P(c)):"track"===h&&t.tracks.push(P(c))}return t},e.flexNotSupported_=function(){var e=h.createElement("i");return!("flexBasis"in e.style||"webkitFlexBasis"in e.style||"mozFlexBasis"in e.style||"msFlexBasis"in e.style||"msFlexOrder"in e.style)},l}(xe);An.names.forEach(function(e){var t=An[e];is.prototype[t.getterName]=function(){return this.tech_?this.tech_[t.getterName]():(this[t.privateName]=this[t.privateName]||new t.ListClass,this[t.privateName])}}),is.players={};var ns=v.navigator;is.prototype.options_={techOrder:nr.defaultTechOrder_,html5:{},flash:{},inactivityTimeout:2e3,playbackRates:[],liveui:!1,children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","liveTracker","controlBar","errorDisplay","textTrackSettings","resizeManager"],language:ns&&(ns.languages&&ns.languages[0]||ns.userLanguage||ns.language)||"en",languages:{},notSupportedMessage:"No compatible source was found for this media.",fullscreen:{options:{navigationUI:"hide"}},breakpoints:{},responsive:!1},["ended","seeking","seekable","networkState","readyState"].forEach(function(e){is.prototype[e]=function(){return this.techGet_(e)}}),Qa.forEach(function(e){is.prototype["handleTech"+Le(e)+"_"]=function(){return this.trigger(e)}}),xe.registerComponent("Player",is);function rs(e){return hs.hasOwnProperty(e)}function as(e){return rs(e)?hs[e]:void 0}function ss(e,t){e[cs]=e[cs]||{},e[cs][t]=!0}function os(e,t,i){var n=(i?"before":"")+"pluginsetup";e.trigger(n,t),e.trigger(n+":"+t.name,t)}function us(r,a){return a.prototype.name=r,function(){os(this,{name:r,plugin:a,instance:null},!0);for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=Re(a,[this].concat(t));return this[r]=function(){return n},os(this,n.getEventHash()),n}}var ls="plugin",cs="activePlugins_",hs={},ds=function(){function i(e){if(this.constructor===i)throw new Error("Plugin must be sub-classed; not directly instantiated.");this.player=e,we(this),delete this.trigger,Pe(this,this.constructor.defaultState),ss(e,this.name),this.dispose=pe(this,this.dispose),e.on("dispose",this.dispose)}var e=i.prototype;return e.version=function(){return this.constructor.VERSION},e.getEventHash=function(e){return void 0===e&&(e={}),e.name=this.name,e.plugin=this.constructor,e.instance=this,e},e.trigger=function(e,t){return void 0===t&&(t={}),ce(this.eventBusEl_,e,this.getEventHash(t))},e.handleStateChanged=function(e){},e.dispose=function(){var e=this.name,t=this.player;this.trigger("dispose"),this.off(),t.off("dispose",this.dispose),t[cs][e]=!1,this.player=this.state=null,t[e]=us(e,hs[e])},i.isBasic=function(e){var t="string"==typeof e?as(e):e;return"function"==typeof t&&!i.prototype.isPrototypeOf(t.prototype)},i.registerPlugin=function(e,t){if("string"!=typeof e)throw new Error('Illegal plugin name, "'+e+'", must be a string, was '+typeof e+".");if(rs(e))p.warn('A plugin named "'+e+'" already exists. You may want to avoid re-registering plugins!');else if(is.prototype.hasOwnProperty(e))throw new Error('Illegal plugin name, "'+e+'", cannot share a name with an existing player method!');if("function"!=typeof t)throw new Error('Illegal plugin for "'+e+'", must be a function, was '+typeof t+".");return hs[e]=t,e!==ls&&(i.isBasic(t)?is.prototype[e]=function(t,i){function n(){os(this,{name:t,plugin:i,instance:null},!0);var e=i.apply(this,arguments);return ss(this,t),os(this,{name:t,plugin:i,instance:e}),e}return Object.keys(i).forEach(function(e){n[e]=i[e]}),n}(e,t):is.prototype[e]=us(e,t)),t},i.deregisterPlugin=function(e){if(e===ls)throw new Error("Cannot de-register base plugin.");rs(e)&&(delete hs[e],delete is.prototype[e])},i.getPlugins=function(e){var i;return void 0===e&&(e=Object.keys(hs)),e.forEach(function(e){var t=as(e);t&&((i=i||{})[e]=t)}),i},i.getPluginVersion=function(e){var t=as(e);return t&&t.VERSION||""},i}();ds.getPlugin=as,ds.BASE_PLUGIN_NAME=ls,ds.registerPlugin(ls,ds),is.prototype.usingPlugin=function(e){return!!this[cs]&&!0===this[cs][e]},is.prototype.hasPlugin=function(e){return!!rs(e)};var ps=function(e){return 0===e.indexOf("#")?e.slice(1):e};function fs(e,i,t){var n=fs.getPlayer(e);if(n)return i&&p.warn('Player "'+e+'" is already initialised. Options will not be applied.'),t&&n.ready(t),n;var r="string"==typeof e?W("#"+ps(e)):e;if(!g(r))throw new TypeError("The element or ID supplied is not valid. (videojs)");r.ownerDocument.defaultView&&r.ownerDocument.body.contains(r)||p.warn("The element supplied is not included in the DOM"),i=i||{},fs.hooks("beforesetup").forEach(function(e){var t=e(r,Oe(i));s(t)&&!Array.isArray(t)?i=Oe(i,t):p.error("please return an object in beforesetup hooks")});var a=xe.getComponent("Player");return n=new a(r,i,t),fs.hooks("setup").forEach(function(e){return e(n)}),n}if(fs.hooks_={},fs.hooks=function(e,t){return fs.hooks_[e]=fs.hooks_[e]||[],t&&(fs.hooks_[e]=fs.hooks_[e].concat(t)),fs.hooks_[e]},fs.hook=function(e,t){fs.hooks(e,t)},fs.hookOnce=function(i,e){fs.hooks(i,[].concat(e).map(function(t){return function e(){return fs.removeHook(i,e),t.apply(void 0,arguments)}}))},fs.removeHook=function(e,t){var i=fs.hooks(e).indexOf(t);return!(i<=-1)&&(fs.hooks_[e]=fs.hooks_[e].slice(),fs.hooks_[e].splice(i,1),!0)},!0!==v.VIDEOJS_NO_DYNAMIC_STYLE&&c()){var ms=W(".vjs-styles-defaults");if(!ms){ms=Q("vjs-styles-defaults");var gs=W("head");gs&&gs.insertBefore(ms,gs.firstChild),J(ms,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}}K(1,fs),fs.VERSION=d,fs.options=is.prototype.options_,fs.getPlayers=function(){return is.players},fs.getPlayer=function(e){var t,i=is.players;if("string"==typeof e){var n=ps(e),r=i[n];if(r)return r;t=W("#"+n)}else t=e;if(g(t)){var a=t,s=a.player,o=a.playerId;if(s||i[o])return s||i[o]}},fs.getAllPlayers=function(){return Object.keys(is.players).map(function(e){return is.players[e]}).filter(Boolean)},fs.players=is.players,fs.getComponent=xe.getComponent,fs.registerComponent=function(e,t){nr.isTech(t)&&p.warn("The "+e+" tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),xe.registerComponent.call(xe,e,t)},fs.getTech=nr.getTech,fs.registerTech=nr.registerTech,fs.use=function(e,t){rr[e]=rr[e]||[],rr[e].push(t)},Object.defineProperty(fs,"middleware",{value:{},writeable:!1,enumerable:!0}),Object.defineProperty(fs.middleware,"TERMINATOR",{value:sr,writeable:!1,enumerable:!0}),fs.browser=ot,fs.TOUCH_ENABLED=st,fs.extend=function(e,t){void 0===t&&(t={});var i=function(){e.apply(this,arguments)},n={};for(var r in"object"==typeof t?(t.constructor!==Object.prototype.constructor&&(i=t.constructor),n=t):"function"==typeof t&&(i=t),function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.super_=t)}(i,e),n)n.hasOwnProperty(r)&&(i.prototype[r]=n[r]);return i},fs.mergeOptions=Oe,fs.bind=pe,fs.registerPlugin=ds.registerPlugin,fs.deregisterPlugin=ds.deregisterPlugin,fs.plugin=function(e,t){return p.warn("videojs.plugin() is deprecated; use videojs.registerPlugin() instead"),ds.registerPlugin(e,t)},fs.getPlugins=ds.getPlugins,fs.getPlugin=ds.getPlugin,fs.getPluginVersion=ds.getPluginVersion,fs.addLanguage=function(e,t){var i;return e=(""+e).toLowerCase(),fs.options.languages=Oe(fs.options.languages,((i={})[e]=t,i)),fs.options.languages[e]},fs.log=p,fs.createLogger=f,fs.createTimeRange=fs.createTimeRanges=ct,fs.formatTime=xr,fs.setFormatTime=function(e){Or=e},fs.resetFormatTime=function(){Or=Lr},fs.parseUrl=Ut,fs.isCrossOrigin=Nt,fs.EventTarget=me,fs.on=ue,fs.one=he,fs.off=le,fs.trigger=ce,fs.xhr=gn,fs.TextTrack=Tn,fs.AudioTrack=Sn,fs.VideoTrack=kn,["isEl","isTextNode","createEl","hasClass","addClass","removeClass","toggleClass","setAttributes","getAttributes","emptyEl","appendContent","insertContent"].forEach(function(e){fs[e]=function(){return p.warn("videojs."+e+"() is deprecated; use videojs.dom."+e+"() instead"),$[e].apply(null,arguments)}}),fs.computedStyle=n,fs.dom=$,fs.url=Xt;var ys=wt(function(e,t){var i,c,n,r,h;i=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/?#]*)?((?:[^\/\?#]*\/)*.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,c=/^([^\/?#]*)(.*)$/,n=/(?:\/|^)\.(?=\/)/g,r=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,h={buildAbsoluteURL:function(e,t,i){if(i=i||{},e=e.trim(),!(t=t.trim())){if(!i.alwaysNormalize)return e;var n=h.parseURL(e);if(!n)throw new Error("Error trying to parse base URL.");return n.path=h.normalizePath(n.path),h.buildURLFromParts(n)}var r=h.parseURL(t);if(!r)throw new Error("Error trying to parse relative URL.");if(r.scheme)return i.alwaysNormalize?(r.path=h.normalizePath(r.path),h.buildURLFromParts(r)):t;var a=h.parseURL(e);if(!a)throw new Error("Error trying to parse base URL.");if(!a.netLoc&&a.path&&"/"!==a.path[0]){var s=c.exec(a.path);a.netLoc=s[1],a.path=s[2]}a.netLoc&&!a.path&&(a.path="/");var o={scheme:a.scheme,netLoc:r.netLoc,path:null,params:r.params,query:r.query,fragment:r.fragment};if(!r.netLoc&&(o.netLoc=a.netLoc,"/"!==r.path[0]))if(r.path){var u=a.path,l=u.substring(0,u.lastIndexOf("/")+1)+r.path;o.path=h.normalizePath(l)}else o.path=a.path,r.params||(o.params=a.params,r.query||(o.query=a.query));return null===o.path&&(o.path=i.alwaysNormalize?h.normalizePath(r.path):r.path),h.buildURLFromParts(o)},parseURL:function(e){var t=i.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(n,"");e.length!==(e=e.replace(r,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=h});
13
+ /*! @name m3u8-parser @version 4.4.0 @license Apache-2.0 */function vs(){return(vs=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}function _s(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}function bs(e){for(var t,i=e.split(new RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')),n={},r=i.length;r--;)""!==i[r]&&((t=/([^=]*)=(.*)/.exec(i[r]).slice(1))[0]=t[0].replace(/^\s+|\s+$/g,""),t[1]=t[1].replace(/^\s+|\s+$/g,""),t[1]=t[1].replace(/^['"](.*)['"]$/g,"$1"),n[t[0]]=t[1]);return n}var Ts=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},t.off=function(e,t){if(!this.listeners[e])return!1;var i=this.listeners[e].indexOf(t);return this.listeners[e].splice(i,1),-1<i},t.trigger=function(e,t){var i,n,r,a=this.listeners[e];if(a)if(2===arguments.length)for(n=a.length,i=0;i<n;++i)a[i].call(this,t);else for(r=Array.prototype.slice.call(arguments,1),n=a.length,i=0;i<n;++i)a[i].apply(this,r)},t.dispose=function(){this.listeners={}},t.pipe=function(t){this.on("data",function(e){t.push(e)})},e}(),Ss=function(t){function e(){var e;return(e=t.call(this)||this).buffer="",e}return _s(e,t),e.prototype.push=function(e){var t;for(this.buffer+=e,t=this.buffer.indexOf("\n");-1<t;t=this.buffer.indexOf("\n"))this.trigger("data",this.buffer.substring(0,t)),this.buffer=this.buffer.substring(t+1)},e}(Ts),ks=function(t){function e(){var e;return(e=t.call(this)||this).customParsers=[],e.tagMappers=[],e}_s(e,t);var i=e.prototype;return i.push=function(n){var u,l,c=this;0!==(n=n.trim()).length&&("#"===n[0]?this.tagMappers.reduce(function(e,t){var i=t(n);return i===n?e:e.concat([i])},[n]).forEach(function(e){for(var t=0;t<c.customParsers.length;t++)if(c.customParsers[t].call(c,e))return;if(0===e.indexOf("#EXT"))if(e=e.replace("\r",""),u=/^#EXTM3U/.exec(e))c.trigger("data",{type:"tag",tagType:"m3u"});else{if(u=/^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(e))return l={type:"tag",tagType:"inf"},u[1]&&(l.duration=parseFloat(u[1])),u[2]&&(l.title=u[2]),void c.trigger("data",l);if(u=/^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(e))return l={type:"tag",tagType:"targetduration"},u[1]&&(l.duration=parseInt(u[1],10)),void c.trigger("data",l);if(u=/^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(e))return l={type:"tag",tagType:"totalduration"},u[1]&&(l.duration=parseInt(u[1],10)),void c.trigger("data",l);if(u=/^#EXT-X-VERSION:?([0-9.]*)?/.exec(e))return l={type:"tag",tagType:"version"},u[1]&&(l.version=parseInt(u[1],10)),void c.trigger("data",l);if(u=/^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(e))return l={type:"tag",tagType:"media-sequence"},u[1]&&(l.number=parseInt(u[1],10)),void c.trigger("data",l);if(u=/^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(e))return l={type:"tag",tagType:"discontinuity-sequence"},u[1]&&(l.number=parseInt(u[1],10)),void c.trigger("data",l);if(u=/^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(e))return l={type:"tag",tagType:"playlist-type"},u[1]&&(l.playlistType=u[1]),void c.trigger("data",l);if(u=/^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(e))return l={type:"tag",tagType:"byterange"},u[1]&&(l.length=parseInt(u[1],10)),u[2]&&(l.offset=parseInt(u[2],10)),void c.trigger("data",l);if(u=/^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(e))return l={type:"tag",tagType:"allow-cache"},u[1]&&(l.allowed=!/NO/.test(u[1])),void c.trigger("data",l);if(u=/^#EXT-X-MAP:?(.*)$/.exec(e)){if(l={type:"tag",tagType:"map"},u[1]){var i=bs(u[1]);if(i.URI&&(l.uri=i.URI),i.BYTERANGE){var n=i.BYTERANGE.split("@"),r=n[0],a=n[1];l.byterange={},r&&(l.byterange.length=parseInt(r,10)),a&&(l.byterange.offset=parseInt(a,10))}}c.trigger("data",l)}else if(u=/^#EXT-X-STREAM-INF:?(.*)$/.exec(e)){if(l={type:"tag",tagType:"stream-inf"},u[1]){if(l.attributes=bs(u[1]),l.attributes.RESOLUTION){var s=l.attributes.RESOLUTION.split("x"),o={};s[0]&&(o.width=parseInt(s[0],10)),s[1]&&(o.height=parseInt(s[1],10)),l.attributes.RESOLUTION=o}l.attributes.BANDWIDTH&&(l.attributes.BANDWIDTH=parseInt(l.attributes.BANDWIDTH,10)),l.attributes["PROGRAM-ID"]&&(l.attributes["PROGRAM-ID"]=parseInt(l.attributes["PROGRAM-ID"],10))}c.trigger("data",l)}else{if(u=/^#EXT-X-MEDIA:?(.*)$/.exec(e))return l={type:"tag",tagType:"media"},u[1]&&(l.attributes=bs(u[1])),void c.trigger("data",l);if(u=/^#EXT-X-ENDLIST/.exec(e))c.trigger("data",{type:"tag",tagType:"endlist"});else if(u=/^#EXT-X-DISCONTINUITY/.exec(e))c.trigger("data",{type:"tag",tagType:"discontinuity"});else{if(u=/^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(e))return l={type:"tag",tagType:"program-date-time"},u[1]&&(l.dateTimeString=u[1],l.dateTimeObject=new Date(u[1])),void c.trigger("data",l);if(u=/^#EXT-X-KEY:?(.*)$/.exec(e))return l={type:"tag",tagType:"key"},u[1]&&(l.attributes=bs(u[1]),l.attributes.IV&&("0x"===l.attributes.IV.substring(0,2).toLowerCase()&&(l.attributes.IV=l.attributes.IV.substring(2)),l.attributes.IV=l.attributes.IV.match(/.{8}/g),l.attributes.IV[0]=parseInt(l.attributes.IV[0],16),l.attributes.IV[1]=parseInt(l.attributes.IV[1],16),l.attributes.IV[2]=parseInt(l.attributes.IV[2],16),l.attributes.IV[3]=parseInt(l.attributes.IV[3],16),l.attributes.IV=new Uint32Array(l.attributes.IV))),void c.trigger("data",l);if(u=/^#EXT-X-START:?(.*)$/.exec(e))return l={type:"tag",tagType:"start"},u[1]&&(l.attributes=bs(u[1]),l.attributes["TIME-OFFSET"]=parseFloat(l.attributes["TIME-OFFSET"]),l.attributes.PRECISE=/YES/.test(l.attributes.PRECISE)),void c.trigger("data",l);if(u=/^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(e))return l={type:"tag",tagType:"cue-out-cont"},u[1]?l.data=u[1]:l.data="",void c.trigger("data",l);if(u=/^#EXT-X-CUE-OUT:?(.*)?$/.exec(e))return l={type:"tag",tagType:"cue-out"},u[1]?l.data=u[1]:l.data="",void c.trigger("data",l);if(u=/^#EXT-X-CUE-IN:?(.*)?$/.exec(e))return l={type:"tag",tagType:"cue-in"},u[1]?l.data=u[1]:l.data="",void c.trigger("data",l);c.trigger("data",{type:"tag",data:e.slice(4)})}}}else c.trigger("data",{type:"comment",text:e.slice(1)})}):this.trigger("data",{type:"uri",uri:n}))},i.addParser=function(e){var t=this,i=e.expression,n=e.customType,r=e.dataParser,a=e.segment;"function"!=typeof r&&(r=function(e){return e}),this.customParsers.push(function(e){if(i.exec(e))return t.trigger("data",{type:"custom",data:r(e),customType:n,segment:a}),!0})},i.addTagMapper=function(e){var t=e.expression,i=e.map;this.tagMappers.push(function(e){return t.test(e)?i(e):e})},e}(Ts);function Cs(e){return!!e&&"object"==typeof e}function Es(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return t.reduce(function(t,i){return Object.keys(i).forEach(function(e){Array.isArray(t[e])&&Array.isArray(i[e])?t[e]=t[e].concat(i[e]):Cs(t[e])&&Cs(i[e])?t[e]=Es(t[e],i[e]):t[e]=i[e]}),t},{})}function ws(e){return e.reduce(function(e,t){return e.concat(t)},[])}function As(e){if(!e.length)return[];for(var t=[],i=0;i<e.length;i++)t.push(e[i]);return t}var Ps=function(t){function e(){var e;(e=t.call(this)||this).lineStream=new Ss,e.parseStream=new ks,e.lineStream.pipe(e.parseStream);var r,a,s=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e),o=[],u={},l={AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},c=0;return e.manifest={allowCache:!0,discontinuityStarts:[],segments:[]},e.parseStream.on("data",function(t){var i,n;({tag:function(){({"allow-cache":function(){this.manifest.allowCache=t.allowed,"allowed"in t||(this.trigger("info",{message:"defaulting allowCache to YES"}),this.manifest.allowCache=!0)},byterange:function(){var e={};"length"in t&&((u.byterange=e).length=t.length,"offset"in t||(this.trigger("info",{message:"defaulting offset to zero"}),t.offset=0)),"offset"in t&&((u.byterange=e).offset=t.offset)},endlist:function(){this.manifest.endList=!0},inf:function(){"mediaSequence"in this.manifest||(this.manifest.mediaSequence=0,this.trigger("info",{message:"defaulting media sequence to zero"})),"discontinuitySequence"in this.manifest||(this.manifest.discontinuitySequence=0,this.trigger("info",{message:"defaulting discontinuity sequence to zero"})),0<t.duration&&(u.duration=t.duration),0===t.duration&&(u.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=o},key:function(){if(t.attributes)if("NONE"!==t.attributes.METHOD)if(t.attributes.URI){if("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"===t.attributes.KEYFORMAT){return-1===["SAMPLE-AES","SAMPLE-AES-CTR","SAMPLE-AES-CENC"].indexOf(t.attributes.METHOD)?void this.trigger("warn",{message:"invalid key method provided for Widevine"}):("SAMPLE-AES-CENC"===t.attributes.METHOD&&this.trigger("warn",{message:"SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"}),"data:text/plain;base64,"!==t.attributes.URI.substring(0,23)?void this.trigger("warn",{message:"invalid key URI provided for Widevine"}):t.attributes.KEYID&&"0x"===t.attributes.KEYID.substring(0,2)?void(this.manifest.contentProtection={"com.widevine.alpha":{attributes:{schemeIdUri:t.attributes.KEYFORMAT,keyId:t.attributes.KEYID.substring(2)},pssh:function(e){for(var t=v.atob(e||""),i=new Uint8Array(t.length),n=0;n<t.length;n++)i[n]=t.charCodeAt(n);return i}(t.attributes.URI.split(",")[1])}}):void this.trigger("warn",{message:"invalid key ID provided for Widevine"}))}t.attributes.METHOD||this.trigger("warn",{message:"defaulting key method to AES-128"}),a={method:t.attributes.METHOD||"AES-128",uri:t.attributes.URI},"undefined"!=typeof t.attributes.IV&&(a.iv=t.attributes.IV)}else this.trigger("warn",{message:"ignoring key declaration without URI"});else a=null;else this.trigger("warn",{message:"ignoring key declaration without attribute list"})},"media-sequence":function(){isFinite(t.number)?this.manifest.mediaSequence=t.number:this.trigger("warn",{message:"ignoring invalid media sequence: "+t.number})},"discontinuity-sequence":function(){isFinite(t.number)?(this.manifest.discontinuitySequence=t.number,c=t.number):this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+t.number})},"playlist-type":function(){/VOD|EVENT/.test(t.playlistType)?this.manifest.playlistType=t.playlistType:this.trigger("warn",{message:"ignoring unknown playlist type: "+t.playlist})},map:function(){r={},t.uri&&(r.uri=t.uri),t.byterange&&(r.byterange=t.byterange)},"stream-inf":function(){this.manifest.playlists=o,this.manifest.mediaGroups=this.manifest.mediaGroups||l,t.attributes?(u.attributes||(u.attributes={}),vs(u.attributes,t.attributes)):this.trigger("warn",{message:"ignoring empty stream-inf attributes"})},media:function(){if(this.manifest.mediaGroups=this.manifest.mediaGroups||l,t.attributes&&t.attributes.TYPE&&t.attributes["GROUP-ID"]&&t.attributes.NAME){var e=this.manifest.mediaGroups[t.attributes.TYPE];e[t.attributes["GROUP-ID"]]=e[t.attributes["GROUP-ID"]]||{},i=e[t.attributes["GROUP-ID"]],(n={default:/yes/i.test(t.attributes.DEFAULT)}).default?n.autoselect=!0:n.autoselect=/yes/i.test(t.attributes.AUTOSELECT),t.attributes.LANGUAGE&&(n.language=t.attributes.LANGUAGE),t.attributes.URI&&(n.uri=t.attributes.URI),t.attributes["INSTREAM-ID"]&&(n.instreamId=t.attributes["INSTREAM-ID"]),t.attributes.CHARACTERISTICS&&(n.characteristics=t.attributes.CHARACTERISTICS),t.attributes.FORCED&&(n.forced=/yes/i.test(t.attributes.FORCED)),i[t.attributes.NAME]=n}else this.trigger("warn",{message:"ignoring incomplete or missing media group"})},discontinuity:function(){c+=1,u.discontinuity=!0,this.manifest.discontinuityStarts.push(o.length)},"program-date-time":function(){"undefined"==typeof this.manifest.dateTimeString&&(this.manifest.dateTimeString=t.dateTimeString,this.manifest.dateTimeObject=t.dateTimeObject),u.dateTimeString=t.dateTimeString,u.dateTimeObject=t.dateTimeObject},targetduration:function(){!isFinite(t.duration)||t.duration<0?this.trigger("warn",{message:"ignoring invalid target duration: "+t.duration}):this.manifest.targetDuration=t.duration},totalduration:function(){!isFinite(t.duration)||t.duration<0?this.trigger("warn",{message:"ignoring invalid total duration: "+t.duration}):this.manifest.totalDuration=t.duration},start:function(){t.attributes&&!isNaN(t.attributes["TIME-OFFSET"])?this.manifest.start={timeOffset:t.attributes["TIME-OFFSET"],precise:t.attributes.PRECISE}:this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"})},"cue-out":function(){u.cueOut=t.data},"cue-out-cont":function(){u.cueOutCont=t.data},"cue-in":function(){u.cueIn=t.data}}[t.tagType]||function(){}).call(s)},uri:function(){u.uri=t.uri,o.push(u),!this.manifest.targetDuration||"duration"in u||(this.trigger("warn",{message:"defaulting segment duration to the target duration"}),u.duration=this.manifest.targetDuration),a&&(u.key=a),u.timeline=c,r&&(u.map=r),u={}},comment:function(){},custom:function(){t.segment?(u.custom=u.custom||{},u.custom[t.customType]=t.data):(this.manifest.custom=this.manifest.custom||{},this.manifest.custom[t.customType]=t.data)}})[t.type].call(s)}),e}_s(e,t);var i=e.prototype;return i.push=function(e){this.lineStream.push(e)},i.end=function(){this.lineStream.push("\n")},i.addParser=function(e){this.parseStream.addParser(e)},i.addTagMapper=function(e){this.parseStream.addTagMapper(e)},e}(Ts),Is="INVALID_NUMBER_OF_PERIOD",Ls="DASH_EMPTY_MANIFEST",Os="DASH_INVALID_XML",xs="NO_BASE_URL",Ds="SEGMENT_TIME_UNSPECIFIED",Us="UNSUPPORTED_UTC_TIMING_SCHEME";
14
+ /*! @name mpd-parser @version 0.8.1 @license Apache-2.0 */function Rs(e,t){return/^[a-z]+:/i.test(t)?t:(/\/\//i.test(e)||(e=eo.buildAbsoluteURL(v.location.href,e)),eo.buildAbsoluteURL(e,t))}function Ms(e){var t=e.baseUrl,i=void 0===t?"":t,n=e.source,r=void 0===n?"":n,a=e.range,s=void 0===a?"":a,o=e.indexRange,u=void 0===o?"":o,l={uri:r,resolvedUri:Rs(i||"",r)};if(s||u){var c=(s||u).split("-"),h=parseInt(c[0],10),d=parseInt(c[1],10);l.byterange={length:d-h+1,offset:h}}return l}function Ns(e){var t=e.type,i=void 0===t?"static":t,n=e.duration,r=e.timescale,a=void 0===r?1:r,s=e.sourceDuration,o=to[i](e),u=function(e,t){for(var i=[],n=e;n<t;n++)i.push(n);return i}(o.start,o.end).map(function(o){return function(e,t){var i=o.duration,n=o.timescale,r=void 0===n?1:n,a=o.periodIndex,s=o.startNumber;return{number:(void 0===s?1:s)+e,duration:i/r,timeline:a,time:t*i}}}(e));if("static"===i){var l=u.length-1;u[l].duration=s-n/a*l}return u}function Bs(e){var t=e.baseUrl,i=e.initialization,n=void 0===i?{}:i,r=e.sourceDuration,a=e.timescale,s=void 0===a?1:a,o=e.indexRange,u=void 0===o?"":o,l=e.duration;if(!t)throw new Error(xs);var c=Ms({baseUrl:t,source:n.sourceURL,range:n.range}),h=Ms({baseUrl:t,source:t,indexRange:u});if(h.map=c,l){var d=Ns(e);d.length&&(h.duration=d[0].duration,h.timeline=d[0].timeline)}else r&&(h.duration=r/s,h.timeline=0);return h.number=0,[h]}function js(e,t,i){for(var n=e.sidx.map?e.sidx.map:null,r=e.sidx.duration,a=e.timeline||0,s=e.sidx.byterange,o=s.offset+s.length,u=t.timescale,l=t.references.filter(function(e){return 1!==e.referenceType}),c=[],h=o+t.firstOffset,d=0;d<l.length;d++){var p=t.references[d],f=p.referencedSize,m=p.subsegmentDuration,g=Bs({baseUrl:i,timescale:u,timeline:a,periodIndex:a,duration:m,sourceDuration:r,indexRange:h+"-"+(h+f-1)})[0];n&&(g.map=n),c.push(g),h+=f}return e.segments=c,e}function Fs(e){return function(t){return Object.keys(t).map(function(e){return t[e]})}(e.reduce(function(e,t){var i,n=t.attributes.id+(t.attributes.lang||"");e[n]?(t.segments[0]&&(t.segments[0].discontinuity=!0),(i=e[n].segments).push.apply(i,t.segments),t.attributes.contentProtection&&(e[n].attributes.contentProtection=t.attributes.contentProtection)):e[n]=t;return e},{})).map(function(e){return e.discontinuityStarts=function(e,n){return e.reduce(function(e,t,i){return t[n]&&e.push(i),e},[])}(e.segments,"discontinuity"),e})}function Hs(e,t){if(void 0===t&&(t={}),!Object.keys(t).length)return e;for(var i in e){var n=e[i];if(n.sidx){var r=n.sidx.uri+"-"+(s=n.sidx.byterange,void 0,o=s.offset+s.length-1,s.offset+"-"+o),a=t[r]&&t[r].sidx;n.sidx&&a&&js(n,a,n.sidx.resolvedUri)}}var s,o;return e}function Vs(e){var t,i=e.attributes,n=e.segments,r=e.sidx,a={attributes:(t={NAME:i.id,AUDIO:"audio",SUBTITLES:"subs",RESOLUTION:{width:i.width,height:i.height},CODECS:i.codecs,BANDWIDTH:i.bandwidth},t["PROGRAM-ID"]=1,t),uri:"",endList:"static"===(i.type||"static"),timeline:i.periodIndex,resolvedUri:"",targetDuration:i.duration,segments:n,mediaSequence:n.length?n[0].number:1};return i.contentProtection&&(a.contentProtection=i.contentProtection),r&&(a.sidx=r),a}function qs(e,t){var i;if(void 0===t&&(t={}),!e.length)return{};var n=e[0].attributes,r=n.sourceDuration,a=n.minimumUpdatePeriod,s=void 0===a?0:a,o=Fs(e.filter(function(e){var t=e.attributes;return"video/mp4"===t.mimeType||"video"===t.contentType})).map(Vs),u=Fs(e.filter(function(e){var t=e.attributes;return"audio/mp4"===t.mimeType||"audio"===t.contentType})),l=e.filter(function(e){var t=e.attributes;return"text/vtt"===t.mimeType||"text"===t.contentType}),c={allowCache:!0,discontinuityStarts:[],segments:[],endList:!0,mediaGroups:(i={AUDIO:{},VIDEO:{}},i["CLOSED-CAPTIONS"]={},i.SUBTITLES={},i),uri:"",duration:r,playlists:Hs(o,t),minimumUpdatePeriod:1e3*s};return u.length&&(c.mediaGroups.AUDIO.audio=function(e,s){var o;void 0===s&&(s={});var t=e.reduce(function(e,t){var i=t.attributes.role&&t.attributes.role.value||"",n=t.attributes.lang||"",r="main";if(n){var a=i?" ("+i+")":"";r=t.attributes.lang+a}return e[r]&&e[r].playlists[0].attributes.BANDWIDTH>t.attributes.bandwidth||(e[r]={language:n,autoselect:!0,default:"main"===i,playlists:Hs([function(e){var t,i=e.attributes,n=e.segments,r=e.sidx,a={attributes:(t={NAME:i.id,BANDWIDTH:i.bandwidth,CODECS:i.codecs},t["PROGRAM-ID"]=1,t),uri:"",endList:"static"===(i.type||"static"),timeline:i.periodIndex,resolvedUri:"",targetDuration:i.duration,segments:n,mediaSequence:n.length?n[0].number:1};return i.contentProtection&&(a.contentProtection=i.contentProtection),r&&(a.sidx=r),a}(t)],s),uri:""},"undefined"==typeof o&&"main"===i&&((o=t).default=!0)),e},{});o||(t[Object.keys(t)[0]].default=!0);return t}(u,t)),l.length&&(c.mediaGroups.SUBTITLES.subs=function(e,n){return void 0===n&&(n={}),e.reduce(function(e,t){var i=t.attributes.lang||"text";return e[i]||(e[i]={language:i,default:!1,autoselect:!1,playlists:Hs([function(e){var t,i=e.attributes,n=e.segments;return"undefined"==typeof n&&(n=[{uri:i.baseUrl,timeline:i.periodIndex,resolvedUri:i.baseUrl||"",duration:i.sourceDuration,number:0}],i.duration=i.sourceDuration),{attributes:(t={NAME:i.id,BANDWIDTH:i.bandwidth},t["PROGRAM-ID"]=1,t),uri:"",endList:"static"===(i.type||"static"),timeline:i.periodIndex,resolvedUri:i.baseUrl||"",targetDuration:i.duration,segments:n,mediaSequence:n.length?n[0].number:1}}(t)],n),uri:""}),e},{})}(l,t)),c}function Ws(e,t){for(var i,n,r,a,s,o,u,l,c,h,d,p,f=e.type,m=void 0===f?"static":f,g=e.minimumUpdatePeriod,y=void 0===g?0:g,v=e.media,_=void 0===v?"":v,b=e.sourceDuration,T=e.timescale,S=void 0===T?1:T,k=e.startNumber,C=void 0===k?1:k,E=e.periodIndex,w=[],A=-1,P=0;P<t.length;P++){var I=t[P],L=I.d,O=I.r||0,x=I.t||0;A<0&&(A=x),x&&A<x&&(A=x);var D=void 0;if(O<0){var U=P+1;D=U===t.length?"dynamic"===m&&0<y&&0<_.indexOf("$Number$")?(n=A,r=L,void 0,a=(i=e).NOW,s=i.clientOffset,o=i.availabilityStartTime,u=i.timescale,l=void 0===u?1:u,c=i.start,h=void 0===c?0:c,d=i.minimumUpdatePeriod,p=(a+s)/1e3+(void 0===d?0:d)-(o+h),Math.ceil((p*l-n)/r)):(b*S-A)/L:(t[U].t-A)/L}else D=O+1;for(var R=C+w.length+D,M=C+w.length;M<R;)w.push({number:M,duration:L/S,time:A,timeline:E}),A+=L,M++}return w}function zs(e,t){return e.replace(io,function(a){return function(e,t,i,n){if("$$"===e)return"$";if("undefined"==typeof a[t])return e;var r=""+a[t];return"RepresentationID"===t?r:(n=i?parseInt(n,10):1)<=r.length?r:new Array(n-r.length+1).join("0")+r}}(t))}function $s(i,e){var n={RepresentationID:i.id,Bandwidth:i.bandwidth||0},t=i.initialization,r=void 0===t?{sourceURL:"",range:""}:t,a=Ms({baseUrl:i.baseUrl,source:zs(r.sourceURL,n),range:r.range});return function(e,t){return e.duration||t?e.duration?Ns(e):Ws(e,t):[{number:e.startNumber||1,duration:e.sourceDuration,time:0,timeline:e.periodIndex}]}(i,e).map(function(e){n.Number=e.number,n.Time=e.time;var t=zs(i.media||"",n);return{uri:t,timeline:e.timeline,duration:e.duration,resolvedUri:Rs(i.baseUrl||"",t),map:a,number:e.number}})}function Gs(t,e){var i=t.duration,n=t.segmentUrls,r=void 0===n?[]:n;if(!i&&!e||i&&e)throw new Error(Ds);var a,s=r.map(function(e){return function(e,t){var i=e.baseUrl,n=e.initialization,r=void 0===n?{}:n,a=Ms({baseUrl:i,source:r.sourceURL,range:r.range}),s=Ms({baseUrl:i,source:t.media,range:t.mediaRange});return s.map=a,s}(t,e)});return i&&(a=Ns(t)),e&&(a=Ws(t,e)),a.map(function(e,t){if(s[t]){var i=s[t];return i.timeline=e.timeline,i.duration=e.duration,i.number=e.number,i}}).filter(function(e){return e})}function Xs(e){var t,i,n=e.attributes,r=e.segmentInfo;r.template?(i=$s,t=Es(n,r.template)):r.base?(i=Bs,t=Es(n,r.base)):r.list&&(i=Gs,t=Es(n,r.list));var a={attributes:n};if(!i)return a;var s=i(t,r.timeline);if(t.duration){var o=t,u=o.duration,l=o.timescale,c=void 0===l?1:l;t.duration=u/c}else s.length?t.duration=s.reduce(function(e,t){return Math.max(e,Math.ceil(t.duration))},0):t.duration=0;return a.attributes=t,a.segments=s,r.base&&t.indexRange&&(a.sidx=s[0],a.segments=[]),a}function Ks(e,t){return As(e.childNodes).filter(function(e){return e.tagName===t})}function Ys(e){return e.textContent.trim()}function Qs(e){var t=/P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/.exec(e);if(!t)return 0;var i=t.slice(1),n=i[0],r=i[1],a=i[2],s=i[3],o=i[4],u=i[5];return 31536e3*parseFloat(n||0)+2592e3*parseFloat(r||0)+86400*parseFloat(a||0)+3600*parseFloat(s||0)+60*parseFloat(o||0)+parseFloat(u||0)}function Js(e){return e&&e.attributes?As(e.attributes).reduce(function(e,t){var i=no[t.name]||no.DEFAULT;return e[t.name]=i(t.value),e},{}):{}}var Zs,eo=(function(e,t){var i,c,n,r,h;i=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/?#]*)?((?:[^\/\?#]*\/)*.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,c=/^([^\/?#]*)(.*)$/,n=/(?:\/|^)\.(?=\/)/g,r=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,h={buildAbsoluteURL:function(e,t,i){if(i=i||{},e=e.trim(),!(t=t.trim())){if(!i.alwaysNormalize)return e;var n=h.parseURL(e);if(!n)throw new Error("Error trying to parse base URL.");return n.path=h.normalizePath(n.path),h.buildURLFromParts(n)}var r=h.parseURL(t);if(!r)throw new Error("Error trying to parse relative URL.");if(r.scheme)return i.alwaysNormalize?(r.path=h.normalizePath(r.path),h.buildURLFromParts(r)):t;var a=h.parseURL(e);if(!a)throw new Error("Error trying to parse base URL.");if(!a.netLoc&&a.path&&"/"!==a.path[0]){var s=c.exec(a.path);a.netLoc=s[1],a.path=s[2]}a.netLoc&&!a.path&&(a.path="/");var o={scheme:a.scheme,netLoc:r.netLoc,path:null,params:r.params,query:r.query,fragment:r.fragment};if(!r.netLoc&&(o.netLoc=a.netLoc,"/"!==r.path[0]))if(r.path){var u=a.path,l=u.substring(0,u.lastIndexOf("/")+1)+r.path;o.path=h.normalizePath(l)}else o.path=a.path,r.params||(o.params=a.params,r.query||(o.query=a.query));return null===o.path&&(o.path=i.alwaysNormalize?h.normalizePath(r.path):r.path),h.buildURLFromParts(o)},parseURL:function(e){var t=i.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(n,"");e.length!==(e=e.replace(r,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=h}(Zs={exports:{}},Zs.exports),Zs.exports),to={static:function(e){var t=e.duration,i=e.timescale,n=void 0===i?1:i,r=e.sourceDuration;return{start:0,end:Math.ceil(r/(t/n))}},dynamic:function(e){var t=e.NOW,i=e.clientOffset,n=e.availabilityStartTime,r=e.timescale,a=void 0===r?1:r,s=e.duration,o=e.start,u=void 0===o?0:o,l=e.minimumUpdatePeriod,c=void 0===l?0:l,h=e.timeShiftBufferDepth,d=void 0===h?1/0:h,p=(t+i)/1e3,f=n+u,m=p+c-f,g=Math.ceil(m*a/s),y=Math.floor((p-f-d)*a/s),v=Math.floor((p-f)*a/s);return{start:Math.max(0,y),end:Math.min(g,v)}}},io=/\$([A-z]*)(?:(%0)([0-9]+)d)?\$/g,no={mediaPresentationDuration:function(e){return Qs(e)},availabilityStartTime:function(e){return function(e){return/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(e)&&(e+="Z"),Date.parse(e)}(e)/1e3},minimumUpdatePeriod:function(e){return Qs(e)},timeShiftBufferDepth:function(e){return Qs(e)},start:function(e){return Qs(e)},width:function(e){return parseInt(e,10)},height:function(e){return parseInt(e,10)},bandwidth:function(e){return parseInt(e,10)},startNumber:function(e){return parseInt(e,10)},timescale:function(e){return parseInt(e,10)},duration:function(e){var t=parseInt(e,10);return isNaN(t)?Qs(e):t},d:function(e){return parseInt(e,10)},t:function(e){return parseInt(e,10)},r:function(e){return parseInt(e,10)},DEFAULT:function(e){return e}};function ro(e,i){return i.length?ws(e.map(function(t){return i.map(function(e){return Rs(t,Ys(e))})})):e}function ao(e){var t=Ks(e,"SegmentTemplate")[0],i=Ks(e,"SegmentList")[0],n=i&&Ks(i,"SegmentURL").map(function(e){return Es({tag:"SegmentURL"},Js(e))}),r=Ks(e,"SegmentBase")[0],a=i||t,s=a&&Ks(a,"SegmentTimeline")[0],o=i||r||t,u=o&&Ks(o,"Initialization")[0],l=t&&Js(t);l&&u?l.initialization=u&&Js(u):l&&l.initialization&&(l.initialization={sourceURL:l.initialization});var c={template:l,timeline:s&&Ks(s,"S").map(function(e){return Js(e)}),list:i&&Es(Js(i),{segmentUrls:n,initialization:Js(u)}),base:r&&Es(Js(r),{initialization:Js(u)})};return Object.keys(c).forEach(function(e){c[e]||delete c[e]}),c}function so(e){return e.reduce(function(e,t){var i=Js(t),n=_o[i.schemeIdUri];if(n){e[n]={attributes:i};var r=Ks(t,"cenc:pssh")[0];if(r){var a=Ys(r),s=a&&function(e){for(var t=v.atob(e),i=new Uint8Array(t.length),n=0;n<t.length;n++)i[n]=t.charCodeAt(n);return i}(a);e[n].pssh=s}}return e},{})}function oo(c,h,d){return function(e){var t=Js(e),i=ro(h,Ks(e,"BaseURL")),n=Ks(e,"Role")[0],r={role:Js(n)},a=Es(c,t,r),s=so(Ks(e,"ContentProtection"));Object.keys(s).length&&(a=Es(a,{contentProtection:s}));var o=ao(e),u=Ks(e,"Representation"),l=Es(d,o);return ws(u.map(function(a,s,o){return function(e){var t=Ks(e,"BaseURL"),i=ro(s,t),n=Es(a,Js(e)),r=ao(e);return i.map(function(e){return{segmentInfo:Es(o,r),attributes:Es(n,{baseUrl:e})}})}}(a,i,l)))}}function uo(e,t){void 0===t&&(t={});var i=t,n=i.manifestUri,r=void 0===n?"":n,a=i.NOW,s=void 0===a?Date.now():a,o=i.clientOffset,u=void 0===o?0:o,l=Ks(e,"Period");if(!l.length)throw new Error(Is);var c=Js(e),h=ro([r],Ks(e,"BaseURL"));return c.sourceDuration=c.mediaPresentationDuration||0,c.NOW=s,c.clientOffset=u,ws(l.map(function(l,c){return function(e,t){var i=ro(c,Ks(e,"BaseURL")),n=Js(e),r=parseInt(n.id,10),a=v.isNaN(r)?t:r,s=Es(l,{periodIndex:a}),o=Ks(e,"AdaptationSet"),u=ao(e);return ws(o.map(oo(s,i,u)))}}(c,h)))}function lo(e){if(""===e)throw new Error(Ls);var t=(new v.DOMParser).parseFromString(e,"application/xml"),i=t&&"MPD"===t.documentElement.tagName?t.documentElement:null;if(!i||i&&0<i.getElementsByTagName("parsererror").length)throw new Error(Os);return i}function co(e,t){return void 0===t&&(t={}),qs(function(e){return e.map(Xs)}(uo(lo(e),t)),t.sidxMapping)}function ho(e){return function(e){var t=Ks(e,"UTCTiming")[0];if(!t)return null;var i=Js(t);switch(i.schemeIdUri){case"urn:mpeg:dash:utc:http-head:2014":case"urn:mpeg:dash:utc:http-head:2012":i.method="HEAD";break;case"urn:mpeg:dash:utc:http-xsdate:2014":case"urn:mpeg:dash:utc:http-iso:2014":case"urn:mpeg:dash:utc:http-xsdate:2012":case"urn:mpeg:dash:utc:http-iso:2012":i.method="GET";break;case"urn:mpeg:dash:utc:direct:2014":case"urn:mpeg:dash:utc:direct:2012":i.method="DIRECT",i.value=Date.parse(i.value);break;case"urn:mpeg:dash:utc:http-ntp:2014":case"urn:mpeg:dash:utc:ntp:2014":case"urn:mpeg:dash:utc:sntp:2014":default:throw new Error(Us)}return i}(lo(e))}var po,fo,mo,go,yo,vo,_o={"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},bo=function(e){return e>>>0},To=function(e){return("00"+e.toString(16)).slice(-2)};mo=function(e){return po(e,["moov","trak"]).reduce(function(e,t){var i,n,r,a,s;return(i=po(t,["tkhd"])[0])?(n=i[0],a=bo(i[r=0===n?12:20]<<24|i[r+1]<<16|i[r+2]<<8|i[r+3]),(s=po(t,["mdia","mdhd"])[0])?(r=0===(n=s[0])?12:20,e[a]=bo(s[r]<<24|s[r+1]<<16|s[r+2]<<8|s[r+3]),e):null):null},{})},go=function(r,e){var t,i,n;return t=po(e,["moof","traf"]),i=[].concat.apply([],t.map(function(n){return po(n,["tfhd"]).map(function(e){var t,i;return t=bo(e[4]<<24|e[5]<<16|e[6]<<8|e[7]),i=r[t]||9e4,(po(n,["tfdt"]).map(function(e){var t,i;return t=e[0],i=bo(e[4]<<24|e[5]<<16|e[6]<<8|e[7]),1===t&&(i*=Math.pow(2,32),i+=bo(e[8]<<24|e[9]<<16|e[10]<<8|e[11])),i})[0]||1/0)/i})})),n=Math.min.apply(null,i),isFinite(n)?n:0},yo=function(e){var t=po(e,["moov","trak"]),o=[];return t.forEach(function(e){var t=po(e,["mdia","hdlr"]),s=po(e,["tkhd"]);t.forEach(function(e,t){var i,n,r=fo(e.subarray(8,12)),a=s[t];"vide"===r&&(n=0===(i=new DataView(a.buffer,a.byteOffset,a.byteLength)).getUint8(0)?i.getUint32(12):i.getUint32(20),o.push(n))})}),o},vo=function(e){var t=po(e,["moov","trak"]),p=[];return t.forEach(function(e){var t,i,n={},r=po(e,["tkhd"])[0];r&&(i=(t=new DataView(r.buffer,r.byteOffset,r.byteLength)).getUint8(0),n.id=0===i?t.getUint32(12):t.getUint32(20));var a=po(e,["mdia","hdlr"])[0];if(a){var s=fo(a.subarray(8,12));n.type="vide"===s?"video":"soun"===s?"audio":s}var o=po(e,["mdia","minf","stbl","stsd"])[0];if(o){var u=o.subarray(8);n.codec=fo(u.subarray(4,8));var l,c=po(u,[n.codec])[0];c&&(/^[a-z]vc[1-9]$/i.test(n.codec)?(l=c.subarray(78),"avcC"===fo(l.subarray(4,8))&&11<l.length?(n.codec+=".",n.codec+=To(l[9]),n.codec+=To(l[10]),n.codec+=To(l[11])):n.codec="avc1.4d400d"):/^mp4[a,v]$/i.test(n.codec)&&(l=c.subarray(28),"esds"===fo(l.subarray(4,8))&&20<l.length&&0!==l[19]?(n.codec+="."+To(l[19]),n.codec+="."+To(l[20]>>>2&63).replace(/^0/,"")):n.codec="mp4a.40.2"))}var h=po(e,["mdia","mdhd"])[0];if(h&&r){var d=0===i?12:20;n.timescale=bo(h[d]<<24|h[1+d]<<16|h[2+d]<<8|h[3+d])}p.push(n)}),p};function So(e){return new Date(1e3*e-20828448e5)}function ko(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}function Co(){this.init=function(){var a={};this.on=function(e,t){a[e]||(a[e]=[]),a[e]=a[e].concat(t)},this.off=function(e,t){var i;return!!a[e]&&(i=a[e].indexOf(t),a[e]=a[e].slice(),a[e].splice(i,1),-1<i)},this.trigger=function(e){var t,i,n,r;if(t=a[e])if(2===arguments.length)for(n=t.length,i=0;i<n;++i)t[i].call(this,arguments[1]);else{for(r=[],i=arguments.length,i=1;i<arguments.length;++i)r.push(arguments[i]);for(n=t.length,i=0;i<n;++i)t[i].apply(this,r)}},this.dispose=function(){a={}}}}var Eo,wo,Ao={findBox:po=function(e,t){var i,n,r,a,s,o=[];if(!t.length)return null;for(i=0;i<e.byteLength;)n=bo(e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3]),r=fo(e.subarray(i+4,i+8)),a=1<n?i+n:e.byteLength,r===t[0]&&(1===t.length?o.push(e.subarray(i+8,a)):(s=po(e.subarray(i+8,a),t.slice(1))).length&&(o=o.concat(s))),i=a;return o},parseType:fo=function(e){var t="";return t+=String.fromCharCode(e[0]),t+=String.fromCharCode(e[1]),t+=String.fromCharCode(e[2]),t+=String.fromCharCode(e[3])},timescale:mo,startTime:go,videoTrackIds:yo,tracks:vo},Po=Ao.parseType,Io={avc1:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);return{dataReferenceIndex:t.getUint16(6),width:t.getUint16(24),height:t.getUint16(26),horizresolution:t.getUint16(28)+t.getUint16(30)/16,vertresolution:t.getUint16(32)+t.getUint16(34)/16,frameCount:t.getUint16(40),depth:t.getUint16(74),config:Eo(e.subarray(78,e.byteLength))}},avcC:function(e){var t,i,n,r,a=new DataView(e.buffer,e.byteOffset,e.byteLength),s={configurationVersion:e[0],avcProfileIndication:e[1],profileCompatibility:e[2],avcLevelIndication:e[3],lengthSizeMinusOne:3&e[4],sps:[],pps:[]},o=31&e[5];for(n=6,r=0;r<o;r++)i=a.getUint16(n),n+=2,s.sps.push(new Uint8Array(e.subarray(n,n+i))),n+=i;for(t=e[n],n++,r=0;r<t;r++)i=a.getUint16(n),n+=2,s.pps.push(new Uint8Array(e.subarray(n,n+i))),n+=i;return s},btrt:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);return{bufferSizeDB:t.getUint32(0),maxBitrate:t.getUint32(4),avgBitrate:t.getUint32(8)}},esds:function(e){return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),esId:e[6]<<8|e[7],streamPriority:31&e[8],decoderConfig:{objectProfileIndication:e[11],streamType:e[12]>>>2&63,bufferSize:e[13]<<16|e[14]<<8|e[15],maxBitrate:e[16]<<24|e[17]<<16|e[18]<<8|e[19],avgBitrate:e[20]<<24|e[21]<<16|e[22]<<8|e[23],decoderConfigDescriptor:{tag:e[24],length:e[25],audioObjectType:e[26]>>>3&31,samplingFrequencyIndex:(7&e[26])<<1|e[27]>>>7&1,channelConfiguration:e[27]>>>3&15}}}},ftyp:function(e){for(var t=new DataView(e.buffer,e.byteOffset,e.byteLength),i={majorBrand:Po(e.subarray(0,4)),minorVersion:t.getUint32(4),compatibleBrands:[]},n=8;n<e.byteLength;)i.compatibleBrands.push(Po(e.subarray(n,n+4))),n+=4;return i},dinf:function(e){return{boxes:Eo(e)}},dref:function(e){return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),dataReferences:Eo(e.subarray(8))}},hdlr:function(e){var t={version:new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0),flags:new Uint8Array(e.subarray(1,4)),handlerType:Po(e.subarray(8,12)),name:""},i=8;for(i=24;i<e.byteLength;i++){if(0===e[i]){i++;break}t.name+=String.fromCharCode(e[i])}return t.name=decodeURIComponent(escape(t.name)),t},mdat:function(e){return{byteLength:e.byteLength,nals:function(e){var t,i,n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=[];for(t=0;t+4<e.length;t+=i)if(i=n.getUint32(t),t+=4,i<=0)r.push("<span style='color:red;'>MALFORMED DATA</span>");else switch(31&e[t]){case 1:r.push("slice_layer_without_partitioning_rbsp");break;case 5:r.push("slice_layer_without_partitioning_rbsp_idr");break;case 6:r.push("sei_rbsp");break;case 7:r.push("seq_parameter_set_rbsp");break;case 8:r.push("pic_parameter_set_rbsp");break;case 9:r.push("access_unit_delimiter_rbsp");break;default:r.push("UNKNOWN NAL - "+e[t]&31)}return r}(e)}},mdhd:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n=4,r={version:i.getUint8(0),flags:new Uint8Array(e.subarray(1,4)),language:""};return 1===r.version?(n+=4,r.creationTime=So(i.getUint32(n)),n+=8,r.modificationTime=So(i.getUint32(n)),n+=4,r.timescale=i.getUint32(n),n+=8):(r.creationTime=So(i.getUint32(n)),n+=4,r.modificationTime=So(i.getUint32(n)),n+=4,r.timescale=i.getUint32(n),n+=4),r.duration=i.getUint32(n),n+=4,t=i.getUint16(n),r.language+=String.fromCharCode(96+(t>>10)),r.language+=String.fromCharCode(96+((992&t)>>5)),r.language+=String.fromCharCode(96+(31&t)),r},mdia:function(e){return{boxes:Eo(e)}},mfhd:function(e){return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),sequenceNumber:e[4]<<24|e[5]<<16|e[6]<<8|e[7]}},minf:function(e){return{boxes:Eo(e)}},mp4a:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),i={dataReferenceIndex:t.getUint16(6),channelcount:t.getUint16(16),samplesize:t.getUint16(18),samplerate:t.getUint16(24)+t.getUint16(26)/65536};return 28<e.byteLength&&(i.streamDescriptor=Eo(e.subarray(28))[0]),i},moof:function(e){return{boxes:Eo(e)}},moov:function(e){return{boxes:Eo(e)}},mvex:function(e){return{boxes:Eo(e)}},mvhd:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),i=4,n={version:t.getUint8(0),flags:new Uint8Array(e.subarray(1,4))};return 1===n.version?(i+=4,n.creationTime=So(t.getUint32(i)),i+=8,n.modificationTime=So(t.getUint32(i)),i+=4,n.timescale=t.getUint32(i),i+=8):(n.creationTime=So(t.getUint32(i)),i+=4,n.modificationTime=So(t.getUint32(i)),i+=4,n.timescale=t.getUint32(i),i+=4),n.duration=t.getUint32(i),i+=4,n.rate=t.getUint16(i)+t.getUint16(i+2)/16,i+=4,n.volume=t.getUint8(i)+t.getUint8(i+1)/8,i+=2,i+=2,i+=8,n.matrix=new Uint32Array(e.subarray(i,i+36)),i+=36,i+=24,n.nextTrackId=t.getUint32(i),n},pdin:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);return{version:t.getUint8(0),flags:new Uint8Array(e.subarray(1,4)),rate:t.getUint32(4),initialDelay:t.getUint32(8)}},sdtp:function(e){var t,i={version:e[0],flags:new Uint8Array(e.subarray(1,4)),samples:[]};for(t=4;t<e.byteLength;t++)i.samples.push({dependsOn:(48&e[t])>>4,isDependedOn:(12&e[t])>>2,hasRedundancy:3&e[t]});return i},sidx:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n={version:e[0],flags:new Uint8Array(e.subarray(1,4)),references:[],referenceId:i.getUint32(4),timescale:i.getUint32(8),earliestPresentationTime:i.getUint32(12),firstOffset:i.getUint32(16)},r=i.getUint16(22);for(t=24;r;t+=12,r--)n.references.push({referenceType:(128&e[t])>>>7,referencedSize:2147483647&i.getUint32(t),subsegmentDuration:i.getUint32(t+4),startsWithSap:!!(128&e[t+8]),sapType:(112&e[t+8])>>>4,sapDeltaTime:268435455&i.getUint32(t+8)});return n},smhd:function(e){return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),balance:e[4]+e[5]/256}},stbl:function(e){return{boxes:Eo(e)}},stco:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n={version:e[0],flags:new Uint8Array(e.subarray(1,4)),chunkOffsets:[]},r=i.getUint32(4);for(t=8;r;t+=4,r--)n.chunkOffsets.push(i.getUint32(t));return n},stsc:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n=i.getUint32(4),r={version:e[0],flags:new Uint8Array(e.subarray(1,4)),sampleToChunks:[]};for(t=8;n;t+=12,n--)r.sampleToChunks.push({firstChunk:i.getUint32(t),samplesPerChunk:i.getUint32(t+4),sampleDescriptionIndex:i.getUint32(t+8)});return r},stsd:function(e){return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),sampleDescriptions:Eo(e.subarray(8))}},stsz:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n={version:e[0],flags:new Uint8Array(e.subarray(1,4)),sampleSize:i.getUint32(4),entries:[]};for(t=12;t<e.byteLength;t+=4)n.entries.push(i.getUint32(t));return n},stts:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n={version:e[0],flags:new Uint8Array(e.subarray(1,4)),timeToSamples:[]},r=i.getUint32(4);for(t=8;r;t+=8,r--)n.timeToSamples.push({sampleCount:i.getUint32(t),sampleDelta:i.getUint32(t+4)});return n},styp:function(e){return Io.ftyp(e)},tfdt:function(e){var t={version:e[0],flags:new Uint8Array(e.subarray(1,4)),baseMediaDecodeTime:e[4]<<24|e[5]<<16|e[6]<<8|e[7]};return 1===t.version&&(t.baseMediaDecodeTime*=Math.pow(2,32),t.baseMediaDecodeTime+=e[8]<<24|e[9]<<16|e[10]<<8|e[11]),t},tfhd:function(e){var t,i=new DataView(e.buffer,e.byteOffset,e.byteLength),n={version:e[0],flags:new Uint8Array(e.subarray(1,4)),trackId:i.getUint32(4)},r=1&n.flags[2],a=2&n.flags[2],s=8&n.flags[2],o=16&n.flags[2],u=32&n.flags[2],l=65536&n.flags[0],c=131072&n.flags[0];return t=8,r&&(t+=4,n.baseDataOffset=i.getUint32(12),t+=4),a&&(n.sampleDescriptionIndex=i.getUint32(t),t+=4),s&&(n.defaultSampleDuration=i.getUint32(t),t+=4),o&&(n.defaultSampleSize=i.getUint32(t),t+=4),u&&(n.defaultSampleFlags=i.getUint32(t)),l&&(n.durationIsEmpty=!0),!r&&c&&(n.baseDataOffsetIsMoof=!0),n},tkhd:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),i=4,n={version:t.getUint8(0),flags:new Uint8Array(e.subarray(1,4))};return 1===n.version?(i+=4,n.creationTime=So(t.getUint32(i)),i+=8,n.modificationTime=So(t.getUint32(i)),i+=4,n.trackId=t.getUint32(i),i+=4,i+=8):(n.creationTime=So(t.getUint32(i)),i+=4,n.modificationTime=So(t.getUint32(i)),i+=4,n.trackId=t.getUint32(i),i+=4,i+=4),n.duration=t.getUint32(i),i+=4,i+=8,n.layer=t.getUint16(i),i+=2,n.alternateGroup=t.getUint16(i),i+=2,n.volume=t.getUint8(i)+t.getUint8(i+1)/8,i+=2,i+=2,n.matrix=new Uint32Array(e.subarray(i,i+36)),i+=36,n.width=t.getUint16(i)+t.getUint16(i+2)/16,i+=4,n.height=t.getUint16(i)+t.getUint16(i+2)/16,n},traf:function(e){return{boxes:Eo(e)}},trak:function(e){return{boxes:Eo(e)}},trex:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),trackId:t.getUint32(4),defaultSampleDescriptionIndex:t.getUint32(8),defaultSampleDuration:t.getUint32(12),defaultSampleSize:t.getUint32(16),sampleDependsOn:3&e[20],sampleIsDependedOn:(192&e[21])>>6,sampleHasRedundancy:(48&e[21])>>4,samplePaddingValue:(14&e[21])>>1,sampleIsDifferenceSample:!!(1&e[21]),sampleDegradationPriority:t.getUint16(22)}},trun:function(e){var t,i={version:e[0],flags:new Uint8Array(e.subarray(1,4)),samples:[]},n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=1&i.flags[2],a=4&i.flags[2],s=1&i.flags[1],o=2&i.flags[1],u=4&i.flags[1],l=8&i.flags[1],c=n.getUint32(4),h=8;for(r&&(i.dataOffset=n.getInt32(h),h+=4),a&&c&&(t={flags:ko(e.subarray(h,h+4))},h+=4,s&&(t.duration=n.getUint32(h),h+=4),o&&(t.size=n.getUint32(h),h+=4),l&&(t.compositionTimeOffset=n.getUint32(h),h+=4),i.samples.push(t),c--);c--;)t={},s&&(t.duration=n.getUint32(h),h+=4),o&&(t.size=n.getUint32(h),h+=4),u&&(t.flags=ko(e.subarray(h,h+4)),h+=4),l&&(t.compositionTimeOffset=n.getUint32(h),h+=4),i.samples.push(t);return i},"url ":function(e){return{version:e[0],flags:new Uint8Array(e.subarray(1,4))}},vmhd:function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength);return{version:e[0],flags:new Uint8Array(e.subarray(1,4)),graphicsmode:t.getUint16(4),opcolor:new Uint16Array([t.getUint16(6),t.getUint16(8),t.getUint16(10)])}}},Lo={inspect:Eo=function(e){for(var t,i,n,r,a,s=0,o=[],u=new ArrayBuffer(e.length),l=new Uint8Array(u),c=0;c<e.length;++c)l[c]=e[c];for(t=new DataView(u);s<e.byteLength;)i=t.getUint32(s),n=Po(e.subarray(s+4,s+8)),r=1<i?s+i:e.byteLength,(a=(Io[n]||function(e){return{data:e}})(e.subarray(s+8,r))).size=i,a.type=n,o.push(a),s=r;return o},textify:wo=function(e,t){var a;return t=t||0,a=new Array(2*t+1).join(" "),e.map(function(r,e){return a+r.type+"\n"+Object.keys(r).filter(function(e){return"type"!==e&&"boxes"!==e}).map(function(e){var t=a+" "+e+": ",i=r[e];if(i instanceof Uint8Array||i instanceof Uint32Array){var n=Array.prototype.slice.call(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)).map(function(e){return" "+("00"+e.toString(16)).slice(-2)}).join("").match(/.{1,24}/g);return n?1===n.length?t+"<"+n.join("").slice(1)+">":t+"<\n"+n.map(function(e){return a+" "+e}).join("\n")+"\n"+a+" >":t+"<>"}return t+JSON.stringify(i,null,2).split("\n").map(function(e,t){return 0===t?e:a+" "+e}).join("\n")}).join("\n")+(r.boxes?"\n"+wo(r.boxes,t+1):"")}).join("\n")},parseTfdt:Io.tfdt,parseHdlr:Io.hdlr,parseTfhd:Io.tfhd,parseTrun:Io.trun,parseSidx:Io.sidx},Oo=function(e){for(var t=0,i={payloadType:-1,payloadSize:0},n=0,r=0;t<e.byteLength&&128!==e[t];){for(;255===e[t];)n+=255,t++;for(n+=e[t++];255===e[t];)r+=255,t++;if(r+=e[t++],!i.payload&&4===n){i.payloadType=n,i.payloadSize=r,i.payload=e.subarray(t,t+r);break}t+=r,r=n=0}return i},xo=function(e){return 181!==e.payload[0]?null:49!=(e.payload[1]<<8|e.payload[2])?null:"GA94"!==String.fromCharCode(e.payload[3],e.payload[4],e.payload[5],e.payload[6])?null:3!==e.payload[7]?null:e.payload.subarray(8,e.payload.length-1)},Do=function(e,t){var i,n,r,a,s=[];if(!(64&t[0]))return s;for(n=31&t[0],i=0;i<n;i++)a={type:3&t[2+(r=3*i)],pts:e},4&t[2+r]&&(a.ccData=t[3+r]<<8|t[4+r],s.push(a));return s},Uo=function(e){for(var t,i,n=e.byteLength,r=[],a=1;a<n-2;)0===e[a]&&0===e[a+1]&&3===e[a+2]?(r.push(a+2),a+=2):a++;if(0===r.length)return e;t=n-r.length,i=new Uint8Array(t);var s=0;for(a=0;a<t;s++,a++)s===r[0]&&(s++,r.shift()),i[a]=e[s];return i},Ro=4;Co.prototype.pipe=function(t){return this.on("data",function(e){t.push(e)}),this.on("done",function(e){t.flush(e)}),this.on("partialdone",function(e){t.partialFlush(e)}),this.on("endedtimeline",function(e){t.endTimeline(e)}),this.on("reset",function(e){t.reset(e)}),t},Co.prototype.push=function(e){this.trigger("data",e)},Co.prototype.flush=function(e){this.trigger("done",e)},Co.prototype.partialFlush=function(e){this.trigger("partialdone",e)},Co.prototype.endTimeline=function(e){this.trigger("endedtimeline",e)},Co.prototype.reset=function(e){this.trigger("reset",e)};function Mo(){Mo.prototype.init.call(this),this.captionPackets_=[],this.ccStreams_=[new Vo(0,0),new Vo(0,1),new Vo(1,0),new Vo(1,1)],this.reset(),this.ccStreams_.forEach(function(e){e.on("data",this.trigger.bind(this,"data")),e.on("partialdone",this.trigger.bind(this,"partialdone")),e.on("done",this.trigger.bind(this,"done"))},this)}var No=Co;(Mo.prototype=new No).push=function(e){var t,i,n;if("sei_rbsp"===e.nalUnitType&&(t=Oo(e.escapedRBSP)).payloadType===Ro&&(i=xo(t)))if(e.dts<this.latestDts_)this.ignoreNextEqualDts_=!0;else{if(e.dts===this.latestDts_&&this.ignoreNextEqualDts_)return this.numSameDts_--,void(this.numSameDts_||(this.ignoreNextEqualDts_=!1));n=Do(e.pts,i),this.captionPackets_=this.captionPackets_.concat(n),this.latestDts_!==e.dts&&(this.numSameDts_=0),this.numSameDts_++,this.latestDts_=e.dts}},Mo.prototype.flushCCStreams=function(t){this.ccStreams_.forEach(function(e){return"flush"===t?e.flush():e.partialFlush()},this)},Mo.prototype.flushStream=function(e){this.captionPackets_.length&&(this.captionPackets_.forEach(function(e,t){e.presortIndex=t}),this.captionPackets_.sort(function(e,t){return e.pts===t.pts?e.presortIndex-t.presortIndex:e.pts-t.pts}),this.captionPackets_.forEach(function(e){e.type<2&&this.dispatchCea608Packet(e)},this),this.captionPackets_.length=0),this.flushCCStreams(e)},Mo.prototype.flush=function(){return this.flushStream("flush")},Mo.prototype.partialFlush=function(){return this.flushStream("partialFlush")},Mo.prototype.reset=function(){this.latestDts_=null,this.ignoreNextEqualDts_=!1,this.numSameDts_=0,this.activeCea608Channel_=[null,null],this.ccStreams_.forEach(function(e){e.reset()})},Mo.prototype.dispatchCea608Packet=function(e){this.setsTextOrXDSActive(e)?this.activeCea608Channel_[e.type]=null:this.setsChannel1Active(e)?this.activeCea608Channel_[e.type]=0:this.setsChannel2Active(e)&&(this.activeCea608Channel_[e.type]=1),null!==this.activeCea608Channel_[e.type]&&this.ccStreams_[(e.type<<1)+this.activeCea608Channel_[e.type]].push(e)},Mo.prototype.setsChannel1Active=function(e){return 4096==(30720&e.ccData)},Mo.prototype.setsChannel2Active=function(e){return 6144==(30720&e.ccData)},Mo.prototype.setsTextOrXDSActive=function(e){return 256==(28928&e.ccData)||4138==(30974&e.ccData)||6186==(30974&e.ccData)};function Bo(e){return null===e?"":(e=Fo[e]||e,String.fromCharCode(e))}function jo(){for(var e=[],t=15;t--;)e.push("");return e}var Fo={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,304:174,305:176,306:189,307:191,308:8482,309:162,310:163,311:9834,312:224,313:160,314:232,315:226,316:234,317:238,318:244,319:251,544:193,545:201,546:211,547:218,548:220,549:252,550:8216,551:161,552:42,553:39,554:8212,555:169,556:8480,557:8226,558:8220,559:8221,560:192,561:194,562:199,563:200,564:202,565:203,566:235,567:206,568:207,569:239,570:212,571:217,572:249,573:219,574:171,575:187,800:195,801:227,802:205,803:204,804:236,805:210,806:242,807:213,808:245,809:123,810:125,811:92,812:94,813:95,814:124,815:126,816:196,817:228,818:214,819:246,820:223,821:165,822:164,823:9474,824:197,825:229,826:216,827:248,828:9484,829:9488,830:9492,831:9496},Ho=[4352,4384,4608,4640,5376,5408,5632,5664,5888,5920,4096,4864,4896,5120,5152],Vo=function e(t,i){e.prototype.init.call(this),this.field_=t||0,this.dataChannel_=i||0,this.name_="CC"+(1+(this.field_<<1|this.dataChannel_)),this.setConstants(),this.reset(),this.push=function(e){var t,i,n,r,a;if((t=32639&e.ccData)!==this.lastControlCode_){if(4096==(61440&t)?this.lastControlCode_=t:t!==this.PADDING_&&(this.lastControlCode_=null),n=t>>>8,r=255&t,t!==this.PADDING_)if(t===this.RESUME_CAPTION_LOADING_)this.mode_="popOn";else if(t===this.END_OF_CAPTION_)this.mode_="popOn",this.clearFormatting(e.pts),this.flushDisplayed(e.pts),i=this.displayed_,this.displayed_=this.nonDisplayed_,this.nonDisplayed_=i,this.startPts_=e.pts;else if(t===this.ROLL_UP_2_ROWS_)this.rollUpRows_=2,this.setRollUp(e.pts);else if(t===this.ROLL_UP_3_ROWS_)this.rollUpRows_=3,this.setRollUp(e.pts);else if(t===this.ROLL_UP_4_ROWS_)this.rollUpRows_=4,this.setRollUp(e.pts);else if(t===this.CARRIAGE_RETURN_)this.clearFormatting(e.pts),this.flushDisplayed(e.pts),this.shiftRowsUp_(),this.startPts_=e.pts;else if(t===this.BACKSPACE_)"popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[this.row_]=this.displayed_[this.row_].slice(0,-1);else if(t===this.ERASE_DISPLAYED_MEMORY_)this.flushDisplayed(e.pts),this.displayed_=jo();else if(t===this.ERASE_NON_DISPLAYED_MEMORY_)this.nonDisplayed_=jo();else if(t===this.RESUME_DIRECT_CAPTIONING_)"paintOn"!==this.mode_&&(this.flushDisplayed(e.pts),this.displayed_=jo()),this.mode_="paintOn",this.startPts_=e.pts;else if(this.isSpecialCharacter(n,r))a=Bo((n=(3&n)<<8)|r),this[this.mode_](e.pts,a),this.column_++;else if(this.isExtCharacter(n,r))"popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[this.row_]=this.displayed_[this.row_].slice(0,-1),a=Bo((n=(3&n)<<8)|r),this[this.mode_](e.pts,a),this.column_++;else if(this.isMidRowCode(n,r))this.clearFormatting(e.pts),this[this.mode_](e.pts," "),this.column_++,14==(14&r)&&this.addFormatting(e.pts,["i"]),1==(1&r)&&this.addFormatting(e.pts,["u"]);else if(this.isOffsetControlCode(n,r))this.column_+=3&r;else if(this.isPAC(n,r)){var s=Ho.indexOf(7968&t);"rollUp"===this.mode_&&(s-this.rollUpRows_+1<0&&(s=this.rollUpRows_-1),this.setRollUp(e.pts,s)),s!==this.row_&&(this.clearFormatting(e.pts),this.row_=s),1&r&&-1===this.formatting_.indexOf("u")&&this.addFormatting(e.pts,["u"]),16==(16&t)&&(this.column_=4*((14&t)>>1)),this.isColorPAC(r)&&14==(14&r)&&this.addFormatting(e.pts,["i"])}else this.isNormalChar(n)&&(0===r&&(r=null),a=Bo(n),a+=Bo(r),this[this.mode_](e.pts,a),this.column_+=a.length)}else this.lastControlCode_=null}};Vo.prototype=new No,Vo.prototype.flushDisplayed=function(e){var t=this.displayed_.map(function(e){try{return e.trim()}catch(e){return""}}).join("\n").replace(/^\n+|\n+$/g,"");t.length&&this.trigger("data",{startPts:this.startPts_,endPts:e,text:t,stream:this.name_})},Vo.prototype.reset=function(){this.mode_="popOn",this.topRow_=0,this.startPts_=0,this.displayed_=jo(),this.nonDisplayed_=jo(),this.lastControlCode_=null,this.column_=0,this.row_=14,this.rollUpRows_=2,this.formatting_=[]},Vo.prototype.setConstants=function(){0===this.dataChannel_?(this.BASE_=16,this.EXT_=17,this.CONTROL_=(20|this.field_)<<8,this.OFFSET_=23):1===this.dataChannel_&&(this.BASE_=24,this.EXT_=25,this.CONTROL_=(28|this.field_)<<8,this.OFFSET_=31),this.PADDING_=0,this.RESUME_CAPTION_LOADING_=32|this.CONTROL_,this.END_OF_CAPTION_=47|this.CONTROL_,this.ROLL_UP_2_ROWS_=37|this.CONTROL_,this.ROLL_UP_3_ROWS_=38|this.CONTROL_,this.ROLL_UP_4_ROWS_=39|this.CONTROL_,this.CARRIAGE_RETURN_=45|this.CONTROL_,this.RESUME_DIRECT_CAPTIONING_=41|this.CONTROL_,this.BACKSPACE_=33|this.CONTROL_,this.ERASE_DISPLAYED_MEMORY_=44|this.CONTROL_,this.ERASE_NON_DISPLAYED_MEMORY_=46|this.CONTROL_},Vo.prototype.isSpecialCharacter=function(e,t){return e===this.EXT_&&48<=t&&t<=63},Vo.prototype.isExtCharacter=function(e,t){return(e===this.EXT_+1||e===this.EXT_+2)&&32<=t&&t<=63},Vo.prototype.isMidRowCode=function(e,t){return e===this.EXT_&&32<=t&&t<=47},Vo.prototype.isOffsetControlCode=function(e,t){return e===this.OFFSET_&&33<=t&&t<=35},Vo.prototype.isPAC=function(e,t){return e>=this.BASE_&&e<this.BASE_+8&&64<=t&&t<=127},Vo.prototype.isColorPAC=function(e){return 64<=e&&e<=79||96<=e&&e<=127},Vo.prototype.isNormalChar=function(e){return 32<=e&&e<=127},Vo.prototype.setRollUp=function(e,t){if("rollUp"!==this.mode_&&(this.row_=14,this.mode_="rollUp",this.flushDisplayed(e),this.nonDisplayed_=jo(),this.displayed_=jo()),void 0!==t&&t!==this.row_)for(var i=0;i<this.rollUpRows_;i++)this.displayed_[t-i]=this.displayed_[this.row_-i],this.displayed_[this.row_-i]="";void 0===t&&(t=this.row_),this.topRow_=t-this.rollUpRows_+1},Vo.prototype.addFormatting=function(e,t){this.formatting_=this.formatting_.concat(t);var i=t.reduce(function(e,t){return e+"<"+t+">"},"");this[this.mode_](e,i)},Vo.prototype.clearFormatting=function(e){if(this.formatting_.length){var t=this.formatting_.reverse().reduce(function(e,t){return e+"</"+t+">"},"");this.formatting_=[],this[this.mode_](e,t)}},Vo.prototype.popOn=function(e,t){var i=this.nonDisplayed_[this.row_];i+=t,this.nonDisplayed_[this.row_]=i},Vo.prototype.rollUp=function(e,t){var i=this.displayed_[this.row_];i+=t,this.displayed_[this.row_]=i},Vo.prototype.shiftRowsUp_=function(){var e;for(e=0;e<this.topRow_;e++)this.displayed_[e]="";for(e=this.row_+1;e<15;e++)this.displayed_[e]="";for(e=this.topRow_;e<this.row_;e++)this.displayed_[e]=this.displayed_[e+1];this.displayed_[this.row_]=""},Vo.prototype.paintOn=function(e,t){var i=this.displayed_[this.row_];i+=t,this.displayed_[this.row_]=i};function qo(e,t){for(var i=e,n=0;n<t.length;n++){var r=t[n];if(i<r.size)return r;i-=r.size}return null}function Wo(e,c){var n=Ao.findBox(e,["moof","traf"]),t=Ao.findBox(e,["mdat"]),h={},r=[];return t.forEach(function(e,t){var i=n[t];r.push({mdat:e,traf:i})}),r.forEach(function(e){var t,i=e.mdat,n=e.traf,r=Ao.findBox(n,["tfhd"]),a=Lo.parseTfhd(r[0]),s=a.trackId,o=Ao.findBox(n,["tfdt"]),u=0<o.length?Lo.parseTfdt(o[0]).baseMediaDecodeTime:0,l=Ao.findBox(n,["trun"]);c===s&&0<l.length&&(t=function(e,t,i){var n,r,a,s,o=new DataView(e.buffer,e.byteOffset,e.byteLength),u=[];for(r=0;r+4<e.length;r+=a)if(a=o.getUint32(r),r+=4,!(a<=0))switch(31&e[r]){case 6:var l=e.subarray(r+1,r+1+a),c=qo(r,t);n={nalUnitType:"sei_rbsp",size:a,data:l,escapedRBSP:$o(l),trackId:i},c?(n.pts=c.pts,n.dts=c.dts,s=c):(n.pts=s.pts,n.dts=s.dts),u.push(n)}return u}(i,function(e,t,i){var n=t,r=i.defaultSampleDuration||0,a=i.defaultSampleSize||0,s=i.trackId,o=[];return e.forEach(function(e){var t=Lo.parseTrun(e).samples;t.forEach(function(e){void 0===e.duration&&(e.duration=r),void 0===e.size&&(e.size=a),e.trackId=s,e.dts=n,void 0===e.compositionTimeOffset&&(e.compositionTimeOffset=0),e.pts=n+e.compositionTimeOffset,n+=e.duration}),o=o.concat(t)}),o}(l,u,a),s),h[s]||(h[s]=[]),h[s]=h[s].concat(t))}),h}function zo(e,t){var i=1;for(t<e&&(i=-1);4294967296<Math.abs(t-e);)e+=8589934592*i;return e}var $o=Uo,Go=Mo,Xo=function(){var t,a,s,o,u,i,n=!1;this.isInitialized=function(){return n},this.init=function(e){t=new Go,n=!0,i=!!e&&e.isPartial,t.on("data",function(e){e.startTime=e.startPts/o,e.endTime=e.endPts/o,u.captions.push(e),u.captionStreams[e.stream]=!0})},this.isNewInit=function(e,t){return!(e&&0===e.length||t&&"object"==typeof t&&0===Object.keys(t).length)&&(s!==e[0]||o!==t[s])},this.parse=function(e,t,i){var n;if(!this.isInitialized())return null;if(!t||!i)return null;if(this.isNewInit(t,i))s=t[0],o=i[s];else if(null===s||!o)return a.push(e),null;for(;0<a.length;){var r=a.shift();this.parse(r,t,i)}return null!==(n=function(e,t,i){return null===t?null:{seiNals:Wo(e,t)[t],timescale:i}}(e,s,o))&&n.seiNals?(this.pushNals(n.seiNals),this.flushStream(),u):null},this.pushNals=function(e){if(!this.isInitialized()||!e||0===e.length)return null;e.forEach(function(e){t.push(e)})},this.flushStream=function(){if(!this.isInitialized())return null;i?t.partialFlush():t.flush()},this.clearParsedCaptions=function(){u.captions=[],u.captionStreams={}},this.resetCaptionStream=function(){if(!this.isInitialized())return null;t.reset()},this.clearAllCaptions=function(){this.clearParsedCaptions(),this.resetCaptionStream()},this.reset=function(){a=[],o=s=null,u?this.clearParsedCaptions():u={captions:[],captionStreams:{}},this.resetCaptionStream()},this.reset()},Ko=27,Yo=15,Qo=21;new No;function Jo(e){var t=31&e[1];return t<<=8,t|=e[2]}function Zo(e){return!!(64&e[1])}function eu(e){var t=0;return 1<(48&e[3])>>>4&&(t+=e[4]+1),t}function tu(e){switch(e){case 5:return"slice_layer_without_partitioning_rbsp_idr";case 6:return"sei_rbsp";case 7:return"seq_parameter_set_rbsp";case 8:return"pic_parameter_set_rbsp";case 9:return"access_unit_delimiter_rbsp";default:return null}}function iu(e){return e[0]<<21|e[1]<<14|e[2]<<7|e[3]}var nu,ru,au,su,ou={parseType:function(e,t){var i=Jo(e);return 0===i?"pat":i===t?"pmt":t?"pes":null},parsePat:function(e){var t=Zo(e),i=4+eu(e);return t&&(i+=e[i]+1),(31&e[i+10])<<8|e[i+11]},parsePmt:function(e){var t={},i=Zo(e),n=4+eu(e);if(i&&(n+=e[n]+1),1&e[n+5]){var r;r=3+((15&e[n+1])<<8|e[n+2])-4;for(var a=12+((15&e[n+10])<<8|e[n+11]);a<r;){var s=n+a;t[(31&e[s+1])<<8|e[s+2]]=e[s],a+=5+((15&e[s+3])<<8|e[s+4])}return t}},parsePayloadUnitStartIndicator:Zo,parsePesType:function(e,t){switch(t[Jo(e)]){case Ko:return"video";case Yo:return"audio";case Qo:return"timed-metadata";default:return null}},parsePesTime:function(e){if(!Zo(e))return null;var t=4+eu(e);if(t>=e.byteLength)return null;var i,n=null;return 192&(i=e[t+7])&&((n={}).pts=(14&e[t+9])<<27|(255&e[t+10])<<20|(254&e[t+11])<<12|(255&e[t+12])<<5|(254&e[t+13])>>>3,n.pts*=4,n.pts+=(6&e[t+13])>>>1,n.dts=n.pts,64&i&&(n.dts=(14&e[t+14])<<27|(255&e[t+15])<<20|(254&e[t+16])<<12|(255&e[t+17])<<5|(254&e[t+18])>>>3,n.dts*=4,n.dts+=(6&e[t+18])>>>1)),n},videoPacketContainsKeyFrame:function(e){for(var t=4+eu(e),i=e.subarray(t),n=0,r=0,a=!1;r<i.byteLength-3;r++)if(1===i[r+2]){n=r+5;break}for(;n<i.byteLength;)switch(i[n]){case 0:if(0!==i[n-1]){n+=2;break}if(0!==i[n-2]){n++;break}for(r+3!==n-2&&"slice_layer_without_partitioning_rbsp_idr"===tu(31&i[r+3])&&(a=!0);1!==i[++n]&&n<i.length;);r=n-2,n+=3;break;case 1:if(0!==i[n-1]||0!==i[n-2]){n+=3;break}"slice_layer_without_partitioning_rbsp_idr"===tu(31&i[r+3])&&(a=!0),r=n-2,n+=3;break;default:n+=3}return i=i.subarray(r),n-=r,r=0,i&&3<i.byteLength&&"slice_layer_without_partitioning_rbsp_idr"===tu(31&i[r+3])&&(a=!0),a}},uu=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],lu={isLikelyAacData:function(e){return e[0]==="I".charCodeAt(0)&&e[1]==="D".charCodeAt(0)&&e[2]==="3".charCodeAt(0)},parseId3TagSize:function(e,t){var i=e[t+6]<<21|e[t+7]<<14|e[t+8]<<7|e[t+9];return(16&e[t+5])>>4?20+i:10+i},parseAdtsSize:function(e,t){var i=(224&e[t+5])>>5,n=e[t+4]<<3;return 6144&e[t+3]|n|i},parseType:function(e,t){return e[t]==="I".charCodeAt(0)&&e[t+1]==="D".charCodeAt(0)&&e[t+2]==="3".charCodeAt(0)?"timed-metadata":!0&e[t]&&240==(240&e[t+1])?"audio":null},parseSampleRate:function(e){for(var t=0;t+5<e.length;){if(255===e[t]&&240==(246&e[t+1]))return uu[(60&e[t+2])>>>2];t++}return null},parseAacTimestamp:function(e){var t,i,n;t=10,64&e[5]&&(t+=4,t+=iu(e.subarray(10,14)));do{if((i=iu(e.subarray(t+4,t+8)))<1)return null;if("PRIV"===String.fromCharCode(e[t],e[t+1],e[t+2],e[t+3])){n=e.subarray(t+10,t+i+10);for(var r=0;r<n.byteLength;r++)if(0===n[r]){if("com.apple.streaming.transportStreamTimestamp"!==unescape(function(e,t,i){var n,r="";for(n=t;n<i;n++)r+="%"+("00"+e[n].toString(16)).slice(-2);return r}(n,0,r)))break;var a=n.subarray(r+1),s=(1&a[3])<<30|a[4]<<22|a[5]<<14|a[6]<<6|a[7]>>>2;return s*=4,s+=3&a[7]}}t+=10,t+=i}while(t<e.byteLength);return null}},cu=9e4,hu=(nu=function(e){return 9e4*e},ru=function(e,t){return e*t},au=function(e){return e/9e4},su=function(e,t){return e/t},zo),du={};du.ts=ou,du.aac=lu;function pu(e,t,i){for(var n,r,a,s,o=0,u=yu,l=!1;u<=e.byteLength;)if(71!==e[o]||71!==e[u]&&u!==e.byteLength)o++,u++;else{switch(n=e.subarray(o,u),du.ts.parseType(n,t.pid)){case"pes":r=du.ts.parsePesType(n,t.table),a=du.ts.parsePayloadUnitStartIndicator(n),"audio"===r&&a&&(s=du.ts.parsePesTime(n))&&(s.type="audio",i.audio.push(s),l=!0)}if(l)break;o+=yu,u+=yu}for(o=(u=e.byteLength)-yu,l=!1;0<=o;)if(71!==e[o]||71!==e[u]&&u!==e.byteLength)o--,u--;else{switch(n=e.subarray(o,u),du.ts.parseType(n,t.pid)){case"pes":r=du.ts.parsePesType(n,t.table),a=du.ts.parsePayloadUnitStartIndicator(n),"audio"===r&&a&&(s=du.ts.parsePesTime(n))&&(s.type="audio",i.audio.push(s),l=!0)}if(l)break;o-=yu,u-=yu}}function fu(e,t,i){for(var n,r,a,s,o,u,l,c=0,h=yu,d=!1,p={data:[],size:0};h<e.byteLength;)if(71!==e[c]||71!==e[h])c++,h++;else{switch(n=e.subarray(c,h),du.ts.parseType(n,t.pid)){case"pes":if(r=du.ts.parsePesType(n,t.table),a=du.ts.parsePayloadUnitStartIndicator(n),"video"===r&&(a&&!d&&(s=du.ts.parsePesTime(n))&&(s.type="video",i.video.push(s),d=!0),!i.firstKeyFrame)){if(a&&0!==p.size){for(o=new Uint8Array(p.size),u=0;p.data.length;)l=p.data.shift(),o.set(l,u),u+=l.byteLength;if(du.ts.videoPacketContainsKeyFrame(o)){var f=du.ts.parsePesTime(o);f&&(i.firstKeyFrame=f,i.firstKeyFrame.type="video")}p.size=0}p.data.push(n),p.size+=n.byteLength}}if(d&&i.firstKeyFrame)break;c+=yu,h+=yu}for(c=(h=e.byteLength)-yu,d=!1;0<=c;)if(71!==e[c]||71!==e[h])c--,h--;else{switch(n=e.subarray(c,h),du.ts.parseType(n,t.pid)){case"pes":r=du.ts.parsePesType(n,t.table),a=du.ts.parsePayloadUnitStartIndicator(n),"video"===r&&a&&(s=du.ts.parsePesTime(n))&&(s.type="video",i.video.push(s),d=!0)}if(d)break;c-=yu,h-=yu}}function mu(e){var t={pid:null,table:null},i={};for(var n in function(e,t){for(var i,n=0,r=yu;r<e.byteLength;)if(71!==e[n]||71!==e[r])n++,r++;else{switch(i=e.subarray(n,r),du.ts.parseType(i,t.pid)){case"pat":t.pid||(t.pid=du.ts.parsePat(i));break;case"pmt":t.table||(t.table=du.ts.parsePmt(i))}if(t.pid&&t.table)return;n+=yu,r+=yu}}(e,t),t.table){if(t.table.hasOwnProperty(n))switch(t.table[n]){case Ko:i.video=[],fu(e,t,i),0===i.video.length&&delete i.video;break;case Yo:i.audio=[],pu(e,t,i),0===i.audio.length&&delete i.audio}}return i}var gu=cu,yu=188,vu=function(e,t){var i;return(i=du.aac.isLikelyAacData(e)?function(e){for(var t,i=!1,n=0,r=null,a=null,s=0,o=0;3<=e.length-o;){switch(du.aac.parseType(e,o)){case"timed-metadata":if(e.length-o<10){i=!0;break}if((s=du.aac.parseId3TagSize(e,o))>e.length){i=!0;break}null===a&&(t=e.subarray(o,o+s),a=du.aac.parseAacTimestamp(t)),o+=s;break;case"audio":if(e.length-o<7){i=!0;break}if((s=du.aac.parseAdtsSize(e,o))>e.length){i=!0;break}null===r&&(t=e.subarray(o,o+s),r=du.aac.parseSampleRate(t)),n++,o+=s;break;default:o++}if(i)return null}if(null===r||null===a)return null;var u=gu/r;return{audio:[{type:"audio",dts:a,pts:a},{type:"audio",dts:a+1024*n*u,pts:a+1024*n*u}]}}(e):mu(e))&&(i.audio||i.video)?(function(e,t){if(e.audio&&e.audio.length){var i=t;"undefined"==typeof i&&(i=e.audio[0].dts),e.audio.forEach(function(e){e.dts=hu(e.dts,i),e.pts=hu(e.pts,i),e.dtsTime=e.dts/gu,e.ptsTime=e.pts/gu})}if(e.video&&e.video.length){var n=t;if("undefined"==typeof n&&(n=e.video[0].dts),e.video.forEach(function(e){e.dts=hu(e.dts,n),e.pts=hu(e.pts,n),e.dtsTime=e.dts/gu,e.ptsTime=e.pts/gu}),e.firstKeyFrame){var r=e.firstKeyFrame;r.dts=hu(r.dts,n),r.pts=hu(r.pts,n),r.dtsTime=r.dts/gu,r.ptsTime=r.dts/gu}}}(i,t),i):null};function _u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var bu=function(e,t,i){return t&&Tu(e.prototype,t),i&&Tu(e,i),e};function Tu(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var Su=null,ku=(Cu.prototype.decrypt=function(e,t,i,n,r,a){var s=this._key[1],o=e^s[0],u=n^s[1],l=i^s[2],c=t^s[3],h=void 0,d=void 0,p=void 0,f=s.length/4-2,m=void 0,g=4,y=this._tables[1],v=y[0],_=y[1],b=y[2],T=y[3],S=y[4];for(m=0;m<f;m++)h=v[o>>>24]^_[u>>16&255]^b[l>>8&255]^T[255&c]^s[g],d=v[u>>>24]^_[l>>16&255]^b[c>>8&255]^T[255&o]^s[g+1],p=v[l>>>24]^_[c>>16&255]^b[o>>8&255]^T[255&u]^s[g+2],c=v[c>>>24]^_[o>>16&255]^b[u>>8&255]^T[255&l]^s[g+3],g+=4,o=h,u=d,l=p;for(m=0;m<4;m++)r[(3&-m)+a]=S[o>>>24]<<24^S[u>>16&255]<<16^S[l>>8&255]<<8^S[255&c]^s[g++],h=o,o=u,u=l,l=c,c=h},Cu);function Cu(e){_u(this,Cu),Su=Su||function(){var e=[[[],[],[],[],[]],[[],[],[],[],[]]],t=e[0],i=e[1],n=t[4],r=i[4],a=void 0,s=void 0,o=void 0,u=[],l=[],c=void 0,h=void 0,d=void 0,p=void 0,f=void 0;for(a=0;a<256;a++)l[(u[a]=a<<1^283*(a>>7))^a]=a;for(s=o=0;!n[s];s^=c||1,o=l[o]||1)for(d=(d=o^o<<1^o<<2^o<<3^o<<4)>>8^255&d^99,f=16843009*u[h=u[c=u[r[n[s]=d]=s]]]^65537*h^257*c^16843008*s,p=257*u[d]^16843008*d,a=0;a<4;a++)t[a][s]=p=p<<24^p>>>8,i[a][d]=f=f<<24^f>>>8;for(a=0;a<5;a++)t[a]=t[a].slice(0),i[a]=i[a].slice(0);return e}(),this._tables=[[Su[0][0].slice(),Su[0][1].slice(),Su[0][2].slice(),Su[0][3].slice(),Su[0][4].slice()],[Su[1][0].slice(),Su[1][1].slice(),Su[1][2].slice(),Su[1][3].slice(),Su[1][4].slice()]];var t=void 0,i=void 0,n=void 0,r=void 0,a=void 0,s=this._tables[0][4],o=this._tables[1],u=e.length,l=1;if(4!==u&&6!==u&&8!==u)throw new Error("Invalid aes key size");for(r=e.slice(0),a=[],this._key=[r,a],t=u;t<4*u+28;t++)n=r[t-1],(t%u==0||8===u&&t%u==4)&&(n=s[n>>>24]<<24^s[n>>16&255]<<16^s[n>>8&255]<<8^s[255&n],t%u==0&&(n=n<<8^n>>>24^l<<24,l=l<<1^283*(l>>7))),r[t]=r[t-u]^n;for(i=0;t;i++,t--)n=r[3&i?t:t-4],a[i]=t<=4||i<4?n:o[0][s[n>>>24]]^o[1][s[n>>16&255]]^o[2][s[n>>8&255]]^o[3][s[255&n]]}var Eu=(wu.prototype.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},wu.prototype.off=function(e,t){if(!this.listeners[e])return!1;var i=this.listeners[e].indexOf(t);return this.listeners[e].splice(i,1),-1<i},wu.prototype.trigger=function(e,t){var i=this.listeners[e];if(i)if(2===arguments.length)for(var n=i.length,r=0;r<n;++r)i[r].call(this,t);else for(var a=Array.prototype.slice.call(arguments,1),s=i.length,o=0;o<s;++o)i[o].apply(this,a)},wu.prototype.dispose=function(){this.listeners={}},wu.prototype.pipe=function(t){this.on("data",function(e){t.push(e)})},wu);function wu(){_u(this,wu),this.listeners={}}var Au,Pu=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(Iu,Au=Eu),Iu.prototype.processJob_=function(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null},Iu.prototype.push=function(e){this.jobs.push(e),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))},Iu);function Iu(){_u(this,Iu);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,Au.call(this,Eu));return e.jobs=[],e.delay=1,e.timeout_=null,e}function Lu(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24}function Ou(e,t,i){var n=new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),r=new ku(Array.prototype.slice.call(t)),a=new Uint8Array(e.byteLength),s=new Int32Array(a.buffer),o=void 0,u=void 0,l=void 0,c=void 0,h=void 0,d=void 0,p=void 0,f=void 0,m=void 0;for(o=i[0],u=i[1],l=i[2],c=i[3],m=0;m<n.length;m+=4)h=Lu(n[m]),d=Lu(n[m+1]),p=Lu(n[m+2]),f=Lu(n[m+3]),r.decrypt(h,d,p,f,s,m),s[m]=Lu(s[m]^o),s[m+1]=Lu(s[m+1]^u),s[m+2]=Lu(s[m+2]^l),s[m+3]=Lu(s[m+3]^c),o=h,u=d,l=p,c=f;return a}var xu=(Du.prototype.decryptChunk_=function(t,i,n,r){return function(){var e=Ou(t,i,n);r.set(e,t.byteOffset)}},bu(Du,null,[{key:"STEP",get:function(){return 32e3}}]),Du);function Du(e,t,i,n){_u(this,Du);var r=Du.STEP,a=new Int32Array(e.buffer),s=new Uint8Array(e.byteLength),o=0;for(this.asyncStream_=new Pu,this.asyncStream_.push(this.decryptChunk_(a.subarray(o,o+r),t,i,s)),o=r;o<a.length;o+=r)i=new Uint32Array([Lu(a[o-4]),Lu(a[o-3]),Lu(a[o-2]),Lu(a[o-1])]),this.asyncStream_.push(this.decryptChunk_(a.subarray(o,o+r),t,i,s));this.asyncStream_.push(function(){n(null,function(e){return e.subarray(0,e.byteLength-e[e.byteLength-1])}(s))})}function Uu(e,t){return/^[a-z]+:/i.test(t)?t:(/\/\//i.test(e)||(e=ys.buildAbsoluteURL(v.location.href,e)),ys.buildAbsoluteURL(e,t))}function Ru(e,t,i){return e&&i.responseURL&&t!==i.responseURL?i.responseURL:t}function Mu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}
15
+ /**
16
+ * @videojs/http-streaming
17
+ * @version 1.10.6
18
+ * @copyright 2019 Brightcove, Inc
19
+ * @license Apache-2.0
20
+ */
21
+ var Nu=function(e,t,i){return t&&Bu(e.prototype,t),i&&Bu(e,i),e};function Bu(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function ju(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function Fu(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function Hu(r,a){["AUDIO","SUBTITLES"].forEach(function(e){for(var t in r.mediaGroups[e])for(var i in r.mediaGroups[e][t]){var n=r.mediaGroups[e][t][i];a(n,e,t,i)}})}function Vu(e,t){var i=Gu(e,{}),n=i.playlists[t.uri];if(!n)return null;if(n.segments&&t.segments&&n.segments.length===t.segments.length&&n.endList===t.endList&&n.mediaSequence===t.mediaSequence)return null;var r=Gu(n,t);n.segments&&(r.segments=function(e,t,i){var n=t.slice();i=i||0;for(var r=Math.min(e.length,t.length+i),a=i;a<r;a++)n[a-i]=Gu(e[a],n[a-i]);return n}(n.segments,t.segments,t.mediaSequence-n.mediaSequence)),r.segments.forEach(function(e){!function(e,t){e.resolvedUri||(e.resolvedUri=Uu(t,e.uri)),e.key&&!e.key.resolvedUri&&(e.key.resolvedUri=Uu(t,e.key.uri)),e.map&&!e.map.resolvedUri&&(e.map.resolvedUri=Uu(t,e.map.uri))}(e,r.resolvedUri)});for(var a=0;a<i.playlists.length;a++)i.playlists[a].uri===t.uri&&(i.playlists[a]=r);return i.playlists[t.uri]=r,i}function qu(e){for(var t=e.playlists.length;t--;){var i=e.playlists[t];(e.playlists[i.uri]=i).resolvedUri=Uu(e.uri,i.uri),i.id=t,i.attributes||(i.attributes={},Xu.warn("Invalid playlist STREAM-INF detected. Missing BANDWIDTH attribute."))}}function Wu(t){Hu(t,function(e){e.uri&&(e.resolvedUri=Uu(t.uri,e.uri))})}function zu(e,t){var i=e.segments[e.segments.length-1];return t&&i&&i.duration?1e3*i.duration:500*(e.targetDuration||10)}var $u=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var i=[],n=!0,r=!1,a=void 0;try{for(var s,o=e[Symbol.iterator]();!(n=(s=o.next()).done)&&(i.push(s.value),!t||i.length!==t);n=!0);}catch(e){r=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(r)throw a}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},Gu=fs.mergeOptions,Xu=fs.log,Ku=(ju(Yu,fs.EventTarget),Nu(Yu,[{key:"playlistRequestError",value:function(e,t,i){this.request=null,i&&(this.state=i),this.error={playlist:this.master.playlists[t],status:e.status,message:"HLS playlist request error at URL: "+t+".",responseText:e.responseText,code:500<=e.status?4:2},this.trigger("error")}},{key:"haveMetadata",value:function(e,t){var i=this;this.request=null,this.state="HAVE_METADATA";var n=new Ps;this.customTagParsers.forEach(function(e){return n.addParser(e)}),this.customTagMappers.forEach(function(e){return n.addTagMapper(e)}),n.push(e.responseText),n.end(),n.manifest.uri=t,n.manifest.attributes=n.manifest.attributes||{};var r=Vu(this.master,n.manifest);this.targetDuration=n.manifest.targetDuration,r?(this.master=r,this.media_=this.master.playlists[n.manifest.uri]):this.trigger("playlistunchanged"),this.media().endList||(v.clearTimeout(this.mediaUpdateTimeout),this.mediaUpdateTimeout=v.setTimeout(function(){i.trigger("mediaupdatetimeout")},zu(this.media(),!!r))),this.trigger("loadedplaylist")}},{key:"dispose",value:function(){this.stopRequest(),v.clearTimeout(this.mediaUpdateTimeout),v.clearTimeout(this.finalRenditionTimeout)}},{key:"stopRequest",value:function(){if(this.request){var e=this.request;this.request=null,e.onreadystatechange=null,e.abort()}}},{key:"media",value:function(i,e){var n=this;if(!i)return this.media_;if("HAVE_NOTHING"===this.state)throw new Error("Cannot switch media playlist from "+this.state);if("string"==typeof i){if(!this.master.playlists[i])throw new Error("Unknown playlist URI: "+i);i=this.master.playlists[i]}if(v.clearTimeout(this.finalRenditionTimeout),e){var t=i.targetDuration/2*1e3||5e3;this.finalRenditionTimeout=v.setTimeout(this.media.bind(this,i,!1),t)}else{var r=this.state,a=!this.media_||i.uri!==this.media_.uri;if(this.master.playlists[i.uri].endList)return this.request&&(this.request.onreadystatechange=null,this.request.abort(),this.request=null),this.state="HAVE_METADATA",this.media_=i,void(a&&(this.trigger("mediachanging"),this.trigger("mediachange")));if(a){if(this.state="SWITCHING_MEDIA",this.request){if(i.resolvedUri===this.request.url)return;this.request.onreadystatechange=null,this.request.abort(),this.request=null}this.media_&&this.trigger("mediachanging"),this.request=this.hls_.xhr({uri:i.resolvedUri,withCredentials:this.withCredentials},function(e,t){if(n.request){if(i.resolvedUri=Ru(n.handleManifestRedirects,i.resolvedUri,t),e)return n.playlistRequestError(n.request,i.uri,r);n.haveMetadata(t,i.uri),"HAVE_MASTER"===r?n.trigger("loadedmetadata"):n.trigger("mediachange")}})}}}},{key:"pause",value:function(){this.stopRequest(),v.clearTimeout(this.mediaUpdateTimeout),"HAVE_NOTHING"===this.state&&(this.started=!1),"SWITCHING_MEDIA"===this.state?this.media_?this.state="HAVE_METADATA":this.state="HAVE_MASTER":"HAVE_CURRENT_METADATA"===this.state&&(this.state="HAVE_METADATA")}},{key:"load",value:function(e){var t=this;v.clearTimeout(this.mediaUpdateTimeout);var i=this.media();if(e){var n=i?i.targetDuration/2*1e3:5e3;this.mediaUpdateTimeout=v.setTimeout(function(){return t.load()},n)}else this.started?i&&!i.endList?this.trigger("mediaupdatetimeout"):this.trigger("loadedplaylist"):this.start()}},{key:"start",value:function(){var n=this;this.started=!0,this.request=this.hls_.xhr({uri:this.srcUrl,withCredentials:this.withCredentials},function(e,t){if(n.request){if(n.request=null,e)return n.error={status:t.status,message:"HLS playlist request error at URL: "+n.srcUrl+".",responseText:t.responseText,code:2},"HAVE_NOTHING"===n.state&&(n.started=!1),n.trigger("error");var i=new Ps;return n.customTagParsers.forEach(function(e){return i.addParser(e)}),n.customTagMappers.forEach(function(e){return i.addTagMapper(e)}),i.push(t.responseText),i.end(),n.state="HAVE_MASTER",n.srcUrl=Ru(n.handleManifestRedirects,n.srcUrl,t),i.manifest.uri=n.srcUrl,i.manifest.playlists?(n.master=i.manifest,qu(n.master),Wu(n.master),n.trigger("loadedplaylist"),void(n.request||n.media(i.manifest.playlists[0]))):(n.master={mediaGroups:{AUDIO:{},VIDEO:{},"CLOSED-CAPTIONS":{},SUBTITLES:{}},uri:v.location.href,playlists:[{uri:n.srcUrl,id:0,resolvedUri:n.srcUrl,attributes:{}}]},n.master.playlists[n.srcUrl]=n.master.playlists[0],n.haveMetadata(t,n.srcUrl),n.trigger("loadedmetadata"))}})}}]),Yu);function Yu(e,t){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};Mu(this,Yu);var n=Fu(this,(Yu.__proto__||Object.getPrototypeOf(Yu)).call(this)),r=i.withCredentials,a=void 0!==r&&r,s=i.handleManifestRedirects,o=void 0!==s&&s;n.srcUrl=e,n.hls_=t,n.withCredentials=a,n.handleManifestRedirects=o;var u=t.options_;if(n.customTagParsers=u&&u.customTagParsers||[],n.customTagMappers=u&&u.customTagMappers||[],!n.srcUrl)throw new Error("A non-empty playlist URL is required");return n.state="HAVE_NOTHING",n.on("mediaupdatetimeout",function(){"HAVE_METADATA"===n.state&&(n.state="HAVE_CURRENT_METADATA",n.request=n.hls_.xhr({uri:Uu(n.master.uri,n.media().uri),withCredentials:n.withCredentials},function(e,t){if(n.request)return e?n.playlistRequestError(n.request,n.media().uri,"HAVE_METADATA"):void n.haveMetadata(n.request,n.media().uri)}))}),n}function Qu(e,t,i){var n,r;return"undefined"==typeof t&&(t=e.mediaSequence+e.segments.length),t<e.mediaSequence?0:(n=function(e,t){var i=0,n=t-e.mediaSequence,r=e.segments[n];if(r){if("undefined"!=typeof r.start)return{result:r.start,precise:!0};if("undefined"!=typeof r.end)return{result:r.end-r.duration,precise:!0}}for(;n--;){if("undefined"!=typeof(r=e.segments[n]).end)return{result:i+r.end,precise:!0};if(i+=r.duration,"undefined"!=typeof r.start)return{result:i+r.start,precise:!0}}return{result:i,precise:!1}}(e,t)).precise?n.result:(r=function(e,t){for(var i=0,n=void 0,r=t-e.mediaSequence;r<e.segments.length;r++){if("undefined"!=typeof(n=e.segments[r]).start)return{result:n.start-i,precise:!0};if(i+=n.duration,"undefined"!=typeof n.end)return{result:n.end-i,precise:!0}}return{result:-1,precise:!1}}(e,t)).precise?r.result:n.result+i}function Ju(e,t,i){if(!e)return 0;if("number"!=typeof i&&(i=0),"undefined"==typeof t){if(e.totalDuration)return e.totalDuration;if(!e.endList)return v.Infinity}return Qu(e,t,i)}function Zu(e,t,i){var n=0;if(i<t){var r=[i,t];t=r[0],i=r[1]}if(t<0){for(var a=t;a<Math.min(0,i);a++)n+=e.targetDuration;t=0}for(var s=t;s<i;s++)n+=e.segments[s].duration;return n}function el(e){if(!e.segments.length)return 0;for(var t=e.segments.length-1,i=e.segments[t].duration||e.targetDuration,n=i+2*e.targetDuration;t--&&!(n<=(i+=e.segments[t].duration)););return Math.max(0,t)}function tl(e,t,i){if(!e||!e.segments)return null;if(e.endList)return Ju(e);if(null===t)return null;t=t||0;var n=i?el(e):e.segments.length;return Qu(e,e.mediaSequence+n,t)}function il(e){return e-Math.floor(e)==0}function nl(e,t){if(il(t))return t+.1*e;for(var i=t.toString().split(".")[1].length,n=1;n<=i;n++){var r=Math.pow(10,n),a=t*r;if(il(a)||n===i)return(a+e)/r}}function rl(e){return e.excludeUntil&&e.excludeUntil>Date.now()}function al(e){return e.excludeUntil&&e.excludeUntil===1/0}function sl(e){var t=rl(e);return!e.disabled&&!t}function ol(e,t){return t.attributes&&t.attributes[e]}function ul(e,t){if(1===e.playlists.length)return!0;var i=t.attributes.BANDWIDTH||Number.MAX_VALUE;return 0===e.playlists.filter(function(e){return!!sl(e)&&(e.attributes.BANDWIDTH||0)<i}).length}function ll(){return function e(t,n){t=xl({timeout:45e3},t);var i=e.beforeRequest||fs.Hls.xhr.beforeRequest;if(i&&"function"==typeof i){var r=i(t);r&&(t=r)}var a=Ol(t,function(e,t){var i=a.response;!e&&i&&(a.responseTime=Date.now(),a.roundTripTime=a.responseTime-a.requestTime,a.bytesReceived=i.byteLength||i.length,a.bandwidth||(a.bandwidth=Math.floor(a.bytesReceived/a.roundTripTime*8*1e3))),t.headers&&(a.responseHeaders=t.headers),e&&"ETIMEDOUT"===e.code&&(a.timedout=!0),e||a.aborted||200===t.statusCode||206===t.statusCode||0===t.statusCode||(e=new Error("XHR Failed with a response of: "+(a&&(i||a.responseText)))),n(e,a)}),s=a.abort;return a.abort=function(){return a.aborted=!0,s.apply(a,arguments)},a.uri=t.uri,a.requestTime=Date.now(),a}}function cl(e){var t={};return e.byterange&&(t.Range=function(e){var t;return t=e.offset+e.length-1,"bytes="+e.offset+"-"+t}(e.byterange)),t}function hl(e,t){var i=e.toString(16);return"00".substring(0,2-i.length)+i+(t%2?" ":"")}function dl(e){return 32<=e&&e<126?String.fromCharCode(e):"."}function pl(i){var n={};return Object.keys(i).forEach(function(e){var t=i[e];ArrayBuffer.isView(t)?n[e]={bytes:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength}:n[e]=t}),n}function fl(e){var t=e.byterange||{length:1/0,offset:0};return[t.length,t.offset,e.resolvedUri].join(",")}function ml(e){return e.resolvedUri}function gl(e){for(var t=Array.prototype.slice.call(e),i="",n=0;n<t.length/16;n++)i+=t.slice(16*n,16*n+16).map(hl).join("")+" "+t.slice(16*n,16*n+16).map(dl).join("")+"\n";return i}function yl(e){var t=e.playlist,i=e.time,n=void 0===i?void 0:i,r=e.callback;if(!r)throw new Error("getProgramTime: callback must be provided");if(!t||void 0===n)return r({message:"getProgramTime: playlist and time must be provided"});var a=function(e,t){if(!t||!t.segments||0===t.segments.length)return null;for(var i=0,n=void 0,r=0;r<t.segments.length&&!(e<=(i=(n=t.segments[r]).videoTimingInfo?n.videoTimingInfo.transmuxedPresentationEnd:i+n.duration));r++);var a=t.segments[t.segments.length-1];if(a.videoTimingInfo&&a.videoTimingInfo.transmuxedPresentationEnd<e)return null;if(i<e){if(e>i+.25*a.duration)return null;n=a}return{segment:n,estimatedStart:n.videoTimingInfo?n.videoTimingInfo.transmuxedPresentationStart:i-n.duration,type:n.videoTimingInfo?"accurate":"estimate"}}(n,t);if(!a)return r({message:"valid programTime was not found"});if("estimate"===a.type)return r({message:"Accurate programTime could not be determined. Please seek to e.seekTime and try again",seekTime:a.estimatedStart});var s={mediaSeconds:n},o=function(e,t){if(!t.dateTimeObject)return null;var i=t.videoTimingInfo.transmuxerPrependedSeconds,n=e-(t.videoTimingInfo.transmuxedPresentationStart+i);return new Date(t.dateTimeObject.getTime()+1e3*n)}(n,a.segment);return o&&(s.programDateTime=o.toISOString()),r(null,s)}function vl(e){var t=e.programTime,i=e.playlist,n=e.retryCount,r=void 0===n?2:n,a=e.seekTo,s=e.pauseAfterSeek,o=void 0===s||s,u=e.tech,l=e.callback;if(!l)throw new Error("seekToProgramTime: callback must be provided");if("undefined"==typeof t||!i||!a)return l({message:"seekToProgramTime: programTime, seekTo and playlist must be provided"});if(!i.endList&&!u.hasStarted_)return l({message:"player must be playing a live stream to start buffering"});if(!function(e){if(!e.segments||0===e.segments.length)return!1;for(var t=0;t<e.segments.length;t++){if(!e.segments[t].dateTimeObject)return!1}return!0}(i))return l({message:"programDateTime tags must be provided in the manifest "+i.resolvedUri});var c=function(e,t){var i=void 0;try{i=new Date(e)}catch(e){return null}if(!t||!t.segments||0===t.segments.length)return null;var n=t.segments[0];if(i<n.dateTimeObject)return null;for(var r=0;r<t.segments.length-1;r++){if(n=t.segments[r],i<t.segments[r+1].dateTimeObject)break}var a=t.segments[t.segments.length-1],s=a.dateTimeObject,o=a.videoTimingInfo?function(e){return e.transmuxedPresentationEnd-e.transmuxedPresentationStart-e.transmuxerPrependedSeconds}(a.videoTimingInfo):a.duration+.25*a.duration;return new Date(s.getTime()+1e3*o)<i?null:(s<i&&(n=a),{segment:n,estimatedStart:n.videoTimingInfo?n.videoTimingInfo.transmuxedPresentationStart:Ll.duration(t,t.mediaSequence+t.segments.indexOf(n)),type:n.videoTimingInfo?"accurate":"estimate"})}(t,i);if(!c)return l({message:t+" was not found in the stream"});var h=c.segment,d=function(e,t){var i=void 0,n=void 0;try{i=new Date(e),n=new Date(t)}catch(e){}var r=i.getTime();return(n.getTime()-r)/1e3}(h.dateTimeObject,t);if("estimate"===c.type)return 0===r?l({message:t+" is not buffered yet. Try again"}):(a(c.estimatedStart+d),void u.one("seeked",function(){vl({programTime:t,playlist:i,retryCount:r-1,seekTo:a,pauseAfterSeek:o,tech:u,callback:l})}));var p=h.start+d;u.one("seeked",function(){return l(null,u.currentTime())}),o&&u.pause(),a(p)}function _l(e,t){var i=[],n=void 0;if(e&&e.length)for(n=0;n<e.length;n++)t(e.start(n),e.end(n))&&i.push([e.start(n),e.end(n)]);return fs.createTimeRanges(i)}function bl(e,i){return _l(e,function(e,t){return e-.1<=i&&i<=t+.1})}function Tl(e,t){return _l(e,function(e){return t<=e-1/30})}function Sl(e){var t=[];if(!e||!e.length)return"";for(var i=0;i<e.length;i++)t.push(e.start(i)+" => "+e.end(i));return t.join(", ")}function kl(e){for(var t=[],i=0;i<e.length;i++)t.push({start:e.start(i),end:e.end(i)});return t}function Cl(e,t,i){var n=void 0,r=void 0;if(i&&i.cues)for(n=i.cues.length;n--;)(r=i.cues[n]).startTime<=t&&r.endTime>=e&&i.removeCue(r)}function El(e){return isNaN(e)||Math.abs(e)===1/0?Number.MAX_VALUE:e}function wl(e,t,i){var n=v.WebKitDataCue||v.VTTCue;if(t&&t.forEach(function(e){var t=e.stream;this.inbandTextTracks_[t].addCue(new n(e.startTime+this.timestampOffset,e.endTime+this.timestampOffset,e.text))},e),i){var r=El(e.mediaSource_.duration);if(i.forEach(function(e){var i=e.cueTime+this.timestampOffset;!("number"!=typeof i||v.isNaN(i)||i<0)&&i<1/0&&e.frames.forEach(function(e){var t=new n(i,i,e.value||e.url||e.data||"");t.frame=e,t.value=e,function(e){Object.defineProperties(e.frame,{id:{get:function(){return fs.log.warn("cue.frame.id is deprecated. Use cue.value.key instead."),e.value.key}},value:{get:function(){return fs.log.warn("cue.frame.value is deprecated. Use cue.value.data instead."),e.value.data}},privateData:{get:function(){return fs.log.warn("cue.frame.privateData is deprecated. Use cue.value.data instead."),e.value.data}}})}(t),this.metadataTrack_.addCue(t)},this)},e),e.metadataTrack_&&e.metadataTrack_.cues&&e.metadataTrack_.cues.length){for(var a=e.metadataTrack_.cues,s=[],o=0;o<a.length;o++)a[o]&&s.push(a[o]);var u=s.reduce(function(e,t){var i=e[t.startTime]||[];return i.push(t),e[t.startTime]=i,e},{}),l=Object.keys(u).sort(function(e,t){return Number(e)-Number(t)});l.forEach(function(e,t){var i=u[e],n=Number(l[t+1])||r;i.forEach(function(e){e.endTime=n})})}}}var Al=fs.createTimeRange,Pl=nl.bind(null,1),Il=nl.bind(null,-1),Ll={duration:Ju,seekable:function(e,t){var i=t||0,n=tl(e,t,!0);return null===n?Al():Al(i,n)},safeLiveIndex:el,getMediaInfoForTime:function(e,t,i,n){var r=void 0,a=void 0,s=e.segments.length,o=t-n;if(o<0){if(0<i)for(r=i-1;0<=r;r--)if(a=e.segments[r],0<(o+=Il(a.duration)))return{mediaIndex:r,startTime:n-Zu(e,i,r)};return{mediaIndex:0,startTime:t}}if(i<0){for(r=i;r<0;r++)if((o-=e.targetDuration)<0)return{mediaIndex:0,startTime:t};i=0}for(r=i;r<s;r++)if(a=e.segments[r],(o-=Pl(a.duration))<0)return{mediaIndex:r,startTime:n+Zu(e,i,r)};return{mediaIndex:s-1,startTime:t}},isEnabled:sl,isDisabled:function(e){return e.disabled},isBlacklisted:rl,isIncompatible:al,playlistEnd:tl,isAes:function(e){for(var t=0;t<e.segments.length;t++)if(e.segments[t].key)return!0;return!1},isFmp4:function(e){for(var t=0;t<e.segments.length;t++)if(e.segments[t].map)return!0;return!1},hasAttribute:ol,estimateSegmentRequestTime:function(e,t,i,n){var r=3<arguments.length&&void 0!==n?n:0;return ol("BANDWIDTH",i)?(e*i.attributes.BANDWIDTH-8*r)/t:NaN},isLowestEnabledRendition:ul},Ol=fs.xhr,xl=fs.mergeOptions,Dl=Object.freeze({createTransferableMessage:pl,initSegmentId:fl,segmentKeyId:ml,hexDump:gl,tagDump:function(e){var t=e.bytes;return gl(t)},textRanges:function(e){var t,i,n="",r=void 0;for(r=0;r<e.length;r++)n+=(i=r,(t=e).start(i)+"-"+t.end(i)+" ");return n}}),Ul="undefined"!=typeof window?window:{},Rl="undefined"==typeof Symbol?"__target":Symbol(),Ml="application/javascript",Nl=Ul.BlobBuilder||Ul.WebKitBlobBuilder||Ul.MozBlobBuilder||Ul.MSBlobBuilder,Bl=Ul.URL||Ul.webkitURL||Bl&&Bl.msURL,jl=Ul.Worker;function Fl(r,a){return function(e){var t=this;if(!a)return new jl(r);if(jl&&!e){var i=Wl(a.toString().replace(/^function.+?{/,"").slice(0,-1));return this[Rl]=new jl(i),function(e,t){if(!e||!t)return;var i=e.terminate;e.objURL=t,e.terminate=function(){e.objURL&&Bl.revokeObjectURL(e.objURL),i.call(e)}}(this[Rl],i),this[Rl]}var n={postMessage:function(e){t.onmessage&&setTimeout(function(){t.onmessage({data:e,target:n})})}};a.call(n),this.postMessage=function(e){setTimeout(function(){n.onmessage({data:e,target:t})})},this.isThisThread=!0}}if(jl){var Hl,Vl=Wl("self.onmessage = function () {}"),ql=new Uint8Array(1);try{(Hl=new jl(Vl)).postMessage(ql,[ql.buffer])}catch(e){jl=null}finally{Bl.revokeObjectURL(Vl),Hl&&Hl.terminate()}}function Wl(t){try{return Bl.createObjectURL(new Blob([t],{type:Ml}))}catch(e){var i=new Nl;return i.append(t),Bl.createObjectURL(i.getBlob(type))}}function zl(e){return e.map(function(e){return e.replace(/avc1\.(\d+)\.(\d+)/i,function(e,t,i){return"avc1."+("00"+Number(t).toString(16)).slice(-2)+"00"+("00"+Number(i).toString(16)).slice(-2)})})}function $l(e){var t,i=0<arguments.length&&void 0!==e?e:"",n={codecCount:0};return n.codecCount=i.split(",").length,n.codecCount=n.codecCount||2,(t=/(^|\s|,)+(avc[13])([^ ,]*)/i.exec(i))&&(n.videoCodec=t[2],n.videoObjectTypeIndicator=t[3]),n.audioProfile=/(^|\s|,)+mp4a.[0-9A-Fa-f]+\.([0-9A-Fa-f]+)/i.exec(i),n.audioProfile=n.audioProfile&&n.audioProfile[2],n}function Gl(e,t,i){return e+"/"+t+'; codecs="'+i.filter(function(e){return!!e}).join(", ")+'"'}function Xl(e,t){var i=function(e){return e.segments&&e.segments.length&&e.segments[0].map?"mp4":"mp2t"}(t),n=function(e){var t=e.attributes||{};return t.CODECS?$l(t.CODECS):Jl}(t),r=t.attributes||{},a=!0,s=!1;if(!t)return[];if(e.mediaGroups.AUDIO&&r.AUDIO){var o=e.mediaGroups.AUDIO[r.AUDIO];if(o)for(var u in a=!(s=!0),o)if(!o[u].uri&&!o[u].playlists){a=!0;break}}s&&!n.audioProfile&&(a||(n.audioProfile=function(e,t){if(!e.mediaGroups.AUDIO||!t)return null;var i=e.mediaGroups.AUDIO[t];if(!i)return null;for(var n in i){var r=i[n];if(r.default&&r.playlists)return $l(r.playlists[0].attributes.CODECS).audioProfile}return null}(e,r.AUDIO)),n.audioProfile||(fs.log.warn("Multiple audio tracks present but no audio codec string is specified. Attempting to use the default audio codec (mp4a.40.2)"),n.audioProfile=Jl.audioProfile));var l={};n.videoCodec&&(l.video=""+n.videoCodec+n.videoObjectTypeIndicator),n.audioProfile&&(l.audio="mp4a.40."+n.audioProfile);var c=Gl("audio",i,[l.audio]),h=Gl("video",i,[l.video]),d=Gl("video",i,[l.video,l.audio]);return s?!a&&l.video?[h,c]:a||l.video?[d,c]:[c,c]:l.video?[d]:[c]}function Kl(e){return/mp4a\.\d+.\d+/i.test(e)}function Yl(e){return/avc1\.[\da-f]+/i.test(e)}var Ql=new Fl("./transmuxer-worker.worker.js",function(e,t){var kt=this;!function(){function e(){this.init=function(){var a={};this.on=function(e,t){a[e]||(a[e]=[]),a[e]=a[e].concat(t)},this.off=function(e,t){var i;return!!a[e]&&(i=a[e].indexOf(t),a[e]=a[e].slice(),a[e].splice(i,1),-1<i)},this.trigger=function(e){var t,i,n,r;if(t=a[e])if(2===arguments.length)for(n=t.length,i=0;i<n;++i)t[i].call(this,arguments[1]);else{for(r=[],i=arguments.length,i=1;i<arguments.length;++i)r.push(arguments[i]);for(n=t.length,i=0;i<n;++i)t[i].apply(this,r)}},this.dispose=function(){a={}}}}e.prototype.pipe=function(t){return this.on("data",function(e){t.push(e)}),this.on("done",function(e){t.flush(e)}),this.on("partialdone",function(e){t.partialFlush(e)}),this.on("endedtimeline",function(e){t.endTimeline(e)}),this.on("reset",function(e){t.reset(e)}),t},e.prototype.push=function(e){this.trigger("data",e)},e.prototype.flush=function(e){this.trigger("done",e)},e.prototype.partialFlush=function(e){this.trigger("partialdone",e)},e.prototype.endTimeline=function(e){this.trigger("endedtimeline",e)},e.prototype.reset=function(e){this.trigger("reset",e)};var l,t,i,r,a,n,s,o,u,c,h,d,p,f,m,g,y,v,_,b,T,S,k,C,E,w,A,P,I,L,O,x,D,U,R,M,N,B,j,F,H=e,V=Math.pow(2,32)-1;!function(){var e;if(S={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],pasp:[],sdtp:[],smhd:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],styp:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[]},"undefined"!=typeof Uint8Array){for(e in S)S.hasOwnProperty(e)&&(S[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);k=new Uint8Array(["i".charCodeAt(0),"s".charCodeAt(0),"o".charCodeAt(0),"m".charCodeAt(0)]),E=new Uint8Array(["a".charCodeAt(0),"v".charCodeAt(0),"c".charCodeAt(0),"1".charCodeAt(0)]),C=new Uint8Array([0,0,0,1]),w=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),A=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),P={video:w,audio:A},O=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),L=new Uint8Array([0,0,0,0,0,0,0,0]),x=new Uint8Array([0,0,0,0,0,0,0,0]),D=x,U=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),R=x,I=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}}(),l=function(e){var t,i,n=[],r=0;for(t=1;t<arguments.length;t++)n.push(arguments[t]);for(t=n.length;t--;)r+=n[t].byteLength;for(i=new Uint8Array(r+8),new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,i.byteLength),i.set(e,4),t=0,r=8;t<n.length;t++)i.set(n[t],r),r+=n[t].byteLength;return i},t=function(){return l(S.dinf,l(S.dref,O))},i=function(e){return l(S.esds,new Uint8Array([0,0,0,0,3,25,0,0,0,4,17,64,21,0,6,0,0,0,218,192,0,0,218,192,5,2,e.audioobjecttype<<3|e.samplingfrequencyindex>>>1,e.samplingfrequencyindex<<7|e.channelcount<<3,6,1,2]))},m=function(e){return l(S.hdlr,P[e])},f=function(e){var t=new Uint8Array([0,0,0,0,0,0,0,2,0,0,0,3,0,1,95,144,e.duration>>>24&255,e.duration>>>16&255,e.duration>>>8&255,255&e.duration,85,196,0,0]);return e.samplerate&&(t[12]=e.samplerate>>>24&255,t[13]=e.samplerate>>>16&255,t[14]=e.samplerate>>>8&255,t[15]=255&e.samplerate),l(S.mdhd,t)},p=function(e){return l(S.mdia,f(e),m(e.type),n(e))},a=function(e){return l(S.mfhd,new Uint8Array([0,0,0,0,(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e]))},n=function(e){return l(S.minf,"video"===e.type?l(S.vmhd,I):l(S.smhd,L),t(),y(e))},s=function(e,t){for(var i=[],n=t.length;n--;)i[n]=_(t[n]);return l.apply(null,[S.moof,a(e)].concat(i))},o=function(e){for(var t=e.length,i=[];t--;)i[t]=h(e[t]);return l.apply(null,[S.moov,c(4294967295)].concat(i).concat(u(e)))},u=function(e){for(var t=e.length,i=[];t--;)i[t]=b(e[t]);return l.apply(null,[S.mvex].concat(i))},c=function(e){var t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,2,0,1,95,144,(4278190080&e)>>24,(16711680&e)>>16,(65280&e)>>8,255&e,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return l(S.mvhd,t)},g=function(e){var t,i,n=e.samples||[],r=new Uint8Array(4+n.length);for(i=0;i<n.length;i++)t=n[i].flags,r[i+4]=t.dependsOn<<4|t.isDependedOn<<2|t.hasRedundancy;return l(S.sdtp,r)},y=function(e){return l(S.stbl,v(e),l(S.stts,R),l(S.stsc,D),l(S.stsz,U),l(S.stco,x))},v=function(e){return l(S.stsd,new Uint8Array([0,0,0,0,0,0,0,1]),"video"===e.type?M(e):N(e))},M=function(e){var t,i,n=e.sps||[],r=e.pps||[],a=[],s=[];for(t=0;t<n.length;t++)a.push((65280&n[t].byteLength)>>>8),a.push(255&n[t].byteLength),a=a.concat(Array.prototype.slice.call(n[t]));for(t=0;t<r.length;t++)s.push((65280&r[t].byteLength)>>>8),s.push(255&r[t].byteLength),s=s.concat(Array.prototype.slice.call(r[t]));if(i=[S.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(65280&e.width)>>8,255&e.width,(65280&e.height)>>8,255&e.height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,19,118,105,100,101,111,106,115,45,99,111,110,116,114,105,98,45,104,108,115,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),l(S.avcC,new Uint8Array([1,e.profileIdc,e.profileCompatibility,e.levelIdc,255].concat([n.length],a,[r.length],s))),l(S.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192]))],e.sarRatio){var o=e.sarRatio[0],u=e.sarRatio[1];i.push(l(S.pasp,new Uint8Array([(4278190080&o)>>24,(16711680&o)>>16,(65280&o)>>8,255&o,(4278190080&u)>>24,(16711680&u)>>16,(65280&u)>>8,255&u])))}return l.apply(null,i)},N=function(e){return l(S.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,(65280&e.channelcount)>>8,255&e.channelcount,(65280&e.samplesize)>>8,255&e.samplesize,0,0,0,0,(65280&e.samplerate)>>8,255&e.samplerate,0,0]),i(e))},d=function(e){var t=new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,(4278190080&e.id)>>24,(16711680&e.id)>>16,(65280&e.id)>>8,255&e.id,0,0,0,0,(4278190080&e.duration)>>24,(16711680&e.duration)>>16,(65280&e.duration)>>8,255&e.duration,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,(65280&e.width)>>8,255&e.width,0,0,(65280&e.height)>>8,255&e.height,0,0]);return l(S.tkhd,t)},_=function(e){var t,i,n,r,a,s;return t=l(S.tfhd,new Uint8Array([0,0,0,58,(4278190080&e.id)>>24,(16711680&e.id)>>16,(65280&e.id)>>8,255&e.id,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0])),a=Math.floor(e.baseMediaDecodeTime/(1+V)),s=Math.floor(e.baseMediaDecodeTime%(1+V)),i=l(S.tfdt,new Uint8Array([1,0,0,0,a>>>24&255,a>>>16&255,a>>>8&255,255&a,s>>>24&255,s>>>16&255,s>>>8&255,255&s])),92,"audio"===e.type?(n=T(e,92),l(S.traf,t,i,n)):(r=g(e),n=T(e,r.length+92),l(S.traf,t,i,n,r))},h=function(e){return e.duration=e.duration||4294967295,l(S.trak,d(e),p(e))},b=function(e){var t=new Uint8Array([0,0,0,0,(4278190080&e.id)>>24,(16711680&e.id)>>16,(65280&e.id)>>8,255&e.id,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return"video"!==e.type&&(t[t.length-1]=0),l(S.trex,t)},F=function(e,t){var i=0,n=0,r=0,a=0;return e.length&&(void 0!==e[0].duration&&(i=1),void 0!==e[0].size&&(n=2),void 0!==e[0].flags&&(r=4),void 0!==e[0].compositionTimeOffset&&(a=8)),[0,0,i|n|r|a,1,(4278190080&e.length)>>>24,(16711680&e.length)>>>16,(65280&e.length)>>>8,255&e.length,(4278190080&t)>>>24,(16711680&t)>>>16,(65280&t)>>>8,255&t]},j=function(e,t){var i,n,r,a;for(t+=20+16*(n=e.samples||[]).length,i=F(n,t),a=0;a<n.length;a++)r=n[a],i=i.concat([(4278190080&r.duration)>>>24,(16711680&r.duration)>>>16,(65280&r.duration)>>>8,255&r.duration,(4278190080&r.size)>>>24,(16711680&r.size)>>>16,(65280&r.size)>>>8,255&r.size,r.flags.isLeading<<2|r.flags.dependsOn,r.flags.isDependedOn<<6|r.flags.hasRedundancy<<4|r.flags.paddingValue<<1|r.flags.isNonSyncSample,61440&r.flags.degradationPriority,15&r.flags.degradationPriority,(4278190080&r.compositionTimeOffset)>>>24,(16711680&r.compositionTimeOffset)>>>16,(65280&r.compositionTimeOffset)>>>8,255&r.compositionTimeOffset]);return l(S.trun,new Uint8Array(i))},B=function(e,t){var i,n,r,a;for(t+=20+8*(n=e.samples||[]).length,i=F(n,t),a=0;a<n.length;a++)r=n[a],i=i.concat([(4278190080&r.duration)>>>24,(16711680&r.duration)>>>16,(65280&r.duration)>>>8,255&r.duration,(4278190080&r.size)>>>24,(16711680&r.size)>>>16,(65280&r.size)>>>8,255&r.size]);return l(S.trun,new Uint8Array(i))},T=function(e,t){return"audio"===e.type?B(e,t):j(e,t)};r=function(){return l(S.ftyp,k,C,k,E)};function q(e,t){var i={size:0,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0,degradationPriority:0,isNonSyncSample:1}};return i.dataOffset=t,i.compositionTimeOffset=e.pts-e.dts,i.duration=e.duration,i.size=4*e.length,i.size+=e.byteLength,e.keyFrame&&(i.flags.dependsOn=2,i.flags.isNonSyncSample=0),i}function W(e){for(var t=[];e--;)t.push(0);return t}function z(){z.prototype.init.call(this),this.captionPackets_=[],this.ccStreams_=[new Ie(0,0),new Ie(0,1),new Ie(1,0),new Ie(1,1)],this.reset(),this.ccStreams_.forEach(function(e){e.on("data",this.trigger.bind(this,"data")),e.on("partialdone",this.trigger.bind(this,"partialdone")),e.on("done",this.trigger.bind(this,"done"))},this)}var $,G,X,K,Y,Q=function(e){return l(S.mdat,e)},J=s,Z=function(e){var t,i=r(),n=o(e);return(t=new Uint8Array(i.byteLength+n.byteLength)).set(i),t.set(n,i.byteLength),t},ee=function(e){var t,i,n=[],r=[];for(r.byteLength=0,r.nalCount=0,r.duration=0,t=n.byteLength=0;t<e.length;t++)"access_unit_delimiter_rbsp"===(i=e[t]).nalUnitType?(n.length&&(n.duration=i.dts-n.dts,r.byteLength+=n.byteLength,r.nalCount+=n.length,r.duration+=n.duration,r.push(n)),(n=[i]).byteLength=i.data.byteLength,n.pts=i.pts,n.dts=i.dts):("slice_layer_without_partitioning_rbsp_idr"===i.nalUnitType&&(n.keyFrame=!0),n.duration=i.dts-n.dts,n.byteLength+=i.data.byteLength,n.push(i));return r.length&&(!n.duration||n.duration<=0)&&(n.duration=r[r.length-1].duration),r.byteLength+=n.byteLength,r.nalCount+=n.length,r.duration+=n.duration,r.push(n),r},te=function(e){var t,i,n=[],r=[];for(n.byteLength=0,n.nalCount=0,n.duration=0,n.pts=e[0].pts,n.dts=e[0].dts,r.byteLength=0,r.nalCount=0,r.duration=0,r.pts=e[0].pts,r.dts=e[0].dts,t=0;t<e.length;t++)(i=e[t]).keyFrame?(n.length&&(r.push(n),r.byteLength+=n.byteLength,r.nalCount+=n.nalCount,r.duration+=n.duration),(n=[i]).nalCount=i.length,n.byteLength=i.byteLength,n.pts=i.pts,n.dts=i.dts,n.duration=i.duration):(n.duration+=i.duration,n.nalCount+=i.length,n.byteLength+=i.byteLength,n.push(i));return r.length&&n.duration<=0&&(n.duration=r[r.length-1].duration),r.byteLength+=n.byteLength,r.nalCount+=n.nalCount,r.duration+=n.duration,r.push(n),r},ie=function(e){var t;return!e[0][0].keyFrame&&1<e.length&&(t=e.shift(),e.byteLength-=t.byteLength,e.nalCount-=t.nalCount,e[0][0].dts=t.dts,e[0][0].pts=t.pts,e[0][0].duration+=t.duration),e},ne=function(e,t){var i,n,r,a,s,o=t||0,u=[];for(i=0;i<e.length;i++)for(a=e[i],n=0;n<a.length;n++)s=a[n],o+=(r=q(s,o)).size,u.push(r);return u},re=function(e){var t,i,n,r,a,s,o=0,u=e.byteLength,l=e.nalCount,c=new Uint8Array(u+4*l),h=new DataView(c.buffer);for(t=0;t<e.length;t++)for(r=e[t],i=0;i<r.length;i++)for(a=r[i],n=0;n<a.length;n++)s=a[n],h.setUint32(o,s.data.byteLength),o+=4,c.set(s.data,o),o+=s.data.byteLength;return c},ae=[33,16,5,32,164,27],se=[33,65,108,84,1,2,4,8,168,2,4,8,17,191,252],oe={96e3:[ae,[227,64],W(154),[56]],88200:[ae,[231],W(170),[56]],64e3:[ae,[248,192],W(240),[56]],48e3:[ae,[255,192],W(268),[55,148,128],W(54),[112]],44100:[ae,[255,192],W(268),[55,163,128],W(84),[112]],32e3:[ae,[255,192],W(268),[55,234],W(226),[112]],24e3:[ae,[255,192],W(268),[55,255,128],W(268),[111,112],W(126),[224]],16e3:[ae,[255,192],W(268),[55,255,128],W(268),[111,255],W(269),[223,108],W(195),[1,192]],12e3:[se,W(268),[3,127,248],W(268),[6,255,240],W(268),[13,255,224],W(268),[27,253,128],W(259),[56]],11025:[se,W(268),[3,127,248],W(268),[6,255,240],W(268),[13,255,224],W(268),[27,255,192],W(268),[55,175,128],W(108),[112]],8e3:[se,W(268),[3,121,16],W(47),[7]]},ue=($=oe,Object.keys($).reduce(function(e,t){return e[t]=new Uint8Array($[t].reduce(function(e,t){return e.concat(t)},[])),e},{})),le=9e4,ce=(G=function(e){return 9e4*e},X=function(e,t){return e*t},K=function(e){return e/9e4},Y=function(e,t){return e/t},function(e,t){return G(Y(e,t))}),he=function(e,t){return X(K(e),t)},de=function(e,t,i){return K(i?e:e-t)},pe=function(e,t,i,n){var r,a,s,o,u,l=0,c=0,h=0;if(t.length&&(r=ce(e.baseMediaDecodeTime,e.samplerate),a=Math.ceil(le/(e.samplerate/1024)),i&&n&&(l=r-Math.max(i,n),h=(c=Math.floor(l/a))*a),!(c<1||le/2<h))){for(s=(s=ue[e.samplerate])||t[0].data,o=0;o<c;o++)u=t[0],t.splice(0,0,{data:s,dts:u.dts-a,pts:u.pts-a});e.baseMediaDecodeTime-=Math.floor(he(h,e.samplerate))}},fe=function(e,t,i){return t.minSegmentDts>=i?e:(t.minSegmentDts=1/0,e.filter(function(e){return e.dts>=i&&(t.minSegmentDts=Math.min(t.minSegmentDts,e.dts),t.minSegmentPts=t.minSegmentDts,!0)}))},me=function(e){var t,i,n=[];for(t=0;t<e.length;t++)i=e[t],n.push({size:i.data.byteLength,duration:1024});return n},ge=function(e){var t,i,n=0,r=new Uint8Array(function(e){var t,i=0;for(t=0;t<e.length;t++)i+=e[t].data.byteLength;return i}(e));for(t=0;t<e.length;t++)i=e[t],r.set(i.data,n),n+=i.data.byteLength;return r},ye=le,ve=function(e){delete e.minSegmentDts,delete e.maxSegmentDts,delete e.minSegmentPts,delete e.maxSegmentPts},_e=function(e,t){var i,n=e.minSegmentDts;return t||(n-=e.timelineStartInfo.dts),i=e.timelineStartInfo.baseMediaDecodeTime,i+=n,i=Math.max(0,i),"audio"===e.type&&(i*=e.samplerate/ye,i=Math.floor(i)),i},be=function(e,t){"number"==typeof t.pts&&(void 0===e.timelineStartInfo.pts&&(e.timelineStartInfo.pts=t.pts),void 0===e.minSegmentPts?e.minSegmentPts=t.pts:e.minSegmentPts=Math.min(e.minSegmentPts,t.pts),void 0===e.maxSegmentPts?e.maxSegmentPts=t.pts:e.maxSegmentPts=Math.max(e.maxSegmentPts,t.pts)),"number"==typeof t.dts&&(void 0===e.timelineStartInfo.dts&&(e.timelineStartInfo.dts=t.dts),void 0===e.minSegmentDts?e.minSegmentDts=t.dts:e.minSegmentDts=Math.min(e.minSegmentDts,t.dts),void 0===e.maxSegmentDts?e.maxSegmentDts=t.dts:e.maxSegmentDts=Math.max(e.maxSegmentDts,t.dts))},Te=function(e){for(var t=0,i={payloadType:-1,payloadSize:0},n=0,r=0;t<e.byteLength&&128!==e[t];){for(;255===e[t];)n+=255,t++;for(n+=e[t++];255===e[t];)r+=255,t++;if(r+=e[t++],!i.payload&&4===n){i.payloadType=n,i.payloadSize=r,i.payload=e.subarray(t,t+r);break}t+=r,r=n=0}return i},Se=function(e){return 181!==e.payload[0]?null:49!=(e.payload[1]<<8|e.payload[2])?null:"GA94"!==String.fromCharCode(e.payload[3],e.payload[4],e.payload[5],e.payload[6])?null:3!==e.payload[7]?null:e.payload.subarray(8,e.payload.length-1)},ke=function(e,t){var i,n,r,a,s=[];if(!(64&t[0]))return s;for(n=31&t[0],i=0;i<n;i++)a={type:3&t[2+(r=3*i)],pts:e},4&t[2+r]&&(a.ccData=t[3+r]<<8|t[4+r],s.push(a));return s},Ce=4;(z.prototype=new H).push=function(e){var t,i,n;if("sei_rbsp"===e.nalUnitType&&(t=Te(e.escapedRBSP)).payloadType===Ce&&(i=Se(t)))if(e.dts<this.latestDts_)this.ignoreNextEqualDts_=!0;else{if(e.dts===this.latestDts_&&this.ignoreNextEqualDts_)return this.numSameDts_--,void(this.numSameDts_||(this.ignoreNextEqualDts_=!1));n=ke(e.pts,i),this.captionPackets_=this.captionPackets_.concat(n),this.latestDts_!==e.dts&&(this.numSameDts_=0),this.numSameDts_++,this.latestDts_=e.dts}},z.prototype.flushCCStreams=function(t){this.ccStreams_.forEach(function(e){return"flush"===t?e.flush():e.partialFlush()},this)},z.prototype.flushStream=function(e){this.captionPackets_.length&&(this.captionPackets_.forEach(function(e,t){e.presortIndex=t}),this.captionPackets_.sort(function(e,t){return e.pts===t.pts?e.presortIndex-t.presortIndex:e.pts-t.pts}),this.captionPackets_.forEach(function(e){e.type<2&&this.dispatchCea608Packet(e)},this),this.captionPackets_.length=0),this.flushCCStreams(e)},z.prototype.flush=function(){return this.flushStream("flush")},z.prototype.partialFlush=function(){return this.flushStream("partialFlush")},z.prototype.reset=function(){this.latestDts_=null,this.ignoreNextEqualDts_=!1,this.numSameDts_=0,this.activeCea608Channel_=[null,null],this.ccStreams_.forEach(function(e){e.reset()})},z.prototype.dispatchCea608Packet=function(e){this.setsTextOrXDSActive(e)?this.activeCea608Channel_[e.type]=null:this.setsChannel1Active(e)?this.activeCea608Channel_[e.type]=0:this.setsChannel2Active(e)&&(this.activeCea608Channel_[e.type]=1),null!==this.activeCea608Channel_[e.type]&&this.ccStreams_[(e.type<<1)+this.activeCea608Channel_[e.type]].push(e)},z.prototype.setsChannel1Active=function(e){return 4096==(30720&e.ccData)},z.prototype.setsChannel2Active=function(e){return 6144==(30720&e.ccData)},z.prototype.setsTextOrXDSActive=function(e){return 256==(28928&e.ccData)||4138==(30974&e.ccData)||6186==(30974&e.ccData)};function Ee(e){return null===e?"":(e=Ae[e]||e,String.fromCharCode(e))}function we(){for(var e=[],t=15;t--;)e.push("");return e}var Ae={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,304:174,305:176,306:189,307:191,308:8482,309:162,310:163,311:9834,312:224,313:160,314:232,315:226,316:234,317:238,318:244,319:251,544:193,545:201,546:211,547:218,548:220,549:252,550:8216,551:161,552:42,553:39,554:8212,555:169,556:8480,557:8226,558:8220,559:8221,560:192,561:194,562:199,563:200,564:202,565:203,566:235,567:206,568:207,569:239,570:212,571:217,572:249,573:219,574:171,575:187,800:195,801:227,802:205,803:204,804:236,805:210,806:242,807:213,808:245,809:123,810:125,811:92,812:94,813:95,814:124,815:126,816:196,817:228,818:214,819:246,820:223,821:165,822:164,823:9474,824:197,825:229,826:216,827:248,828:9484,829:9488,830:9492,831:9496},Pe=[4352,4384,4608,4640,5376,5408,5632,5664,5888,5920,4096,4864,4896,5120,5152],Ie=function e(t,i){e.prototype.init.call(this),this.field_=t||0,this.dataChannel_=i||0,this.name_="CC"+(1+(this.field_<<1|this.dataChannel_)),this.setConstants(),this.reset(),this.push=function(e){var t,i,n,r,a;if((t=32639&e.ccData)!==this.lastControlCode_){if(4096==(61440&t)?this.lastControlCode_=t:t!==this.PADDING_&&(this.lastControlCode_=null),n=t>>>8,r=255&t,t!==this.PADDING_)if(t===this.RESUME_CAPTION_LOADING_)this.mode_="popOn";else if(t===this.END_OF_CAPTION_)this.mode_="popOn",this.clearFormatting(e.pts),this.flushDisplayed(e.pts),i=this.displayed_,this.displayed_=this.nonDisplayed_,this.nonDisplayed_=i,this.startPts_=e.pts;else if(t===this.ROLL_UP_2_ROWS_)this.rollUpRows_=2,this.setRollUp(e.pts);else if(t===this.ROLL_UP_3_ROWS_)this.rollUpRows_=3,this.setRollUp(e.pts);else if(t===this.ROLL_UP_4_ROWS_)this.rollUpRows_=4,this.setRollUp(e.pts);else if(t===this.CARRIAGE_RETURN_)this.clearFormatting(e.pts),this.flushDisplayed(e.pts),this.shiftRowsUp_(),this.startPts_=e.pts;else if(t===this.BACKSPACE_)"popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[this.row_]=this.displayed_[this.row_].slice(0,-1);else if(t===this.ERASE_DISPLAYED_MEMORY_)this.flushDisplayed(e.pts),this.displayed_=we();else if(t===this.ERASE_NON_DISPLAYED_MEMORY_)this.nonDisplayed_=we();else if(t===this.RESUME_DIRECT_CAPTIONING_)"paintOn"!==this.mode_&&(this.flushDisplayed(e.pts),this.displayed_=we()),this.mode_="paintOn",this.startPts_=e.pts;else if(this.isSpecialCharacter(n,r))a=Ee((n=(3&n)<<8)|r),this[this.mode_](e.pts,a),this.column_++;else if(this.isExtCharacter(n,r))"popOn"===this.mode_?this.nonDisplayed_[this.row_]=this.nonDisplayed_[this.row_].slice(0,-1):this.displayed_[this.row_]=this.displayed_[this.row_].slice(0,-1),a=Ee((n=(3&n)<<8)|r),this[this.mode_](e.pts,a),this.column_++;else if(this.isMidRowCode(n,r))this.clearFormatting(e.pts),this[this.mode_](e.pts," "),this.column_++,14==(14&r)&&this.addFormatting(e.pts,["i"]),1==(1&r)&&this.addFormatting(e.pts,["u"]);else if(this.isOffsetControlCode(n,r))this.column_+=3&r;else if(this.isPAC(n,r)){var s=Pe.indexOf(7968&t);"rollUp"===this.mode_&&(s-this.rollUpRows_+1<0&&(s=this.rollUpRows_-1),this.setRollUp(e.pts,s)),s!==this.row_&&(this.clearFormatting(e.pts),this.row_=s),1&r&&-1===this.formatting_.indexOf("u")&&this.addFormatting(e.pts,["u"]),16==(16&t)&&(this.column_=4*((14&t)>>1)),this.isColorPAC(r)&&14==(14&r)&&this.addFormatting(e.pts,["i"])}else this.isNormalChar(n)&&(0===r&&(r=null),a=Ee(n),a+=Ee(r),this[this.mode_](e.pts,a),this.column_+=a.length)}else this.lastControlCode_=null}};Ie.prototype=new H,Ie.prototype.flushDisplayed=function(e){var t=this.displayed_.map(function(e){try{return e.trim()}catch(e){return""}}).join("\n").replace(/^\n+|\n+$/g,"");t.length&&this.trigger("data",{startPts:this.startPts_,endPts:e,text:t,stream:this.name_})},Ie.prototype.reset=function(){this.mode_="popOn",this.topRow_=0,this.startPts_=0,this.displayed_=we(),this.nonDisplayed_=we(),this.lastControlCode_=null,this.column_=0,this.row_=14,this.rollUpRows_=2,this.formatting_=[]},Ie.prototype.setConstants=function(){0===this.dataChannel_?(this.BASE_=16,this.EXT_=17,this.CONTROL_=(20|this.field_)<<8,this.OFFSET_=23):1===this.dataChannel_&&(this.BASE_=24,this.EXT_=25,this.CONTROL_=(28|this.field_)<<8,this.OFFSET_=31),this.PADDING_=0,this.RESUME_CAPTION_LOADING_=32|this.CONTROL_,this.END_OF_CAPTION_=47|this.CONTROL_,this.ROLL_UP_2_ROWS_=37|this.CONTROL_,this.ROLL_UP_3_ROWS_=38|this.CONTROL_,this.ROLL_UP_4_ROWS_=39|this.CONTROL_,this.CARRIAGE_RETURN_=45|this.CONTROL_,this.RESUME_DIRECT_CAPTIONING_=41|this.CONTROL_,this.BACKSPACE_=33|this.CONTROL_,this.ERASE_DISPLAYED_MEMORY_=44|this.CONTROL_,this.ERASE_NON_DISPLAYED_MEMORY_=46|this.CONTROL_},Ie.prototype.isSpecialCharacter=function(e,t){return e===this.EXT_&&48<=t&&t<=63},Ie.prototype.isExtCharacter=function(e,t){return(e===this.EXT_+1||e===this.EXT_+2)&&32<=t&&t<=63},Ie.prototype.isMidRowCode=function(e,t){return e===this.EXT_&&32<=t&&t<=47},Ie.prototype.isOffsetControlCode=function(e,t){return e===this.OFFSET_&&33<=t&&t<=35},Ie.prototype.isPAC=function(e,t){return e>=this.BASE_&&e<this.BASE_+8&&64<=t&&t<=127},Ie.prototype.isColorPAC=function(e){return 64<=e&&e<=79||96<=e&&e<=127},Ie.prototype.isNormalChar=function(e){return 32<=e&&e<=127},Ie.prototype.setRollUp=function(e,t){if("rollUp"!==this.mode_&&(this.row_=14,this.mode_="rollUp",this.flushDisplayed(e),this.nonDisplayed_=we(),this.displayed_=we()),void 0!==t&&t!==this.row_)for(var i=0;i<this.rollUpRows_;i++)this.displayed_[t-i]=this.displayed_[this.row_-i],this.displayed_[this.row_-i]="";void 0===t&&(t=this.row_),this.topRow_=t-this.rollUpRows_+1},Ie.prototype.addFormatting=function(e,t){this.formatting_=this.formatting_.concat(t);var i=t.reduce(function(e,t){return e+"<"+t+">"},"");this[this.mode_](e,i)},Ie.prototype.clearFormatting=function(e){if(this.formatting_.length){var t=this.formatting_.reverse().reduce(function(e,t){return e+"</"+t+">"},"");this.formatting_=[],this[this.mode_](e,t)}},Ie.prototype.popOn=function(e,t){var i=this.nonDisplayed_[this.row_];i+=t,this.nonDisplayed_[this.row_]=i},Ie.prototype.rollUp=function(e,t){var i=this.displayed_[this.row_];i+=t,this.displayed_[this.row_]=i},Ie.prototype.shiftRowsUp_=function(){var e;for(e=0;e<this.topRow_;e++)this.displayed_[e]="";for(e=this.row_+1;e<15;e++)this.displayed_[e]="";for(e=this.topRow_;e<this.row_;e++)this.displayed_[e]=this.displayed_[e+1];this.displayed_[this.row_]=""},Ie.prototype.paintOn=function(e,t){var i=this.displayed_[this.row_];i+=t,this.displayed_[this.row_]=i};function Le(e,t){var i=1;for(t<e&&(i=-1);4294967296<Math.abs(t-e);)e+=8589934592*i;return e}function Oe(e){var t,i;Oe.prototype.init.call(this),this.type_=e||"shared",this.push=function(e){"shared"!==this.type_&&e.type!==this.type_||(void 0===i&&(i=e.dts),e.dts=Le(e.dts,i),e.pts=Le(e.pts,i),t=e.dts,this.trigger("data",e))},this.flush=function(){i=t,this.trigger("done")},this.endTimeline=function(){this.flush(),this.trigger("endedtimeline")},this.discontinuity=function(){t=i=void 0},this.reset=function(){this.discontinuity(),this.trigger("reset")}}var xe={CaptionStream:z,Cea608Stream:Ie},De={H264_STREAM_TYPE:27,ADTS_STREAM_TYPE:15,METADATA_STREAM_TYPE:21};Oe.prototype=new H;function Ue(e,t,i){var n,r="";for(n=t;n<i;n++)r+="%"+("00"+e[n].toString(16)).slice(-2);return r}function Re(e,t,i){return decodeURIComponent(Ue(e,t,i))}function Me(e){return e[0]<<21|e[1]<<14|e[2]<<7|e[3]}var Ne,Be=Oe,je={TXXX:function(e){var t;if(3===e.data[0]){for(t=1;t<e.data.length;t++)if(0===e.data[t]){e.description=Re(e.data,1,t),e.value=Re(e.data,t+1,e.data.length).replace(/\0*$/,"");break}e.data=e.value}},WXXX:function(e){var t;if(3===e.data[0])for(t=1;t<e.data.length;t++)if(0===e.data[t]){e.description=Re(e.data,1,t),e.url=Re(e.data,t+1,e.data.length);break}},PRIV:function(e){var t,i;for(t=0;t<e.data.length;t++)if(0===e.data[t]){e.owner=(i=e.data,unescape(Ue(i,0,t)));break}e.privateData=e.data.subarray(t+1),e.data=e.privateData}};(Ne=function(e){var t,u={debug:!(!e||!e.debug),descriptor:e&&e.descriptor},l=0,c=[],h=0;if(Ne.prototype.init.call(this),this.dispatchType=De.METADATA_STREAM_TYPE.toString(16),u.descriptor)for(t=0;t<u.descriptor.length;t++)this.dispatchType+=("00"+u.descriptor[t].toString(16)).slice(-2);this.push=function(e){var t,i,n,r,a;if("timed-metadata"===e.type)if(e.dataAlignmentIndicator&&(h=0,c.length=0),0===c.length&&(e.data.length<10||e.data[0]!=="I".charCodeAt(0)||e.data[1]!=="D".charCodeAt(0)||e.data[2]!=="3".charCodeAt(0)))u.debug;else if(c.push(e),h+=e.data.byteLength,1===c.length&&(l=Me(e.data.subarray(6,10)),l+=10),!(h<l)){for(t={data:new Uint8Array(l),frames:[],pts:c[0].pts,dts:c[0].dts},a=0;a<l;)t.data.set(c[0].data.subarray(0,l-a),a),a+=c[0].data.byteLength,h-=c[0].data.byteLength,c.shift();i=10,64&t.data[5]&&(i+=4,i+=Me(t.data.subarray(10,14)),l-=Me(t.data.subarray(16,20)));do{if((n=Me(t.data.subarray(i+4,i+8)))<1)return;if((r={id:String.fromCharCode(t.data[i],t.data[i+1],t.data[i+2],t.data[i+3]),data:t.data.subarray(i+10,i+n+10)}).key=r.id,je[r.id]&&(je[r.id](r),"com.apple.streaming.transportStreamTimestamp"===r.owner)){var s=r.data,o=(1&s[3])<<30|s[4]<<22|s[5]<<14|s[6]<<6|s[7]>>>2;o*=4,o+=3&s[7],r.timeStamp=o,void 0===t.pts&&void 0===t.dts&&(t.pts=r.timeStamp,t.dts=r.timeStamp),this.trigger("timestamp",r)}t.frames.push(r),i+=10,i+=n}while(i<l);this.trigger("data",t)}}}).prototype=new H;var Fe,He,Ve,qe=Ne,We=Be;(Fe=function(){var r=new Uint8Array(188),a=0;Fe.prototype.init.call(this),this.push=function(e){var t,i=0,n=188;for(a?((t=new Uint8Array(e.byteLength+a)).set(r.subarray(0,a)),t.set(e,a),a=0):t=e;n<t.byteLength;)71!==t[i]||71!==t[n]?(i++,n++):(this.trigger("data",t.subarray(i,n)),i+=188,n+=188);i<t.byteLength&&(r.set(t.subarray(i),0),a=t.byteLength-i)},this.flush=function(){188===a&&71===r[0]&&(this.trigger("data",r),a=0),this.trigger("done")},this.endTimeline=function(){this.flush(),this.trigger("endedtimeline")},this.reset=function(){a=0,this.trigger("reset")}}).prototype=new H,(He=function(){var n,r,a,s;He.prototype.init.call(this),(s=this).packetsWaitingForPmt=[],this.programMapTable=void 0,n=function(e,t){var i=0;t.payloadUnitStartIndicator&&(i+=e[i]+1),"pat"===t.type?r(e.subarray(i),t):a(e.subarray(i),t)},r=function(e,t){t.section_number=e[7],t.last_section_number=e[8],s.pmtPid=(31&e[10])<<8|e[11],t.pmtPid=s.pmtPid},a=function(e,t){var i,n;if(1&e[5]){for(s.programMapTable={video:null,audio:null,"timed-metadata":{}},i=3+((15&e[1])<<8|e[2])-4,n=12+((15&e[10])<<8|e[11]);n<i;){var r=e[n],a=(31&e[n+1])<<8|e[n+2];r===De.H264_STREAM_TYPE&&null===s.programMapTable.video?s.programMapTable.video=a:r===De.ADTS_STREAM_TYPE&&null===s.programMapTable.audio?s.programMapTable.audio=a:r===De.METADATA_STREAM_TYPE&&(s.programMapTable["timed-metadata"][a]=r),n+=5+((15&e[n+3])<<8|e[n+4])}t.programMapTable=s.programMapTable}},this.push=function(e){var t={},i=4;if(t.payloadUnitStartIndicator=!!(64&e[1]),t.pid=31&e[1],t.pid<<=8,t.pid|=e[2],1<(48&e[3])>>>4&&(i+=e[i]+1),0===t.pid)t.type="pat",n(e.subarray(i),t),this.trigger("data",t);else if(t.pid===this.pmtPid)for(t.type="pmt",n(e.subarray(i),t),this.trigger("data",t);this.packetsWaitingForPmt.length;)this.processPes_.apply(this,this.packetsWaitingForPmt.shift());else void 0===this.programMapTable?this.packetsWaitingForPmt.push([e,i,t]):this.processPes_(e,i,t)},this.processPes_=function(e,t,i){i.pid===this.programMapTable.video?i.streamType=De.H264_STREAM_TYPE:i.pid===this.programMapTable.audio?i.streamType=De.ADTS_STREAM_TYPE:i.streamType=this.programMapTable["timed-metadata"][i.pid],i.type="pes",i.data=e.subarray(t),this.trigger("data",i)}}).prototype=new H,He.STREAM_TYPES={h264:27,adts:15},(Ve=function(){function n(e,t,i){var n,r,a=new Uint8Array(e.size),s={type:t},o=0,u=0;if(e.data.length&&!(e.size<9)){for(s.trackId=e.data[0].pid,o=0;o<e.data.length;o++)r=e.data[o],a.set(r.data,u),u+=r.data.byteLength;!function(e,t){var i;t.packetLength=6+(e[4]<<8|e[5]),t.dataAlignmentIndicator=0!=(4&e[6]),192&(i=e[7])&&(t.pts=(14&e[9])<<27|(255&e[10])<<20|(254&e[11])<<12|(255&e[12])<<5|(254&e[13])>>>3,t.pts*=4,t.pts+=(6&e[13])>>>1,t.dts=t.pts,64&i&&(t.dts=(14&e[14])<<27|(255&e[15])<<20|(254&e[16])<<12|(255&e[17])<<5|(254&e[18])>>>3,t.dts*=4,t.dts+=(6&e[18])>>>1)),t.data=e.subarray(9+e[8])}(a,s),n="video"===t||s.packetLength<=e.size,(i||n)&&(e.size=0,e.data.length=0),n&&l.trigger("data",s)}}var t,l=this,r={data:[],size:0},a={data:[],size:0},s={data:[],size:0};Ve.prototype.init.call(this),this.push=function(i){({pat:function(){},pes:function(){var e,t;switch(i.streamType){case De.H264_STREAM_TYPE:case De.H264_STREAM_TYPE:e=r,t="video";break;case De.ADTS_STREAM_TYPE:e=a,t="audio";break;case De.METADATA_STREAM_TYPE:e=s,t="timed-metadata";break;default:return}i.payloadUnitStartIndicator&&n(e,t,!0),e.data.push(i),e.size+=i.data.byteLength},pmt:function(){var e={type:"metadata",tracks:[]};null!==(t=i.programMapTable).video&&e.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+t.video,codec:"avc",type:"video"}),null!==t.audio&&e.tracks.push({timelineStartInfo:{baseMediaDecodeTime:0},id:+t.audio,codec:"adts",type:"audio"}),l.trigger("data",e)}})[i.type]()},this.reset=function(){r.size=0,r.data.length=0,a.size=0,a.data.length=0,this.trigger("reset")},this.flushStreams_=function(){n(r,"video"),n(a,"audio"),n(s,"timed-metadata")},this.flush=function(){this.flushStreams_(),this.trigger("done")}}).prototype=new H;var ze={PAT_PID:0,MP2T_PACKET_LENGTH:188,TransportPacketStream:Fe,TransportParseStream:He,ElementaryStream:Ve,TimestampRolloverStream:We,CaptionStream:xe.CaptionStream,Cea608Stream:xe.Cea608Stream,MetadataStream:qe};for(var $e in De)De.hasOwnProperty($e)&&(ze[$e]=De[$e]);var Ge,Xe=ze,Ke=le,Ye=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];(Ge=function(u){var l,c=0;Ge.prototype.init.call(this),this.push=function(e){var t,i,n,r,a,s,o=0;if(u||(c=0),"audio"===e.type)for(l?(r=l,(l=new Uint8Array(r.byteLength+e.data.byteLength)).set(r),l.set(e.data,r.byteLength)):l=e.data;o+5<l.length;)if(255===l[o]&&240==(246&l[o+1])){if(i=2*(1&~l[o+1]),t=(3&l[o+3])<<11|l[o+4]<<3|(224&l[o+5])>>5,s=(a=1024*(1+(3&l[o+6])))*Ke/Ye[(60&l[o+2])>>>2],n=o+t,l.byteLength<n)return;if(this.trigger("data",{pts:e.pts+c*s,dts:e.dts+c*s,sampleCount:a,audioobjecttype:1+(l[o+2]>>>6&3),channelcount:(1&l[o+2])<<2|(192&l[o+3])>>>6,samplerate:Ye[(60&l[o+2])>>>2],samplingfrequencyindex:(60&l[o+2])>>>2,samplesize:16,data:l.subarray(o+7+i,n)}),c++,l.byteLength===n)return void(l=void 0);l=l.subarray(n)}else o++},this.flush=function(){c=0,this.trigger("done")},this.reset=function(){l=void 0,this.trigger("reset")},this.endTimeline=function(){l=void 0,this.trigger("endedtimeline")}}).prototype=new H;var Qe,Je,Ze,et=Ge,tt=function(n){var r=n.byteLength,a=0,s=0;this.length=function(){return 8*r},this.bitsAvailable=function(){return 8*r+s},this.loadWord=function(){var e=n.byteLength-r,t=new Uint8Array(4),i=Math.min(4,r);if(0===i)throw new Error("no bytes available");t.set(n.subarray(e,e+i)),a=new DataView(t.buffer).getUint32(0),s=8*i,r-=i},this.skipBits=function(e){var t;e<s||(e-=s,e-=8*(t=Math.floor(e/8)),r-=t,this.loadWord()),a<<=e,s-=e},this.readBits=function(e){var t=Math.min(s,e),i=a>>>32-t;return 0<(s-=t)?a<<=t:0<r&&this.loadWord(),0<(t=e-t)?i<<t|this.readBits(t):i},this.skipLeadingZeros=function(){var e;for(e=0;e<s;++e)if(0!=(a&2147483648>>>e))return a<<=e,s-=e,e;return this.loadWord(),e+this.skipLeadingZeros()},this.skipUnsignedExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros())},this.skipExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros())},this.readUnsignedExpGolomb=function(){var e=this.skipLeadingZeros();return this.readBits(e+1)-1},this.readExpGolomb=function(){var e=this.readUnsignedExpGolomb();return 1&e?1+e>>>1:-1*(e>>>1)},this.readBoolean=function(){return 1===this.readBits(1)},this.readUnsignedByte=function(){return this.readBits(8)},this.loadWord()};(Je=function(){var n,r,a=0;Je.prototype.init.call(this),this.push=function(e){for(var t,i=(r=r?((t=new Uint8Array(r.byteLength+e.data.byteLength)).set(r),t.set(e.data,r.byteLength),t):e.data).byteLength;a<i-3;a++)if(1===r[a+2]){n=a+5;break}for(;n<i;)switch(r[n]){case 0:if(0!==r[n-1]){n+=2;break}if(0!==r[n-2]){n++;break}for(a+3!==n-2&&this.trigger("data",r.subarray(a+3,n-2));1!==r[++n]&&n<i;);a=n-2,n+=3;break;case 1:if(0!==r[n-1]||0!==r[n-2]){n+=3;break}this.trigger("data",r.subarray(a+3,n-2)),a=n-2,n+=3;break;default:n+=3}r=r.subarray(a),n-=a,a=0},this.reset=function(){r=null,a=0,this.trigger("reset")},this.flush=function(){r&&3<r.byteLength&&this.trigger("data",r.subarray(a+3)),r=null,a=0,this.trigger("done")},this.endTimeline=function(){this.flush(),this.trigger("endedtimeline")}}).prototype=new H,Ze={100:!0,110:!0,122:!0,244:!0,44:!0,83:!0,86:!0,118:!0,128:!0,138:!0,139:!0,134:!0},(Qe=function(){var i,n,r,a,s,o,_,t=new Je;Qe.prototype.init.call(this),(i=this).push=function(e){"video"===e.type&&(n=e.trackId,r=e.pts,a=e.dts,t.push(e))},t.on("data",function(e){var t={trackId:n,pts:r,dts:a,data:e};switch(31&e[0]){case 5:t.nalUnitType="slice_layer_without_partitioning_rbsp_idr";break;case 6:t.nalUnitType="sei_rbsp",t.escapedRBSP=s(e.subarray(1));break;case 7:t.nalUnitType="seq_parameter_set_rbsp",t.escapedRBSP=s(e.subarray(1)),t.config=o(t.escapedRBSP);break;case 8:t.nalUnitType="pic_parameter_set_rbsp";break;case 9:t.nalUnitType="access_unit_delimiter_rbsp"}i.trigger("data",t)}),t.on("done",function(){i.trigger("done")}),t.on("partialdone",function(){i.trigger("partialdone")}),t.on("reset",function(){i.trigger("reset")}),t.on("endedtimeline",function(){i.trigger("endedtimeline")}),this.flush=function(){t.flush()},this.partialFlush=function(){t.partialFlush()},this.reset=function(){t.reset()},this.endTimeline=function(){t.endTimeline()},_=function(e,t){var i,n=8,r=8;for(i=0;i<e;i++)0!==r&&(r=(n+t.readExpGolomb()+256)%256),n=0===r?n:r},s=function(e){for(var t,i,n=e.byteLength,r=[],a=1;a<n-2;)0===e[a]&&0===e[a+1]&&3===e[a+2]?(r.push(a+2),a+=2):a++;if(0===r.length)return e;t=n-r.length,i=new Uint8Array(t);var s=0;for(a=0;a<t;s++,a++)s===r[0]&&(s++,r.shift()),i[a]=e[s];return i},o=function(e){var t,i,n,r,a,s,o,u,l,c,h,d,p,f=0,m=0,g=0,y=0,v=1;if(i=(t=new tt(e)).readUnsignedByte(),r=t.readUnsignedByte(),n=t.readUnsignedByte(),t.skipUnsignedExpGolomb(),Ze[i]&&(3===(a=t.readUnsignedExpGolomb())&&t.skipBits(1),t.skipUnsignedExpGolomb(),t.skipUnsignedExpGolomb(),t.skipBits(1),t.readBoolean()))for(h=3!==a?8:12,p=0;p<h;p++)t.readBoolean()&&_(p<6?16:64,t);if(t.skipUnsignedExpGolomb(),0===(s=t.readUnsignedExpGolomb()))t.readUnsignedExpGolomb();else if(1===s)for(t.skipBits(1),t.skipExpGolomb(),t.skipExpGolomb(),o=t.readUnsignedExpGolomb(),p=0;p<o;p++)t.skipExpGolomb();if(t.skipUnsignedExpGolomb(),t.skipBits(1),u=t.readUnsignedExpGolomb(),l=t.readUnsignedExpGolomb(),0===(c=t.readBits(1))&&t.skipBits(1),t.skipBits(1),t.readBoolean()&&(f=t.readUnsignedExpGolomb(),m=t.readUnsignedExpGolomb(),g=t.readUnsignedExpGolomb(),y=t.readUnsignedExpGolomb()),t.readBoolean()&&t.readBoolean()){switch(t.readUnsignedByte()){case 1:d=[1,1];break;case 2:d=[12,11];break;case 3:d=[10,11];break;case 4:d=[16,11];break;case 5:d=[40,33];break;case 6:d=[24,11];break;case 7:d=[20,11];break;case 8:d=[32,11];break;case 9:d=[80,33];break;case 10:d=[18,11];break;case 11:d=[15,11];break;case 12:d=[64,33];break;case 13:d=[160,99];break;case 14:d=[4,3];break;case 15:d=[3,2];break;case 16:d=[2,1];break;case 255:d=[t.readUnsignedByte()<<8|t.readUnsignedByte(),t.readUnsignedByte()<<8|t.readUnsignedByte()]}d&&(v=d[0]/d[1])}return{profileIdc:i,levelIdc:n,profileCompatibility:r,width:Math.ceil((16*(u+1)-2*f-2*m)*v),height:(2-c)*(l+1)*16-2*g-2*y,sarRatio:d}}}).prototype=new H;var it,nt={H264Stream:Qe,NalByteStream:Je},rt=function(e){return e[0]==="I".charCodeAt(0)&&e[1]==="D".charCodeAt(0)&&e[2]==="3".charCodeAt(0)},at=function(e,t){var i=e[t+6]<<21|e[t+7]<<14|e[t+8]<<7|e[t+9];return(16&e[t+5])>>4?20+i:10+i},st=function(e,t){var i=(224&e[t+5])>>5,n=e[t+4]<<3;return 6144&e[t+3]|n|i};(it=function(){var o=new Uint8Array,u=0;it.prototype.init.call(this),this.setTimestamp=function(e){u=e},this.push=function(e){var t,i,n,r,a=0,s=0;for(o.length?(r=o.length,(o=new Uint8Array(e.byteLength+r)).set(o.subarray(0,r)),o.set(e,r)):o=e;3<=o.length-s;)if(o[s]!=="I".charCodeAt(0)||o[s+1]!=="D".charCodeAt(0)||o[s+2]!=="3".charCodeAt(0))if(255!=(255&o[s])||240!=(240&o[s+1]))s++;else{if(o.length-s<7)break;if(s+(a=st(o,s))>o.length)break;n={type:"audio",data:o.subarray(s,s+a),pts:u,dts:u},this.trigger("data",n),s+=a}else{if(o.length-s<10)break;if(s+(a=at(o,s))>o.length)break;i={type:"timed-metadata",data:o.subarray(s,s+a)},this.trigger("data",i),s+=a}t=o.length-s,o=0<t?o.subarray(s):new Uint8Array},this.reset=function(){o=new Uint8Array,this.trigger("reset")},this.endTimeline=function(){o=new Uint8Array,this.trigger("endedtimeline")}}).prototype=new H;function ot(e,t){var i;if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}function ut(e,t,i,n,r,a){return{start:{dts:e,pts:e+(i-t)},end:{dts:e+(n-t),pts:e+(r-i)},prependedContentDuration:a,baseMediaDecodeTime:e}}var lt,ct,ht,dt,pt=it,ft=nt.H264Stream,mt=rt,gt=le,yt=["audioobjecttype","channelcount","samplerate","samplingfrequencyindex","samplesize"],vt=["width","height","profileIdc","levelIdc","profileCompatibility","sarRatio"];(ct=function(a,s){var o=[],u=0,l=0,c=0,h=1/0;s=s||{},ct.prototype.init.call(this),this.push=function(t){be(a,t),a&&yt.forEach(function(e){a[e]=t[e]}),o.push(t)},this.setEarliestDts=function(e){l=e-a.timelineStartInfo.baseMediaDecodeTime},this.setVideoBaseMediaDecodeTime=function(e){h=e},this.setAudioAppendStart=function(e){c=e},this.flush=function(){var e,t,i,n,r;0!==o.length&&(e=fe(o,a,l),a.baseMediaDecodeTime=_e(a,s.keepOriginalTimestamps),pe(a,e,c,h),a.samples=me(e),i=Q(ge(e)),o=[],t=J(u,[a]),n=new Uint8Array(t.byteLength+i.byteLength),u++,n.set(t),n.set(i,t.byteLength),ve(a),r=Math.ceil(1024*gt/a.samplerate),e.length&&this.trigger("timingInfo",{start:e[0].dts,end:e[0].dts+e.length*r}),this.trigger("data",{track:a,boxes:n})),this.trigger("done","AudioSegmentStream")},this.reset=function(){ve(a),o=[],this.trigger("reset")}}).prototype=new H,(lt=function(c,h){var t,i,d=0,p=[],f=[];h=h||{},lt.prototype.init.call(this),delete c.minPTS,this.gopCache_=[],this.push=function(e){be(c,e),"seq_parameter_set_rbsp"!==e.nalUnitType||t||(t=e.config,c.sps=[e.data],vt.forEach(function(e){c[e]=t[e]},this)),"pic_parameter_set_rbsp"!==e.nalUnitType||i||(i=e.data,c.pps=[e.data]),p.push(e)},this.flush=function(){for(var e,t,i,n,r,a,s,o,u=0;p.length&&"access_unit_delimiter_rbsp"!==p[0].nalUnitType;)p.shift();if(0===p.length)return this.resetStream_(),void this.trigger("done","VideoSegmentStream");if(e=ee(p),(i=te(e))[0][0].keyFrame||((t=this.getGopForFusion_(p[0],c))?(u=t.duration,i.unshift(t),i.byteLength+=t.byteLength,i.nalCount+=t.nalCount,i.pts=t.pts,i.dts=t.dts,i.duration+=t.duration):i=ie(i)),f.length){var l;if(!(l=h.alignGopsAtEnd?this.alignGopsAtEnd_(i):this.alignGopsAtStart_(i)))return this.gopCache_.unshift({gop:i.pop(),pps:c.pps,sps:c.sps}),this.gopCache_.length=Math.min(6,this.gopCache_.length),p=[],this.resetStream_(),void this.trigger("done","VideoSegmentStream");ve(c),i=l}be(c,i),c.samples=ne(i),r=Q(re(i)),c.baseMediaDecodeTime=_e(c,h.keepOriginalTimestamps),this.trigger("processedGopsInfo",i.map(function(e){return{pts:e.pts,dts:e.dts,byteLength:e.byteLength}})),s=i[0],o=i[i.length-1],this.trigger("segmentTimingInfo",ut(c.baseMediaDecodeTime,s.dts,s.pts,o.dts+o.duration,o.pts+o.duration,u)),this.trigger("timingInfo",{start:i[0].dts,end:i[i.length-1].dts+i[i.length-1].duration}),this.gopCache_.unshift({gop:i.pop(),pps:c.pps,sps:c.sps}),this.gopCache_.length=Math.min(6,this.gopCache_.length),p=[],this.trigger("baseMediaDecodeTime",c.baseMediaDecodeTime),this.trigger("timelineStartInfo",c.timelineStartInfo),n=J(d,[c]),a=new Uint8Array(n.byteLength+r.byteLength),d++,a.set(n),a.set(r,n.byteLength),this.trigger("data",{track:c,boxes:a}),this.resetStream_(),this.trigger("done","VideoSegmentStream")},this.reset=function(){this.resetStream_(),p=[],this.gopCache_.length=0,f.length=0,this.trigger("reset")},this.resetStream_=function(){ve(c),i=t=void 0},this.getGopForFusion_=function(e){var t,i,n,r,a,s=1/0;for(a=0;a<this.gopCache_.length;a++)n=(r=this.gopCache_[a]).gop,c.pps&&ot(c.pps[0],r.pps[0])&&c.sps&&ot(c.sps[0],r.sps[0])&&(n.dts<c.timelineStartInfo.dts||-1e4<=(t=e.dts-n.dts-n.duration)&&t<=45e3&&(!i||t<s)&&(i=r,s=t));return i?i.gop:null},this.alignGopsAtStart_=function(e){var t,i,n,r,a,s,o,u;for(a=e.byteLength,s=e.nalCount,o=e.duration,t=i=0;t<f.length&&i<e.length&&(n=f[t],r=e[i],n.pts!==r.pts);)r.pts>n.pts?t++:(i++,a-=r.byteLength,s-=r.nalCount,o-=r.duration);return 0===i?e:i===e.length?null:((u=e.slice(i)).byteLength=a,u.duration=o,u.nalCount=s,u.pts=u[0].pts,u.dts=u[0].dts,u)},this.alignGopsAtEnd_=function(e){var t,i,n,r,a,s,o;for(t=f.length-1,i=e.length-1,a=null,s=!1;0<=t&&0<=i;){if(n=f[t],r=e[i],n.pts===r.pts){s=!0;break}n.pts>r.pts?t--:(t===f.length-1&&(a=i),i--)}if(!s&&null===a)return null;if(0===(o=s?i:a))return e;var u=e.slice(o),l=u.reduce(function(e,t){return e.byteLength+=t.byteLength,e.duration+=t.duration,e.nalCount+=t.nalCount,e},{byteLength:0,duration:0,nalCount:0});return u.byteLength=l.byteLength,u.duration=l.duration,u.nalCount=l.nalCount,u.pts=u[0].pts,u.dts=u[0].dts,u},this.alignGopsWith=function(e){f=e}}).prototype=new H,(dt=function(e,t){this.numberOfTracks=0,this.metadataStream=t,"undefined"!=typeof(e=e||{}).remux?this.remuxTracks=!!e.remux:this.remuxTracks=!0,"boolean"==typeof e.keepOriginalTimestamps?this.keepOriginalTimestamps=e.keepOriginalTimestamps:this.keepOriginalTimestamps=!1,this.pendingTracks=[],this.videoTrack=null,this.pendingBoxes=[],this.pendingCaptions=[],this.pendingMetadata=[],this.pendingBytes=0,this.emittedTracks=0,dt.prototype.init.call(this),this.push=function(e){return e.text?this.pendingCaptions.push(e):e.frames?this.pendingMetadata.push(e):(this.pendingTracks.push(e.track),this.pendingBytes+=e.boxes.byteLength,"video"===e.track.type&&(this.videoTrack=e.track,this.pendingBoxes.push(e.boxes)),void("audio"===e.track.type&&(this.audioTrack=e.track,this.pendingBoxes.unshift(e.boxes))))}}).prototype=new H,dt.prototype.flush=function(e){var t,i,n,r,a=0,s={captions:[],captionStreams:{},metadata:[],info:{}},o=0;if(this.pendingTracks.length<this.numberOfTracks){if("VideoSegmentStream"!==e&&"AudioSegmentStream"!==e)return;if(this.remuxTracks)return;if(0===this.pendingTracks.length)return this.emittedTracks++,void(this.emittedTracks>=this.numberOfTracks&&(this.trigger("done"),this.emittedTracks=0))}if(this.videoTrack?(o=this.videoTrack.timelineStartInfo.pts,vt.forEach(function(e){s.info[e]=this.videoTrack[e]},this)):this.audioTrack&&(o=this.audioTrack.timelineStartInfo.pts,yt.forEach(function(e){s.info[e]=this.audioTrack[e]},this)),this.videoTrack||this.audioTrack){for(1===this.pendingTracks.length?s.type=this.pendingTracks[0].type:s.type="combined",this.emittedTracks+=this.pendingTracks.length,n=Z(this.pendingTracks),s.initSegment=new Uint8Array(n.byteLength),s.initSegment.set(n),s.data=new Uint8Array(this.pendingBytes),r=0;r<this.pendingBoxes.length;r++)s.data.set(this.pendingBoxes[r],a),a+=this.pendingBoxes[r].byteLength;for(r=0;r<this.pendingCaptions.length;r++)(t=this.pendingCaptions[r]).startTime=de(t.startPts,o,this.keepOriginalTimestamps),t.endTime=de(t.endPts,o,this.keepOriginalTimestamps),s.captionStreams[t.stream]=!0,s.captions.push(t);for(r=0;r<this.pendingMetadata.length;r++)(i=this.pendingMetadata[r]).cueTime=de(i.pts,o,this.keepOriginalTimestamps),s.metadata.push(i);for(s.metadata.dispatchType=this.metadataStream.dispatchType,this.pendingTracks.length=0,this.videoTrack=null,this.pendingBoxes.length=0,this.pendingCaptions.length=0,this.pendingBytes=0,this.pendingMetadata.length=0,this.trigger("data",s),r=0;r<s.captions.length;r++)t=s.captions[r],this.trigger("caption",t);for(r=0;r<s.metadata.length;r++)i=s.metadata[r],this.trigger("id3Frame",i)}this.emittedTracks>=this.numberOfTracks&&(this.trigger("done"),this.emittedTracks=0)},dt.prototype.setRemux=function(e){this.remuxTracks=e},(ht=function(n){var r,a,s=this,i=!0;ht.prototype.init.call(this),n=n||{},this.baseMediaDecodeTime=n.baseMediaDecodeTime||0,this.transmuxPipeline_={},this.setupAacPipeline=function(){var t={};(this.transmuxPipeline_=t).type="aac",t.metadataStream=new Xe.MetadataStream,t.aacStream=new pt,t.audioTimestampRolloverStream=new Xe.TimestampRolloverStream("audio"),t.timedMetadataTimestampRolloverStream=new Xe.TimestampRolloverStream("timed-metadata"),t.adtsStream=new et,t.coalesceStream=new dt(n,t.metadataStream),t.headOfPipeline=t.aacStream,t.aacStream.pipe(t.audioTimestampRolloverStream).pipe(t.adtsStream),t.aacStream.pipe(t.timedMetadataTimestampRolloverStream).pipe(t.metadataStream).pipe(t.coalesceStream),t.metadataStream.on("timestamp",function(e){t.aacStream.setTimestamp(e.timeStamp)}),t.aacStream.on("data",function(e){"timed-metadata"!==e.type||t.audioSegmentStream||(a=a||{timelineStartInfo:{baseMediaDecodeTime:s.baseMediaDecodeTime},codec:"adts",type:"audio"},t.coalesceStream.numberOfTracks++,t.audioSegmentStream=new ct(a,n),t.audioSegmentStream.on("timingInfo",s.trigger.bind(s,"audioTimingInfo")),t.adtsStream.pipe(t.audioSegmentStream).pipe(t.coalesceStream)),s.trigger("trackinfo",{hasAudio:!!a,hasVideo:!!r})}),t.coalesceStream.on("data",this.trigger.bind(this,"data")),t.coalesceStream.on("done",this.trigger.bind(this,"done"))},this.setupTsPipeline=function(){var i={};(this.transmuxPipeline_=i).type="ts",i.metadataStream=new Xe.MetadataStream,i.packetStream=new Xe.TransportPacketStream,i.parseStream=new Xe.TransportParseStream,i.elementaryStream=new Xe.ElementaryStream,i.timestampRolloverStream=new Xe.TimestampRolloverStream,i.adtsStream=new et,i.h264Stream=new ft,i.captionStream=new Xe.CaptionStream,i.coalesceStream=new dt(n,i.metadataStream),i.headOfPipeline=i.packetStream,i.packetStream.pipe(i.parseStream).pipe(i.elementaryStream).pipe(i.timestampRolloverStream),i.timestampRolloverStream.pipe(i.h264Stream),i.timestampRolloverStream.pipe(i.adtsStream),i.timestampRolloverStream.pipe(i.metadataStream).pipe(i.coalesceStream),i.h264Stream.pipe(i.captionStream).pipe(i.coalesceStream),i.elementaryStream.on("data",function(e){var t;if("metadata"===e.type){for(t=e.tracks.length;t--;)r||"video"!==e.tracks[t].type?a||"audio"!==e.tracks[t].type||((a=e.tracks[t]).timelineStartInfo.baseMediaDecodeTime=s.baseMediaDecodeTime):(r=e.tracks[t]).timelineStartInfo.baseMediaDecodeTime=s.baseMediaDecodeTime;r&&!i.videoSegmentStream&&(i.coalesceStream.numberOfTracks++,i.videoSegmentStream=new lt(r,n),i.videoSegmentStream.on("timelineStartInfo",function(e){a&&(a.timelineStartInfo=e,i.audioSegmentStream.setEarliestDts(e.dts))}),i.videoSegmentStream.on("processedGopsInfo",s.trigger.bind(s,"gopInfo")),i.videoSegmentStream.on("segmentTimingInfo",s.trigger.bind(s,"videoSegmentTimingInfo")),i.videoSegmentStream.on("baseMediaDecodeTime",function(e){a&&i.audioSegmentStream.setVideoBaseMediaDecodeTime(e)}),i.videoSegmentStream.on("timingInfo",s.trigger.bind(s,"videoTimingInfo")),i.h264Stream.pipe(i.videoSegmentStream).pipe(i.coalesceStream)),a&&!i.audioSegmentStream&&(i.coalesceStream.numberOfTracks++,i.audioSegmentStream=new ct(a,n),i.audioSegmentStream.on("timingInfo",s.trigger.bind(s,"audioTimingInfo")),i.adtsStream.pipe(i.audioSegmentStream).pipe(i.coalesceStream)),s.trigger("trackinfo",{hasAudio:!!a,hasVideo:!!r})}}),i.coalesceStream.on("data",this.trigger.bind(this,"data")),i.coalesceStream.on("id3Frame",function(e){e.dispatchType=i.metadataStream.dispatchType,s.trigger("id3Frame",e)}),i.coalesceStream.on("caption",this.trigger.bind(this,"caption")),i.coalesceStream.on("done",this.trigger.bind(this,"done"))},this.setBaseMediaDecodeTime=function(e){var t=this.transmuxPipeline_;n.keepOriginalTimestamps||(this.baseMediaDecodeTime=e),a&&(a.timelineStartInfo.dts=void 0,a.timelineStartInfo.pts=void 0,ve(a),n.keepOriginalTimestamps||(a.timelineStartInfo.baseMediaDecodeTime=e),t.audioTimestampRolloverStream&&t.audioTimestampRolloverStream.discontinuity()),r&&(t.videoSegmentStream&&(t.videoSegmentStream.gopCache_=[]),r.timelineStartInfo.dts=void 0,r.timelineStartInfo.pts=void 0,ve(r),t.captionStream.reset(),n.keepOriginalTimestamps||(r.timelineStartInfo.baseMediaDecodeTime=e)),t.timestampRolloverStream&&t.timestampRolloverStream.discontinuity()},this.setAudioAppendStart=function(e){a&&this.transmuxPipeline_.audioSegmentStream.setAudioAppendStart(e)},this.setRemux=function(e){var t=this.transmuxPipeline_;n.remux=e,t&&t.coalesceStream&&t.coalesceStream.setRemux(e)},this.alignGopsWith=function(e){r&&this.transmuxPipeline_.videoSegmentStream&&this.transmuxPipeline_.videoSegmentStream.alignGopsWith(e)},this.push=function(e){if(i){var t=mt(e);t&&"aac"!==this.transmuxPipeline_.type?this.setupAacPipeline():t||"ts"===this.transmuxPipeline_.type||this.setupTsPipeline(),i=!1}this.transmuxPipeline_.headOfPipeline.push(e)},this.flush=function(){i=!0,this.transmuxPipeline_.headOfPipeline.flush()},this.endTimeline=function(){this.transmuxPipeline_.headOfPipeline.endTimeline()},this.reset=function(){this.transmuxPipeline_.headOfPipeline&&this.transmuxPipeline_.headOfPipeline.reset()},this.resetCaptions=function(){this.transmuxPipeline_.captionStream&&this.transmuxPipeline_.captionStream.reset()}}).prototype=new H;var _t={Transmuxer:ht,VideoSegmentStream:lt,AudioSegmentStream:ct,AUDIO_PROPERTIES:yt,VIDEO_PROPERTIES:vt,generateVideoSegmentTimingInfo:ut};function bt(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var Tt=(function(e,t,i){return t&&bt(e.prototype,t),i&&bt(e,i),e}(St,[{key:"init",value:function(){this.transmuxer&&this.transmuxer.dispose(),this.transmuxer=new _t.Transmuxer(this.options),function(n,e){e.on("data",function(e){var t=e.initSegment;e.initSegment={data:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength};var i=e.data;e.data=i.buffer,n.postMessage({action:"data",segment:e,byteOffset:i.byteOffset,byteLength:i.byteLength},[e.data])}),e.captionStream&&e.captionStream.on("data",function(e){n.postMessage({action:"caption",data:e})}),e.on("done",function(e){n.postMessage({action:"done"})}),e.on("gopInfo",function(e){n.postMessage({action:"gopInfo",gopInfo:e})}),e.on("videoSegmentTimingInfo",function(e){n.postMessage({action:"videoSegmentTimingInfo",videoSegmentTimingInfo:e})})}(this.self,this.transmuxer)}},{key:"push",value:function(e){var t=new Uint8Array(e.data,e.byteOffset,e.byteLength);this.transmuxer.push(t)}},{key:"reset",value:function(){this.init()}},{key:"setTimestampOffset",value:function(e){var t=e.timestampOffset||0;this.transmuxer.setBaseMediaDecodeTime(Math.round(9e4*t))}},{key:"setAudioAppendStart",value:function(e){this.transmuxer.setAudioAppendStart(Math.ceil(9e4*e.appendStart))}},{key:"flush",value:function(e){this.transmuxer.flush()}},{key:"resetCaptions",value:function(){this.transmuxer.resetCaptions()}},{key:"alignGopsWith",value:function(e){this.transmuxer.alignGopsWith(e.gopsToAlignWith.slice())}}]),St);function St(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,St),this.options=t||{},this.self=e,this.init()}new function(t){t.onmessage=function(e){"init"===e.data.action&&e.data.options?this.messageHandlers=new Tt(t,e.data.options):(this.messageHandlers||(this.messageHandlers=new Tt(t)),e.data&&e.data.action&&"init"!==e.data.action&&this.messageHandlers[e.data.action]&&this.messageHandlers[e.data.action](e.data))}}(kt)}()}),Jl={videoCodec:"avc1",videoObjectTypeIndicator:".4d400d",audioProfile:"2"},Zl=(ju(ec,fs.EventTarget),Nu(ec,[{key:"data_",value:function(e){var t=e.data.segment;t.data=new Uint8Array(t.data,e.data.byteOffset,e.data.byteLength),t.initSegment=new Uint8Array(t.initSegment.data,t.initSegment.byteOffset,t.initSegment.byteLength),function(e,t,i){var n=t.player_;if(i.captions&&i.captions.length)for(var r in e.inbandTextTracks_||(e.inbandTextTracks_={}),i.captionStreams)if(!e.inbandTextTracks_[r]){n.tech_.trigger({type:"usage",name:"hls-608"});var a=n.textTracks().getTrackById(r);e.inbandTextTracks_[r]=a||n.addRemoteTextTrack({kind:"captions",id:r,label:r},!1).track}i.metadata&&i.metadata.length&&!e.metadataTrack_&&(e.metadataTrack_=n.addRemoteTextTrack({kind:"metadata",label:"Timed Metadata"},!1).track,e.metadataTrack_.inBandMetadataTrackDispatchType=i.metadata.dispatchType)}(this,this.mediaSource_,t),this.pendingBuffers_.push(t)}},{key:"done_",value:function(e){"closed"!==this.mediaSource_.readyState?this.processPendingSegments_():this.pendingBuffers_.length=0}},{key:"videoSegmentTimingInfo_",value:function(e){var t={start:{decode:e.start.dts/9e4,presentation:e.start.pts/9e4},end:{decode:e.end.dts/9e4,presentation:e.end.pts/9e4},baseMediaDecodeTime:e.baseMediaDecodeTime/9e4};e.prependedContentDuration&&(t.prependedContentDuration=e.prependedContentDuration/9e4),this.trigger({type:"videoSegmentTimingInfo",videoSegmentTimingInfo:t})}},{key:"createRealSourceBuffers_",value:function(){var n=this,r=["audio","video"];r.forEach(function(t){if(n[t+"Codec_"]&&!n[t+"Buffer_"]){var i=null;if(n.mediaSource_[t+"Buffer_"])(i=n.mediaSource_[t+"Buffer_"]).updating=!1;else{var e=t+'/mp4;codecs="'+n[t+"Codec_"]+'"';i=function(e,t){var i=e.addSourceBuffer(t),n=Object.create(null);function r(t){"function"==typeof i[t]?n[t]=function(){return i[t].apply(i,arguments)}:"undefined"==typeof n[t]&&Object.defineProperty(n,t,{get:function(){return i[t]},set:function(e){return i[t]=e}})}for(var a in n.updating=!1,n.realBuffer_=i)r(a);return n}(n.mediaSource_.nativeMediaSource_,e),n.mediaSource_[t+"Buffer_"]=i}n[t+"Buffer_"]=i,["update","updatestart","updateend"].forEach(function(e){i.addEventListener(e,function(){if("audio"!==t||!n.audioDisabled_)return"updateend"===e&&(n[t+"Buffer_"].updating=!1),r.every(function(e){return!("audio"!==e||!n.audioDisabled_)||t===e||!n[e+"Buffer_"]||!n[e+"Buffer_"].updating})?n.trigger(e):void 0})})}})}},{key:"appendBuffer",value:function(e){if(this.bufferUpdating_=!0,this.audioBuffer_&&this.audioBuffer_.buffered.length){var t=this.audioBuffer_.buffered;this.transmuxer_.postMessage({action:"setAudioAppendStart",appendStart:t.end(t.length-1)})}this.videoBuffer_&&this.transmuxer_.postMessage({action:"alignGopsWith",gopsToAlignWith:function(e,t,i){if("undefined"==typeof t||null===t||!e.length)return[];var n=Math.ceil(9e4*(t-i+3)),r=void 0;for(r=0;r<e.length&&!(e[r].pts>n);r++);return e.slice(r)}(this.gopBuffer_,this.mediaSource_.player_?this.mediaSource_.player_.currentTime():null,this.timeMapping_)}),this.transmuxer_.postMessage({action:"push",data:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength},[e.buffer]),this.transmuxer_.postMessage({action:"flush"})}},{key:"appendGopInfo_",value:function(e){this.gopBuffer_=function(e,t,i){if(!t.length)return e;if(i)return t.slice();for(var n=t[0].pts,r=0;r<e.length&&!(e[r].pts>=n);r++);return e.slice(0,r).concat(t)}(this.gopBuffer_,e.data.gopInfo,this.safeAppend_)}},{key:"remove",value:function(e,t){if(this.videoBuffer_&&(this.videoBuffer_.updating=!0,this.videoBuffer_.remove(e,t),this.gopBuffer_=function(e,t,i,n){for(var r=Math.ceil(9e4*(t-n)),a=Math.ceil(9e4*(i-n)),s=e.slice(),o=e.length;o--&&!(e[o].pts<=a););if(-1===o)return s;for(var u=o+1;u--&&!(e[u].pts<=r););return u=Math.max(u,0),s.splice(u,o-u+1),s}(this.gopBuffer_,e,t,this.timeMapping_)),!this.audioDisabled_&&this.audioBuffer_&&(this.audioBuffer_.updating=!0,this.audioBuffer_.remove(e,t)),Cl(e,t,this.metadataTrack_),this.inbandTextTracks_)for(var i in this.inbandTextTracks_)Cl(e,t,this.inbandTextTracks_[i])}},{key:"processPendingSegments_",value:function(){var e={video:{segments:[],bytes:0},audio:{segments:[],bytes:0},captions:[],metadata:[]};if(!this.pendingBuffers_.length)return this.trigger("updateend"),void(this.bufferUpdating_=!1);e=this.pendingBuffers_.reduce(function(e,t){var i=t.type,n=t.data,r=t.initSegment;return e[i].segments.push(n),e[i].bytes+=n.byteLength,e[i].initSegment=r,t.captions&&(e.captions=e.captions.concat(t.captions)),t.info&&(e[i].info=t.info),t.metadata&&(e.metadata=e.metadata.concat(t.metadata)),e},e),this.videoBuffer_||this.audioBuffer_||(0===e.video.bytes&&(this.videoCodec_=null),0===e.audio.bytes&&(this.audioCodec_=null),this.createRealSourceBuffers_()),e.audio.info&&this.mediaSource_.trigger({type:"audioinfo",info:e.audio.info}),e.video.info&&this.mediaSource_.trigger({type:"videoinfo",info:e.video.info}),this.appendAudioInitSegment_&&(!this.audioDisabled_&&this.audioBuffer_&&(e.audio.segments.unshift(e.audio.initSegment),e.audio.bytes+=e.audio.initSegment.byteLength),this.appendAudioInitSegment_=!1);var t=!1;this.videoBuffer_&&e.video.bytes?(e.video.segments.unshift(e.video.initSegment),e.video.bytes+=e.video.initSegment.byteLength,this.concatAndAppendSegments_(e.video,this.videoBuffer_)):!this.videoBuffer_||!this.audioDisabled_&&this.audioBuffer_||(t=!0),wl(this,e.captions,e.metadata),!this.audioDisabled_&&this.audioBuffer_&&this.concatAndAppendSegments_(e.audio,this.audioBuffer_),this.pendingBuffers_.length=0,t&&this.trigger("updateend"),this.bufferUpdating_=!1}},{key:"concatAndAppendSegments_",value:function(e,t){var i=0,n=void 0;if(e.bytes){n=new Uint8Array(e.bytes),e.segments.forEach(function(e){n.set(e,i),i+=e.byteLength});try{t.updating=!0,t.appendBuffer(n)}catch(e){this.mediaSource_.player_&&this.mediaSource_.player_.error({code:-3,type:"APPEND_BUFFER_ERR",message:e.message,originalError:e})}}}},{key:"abort",value:function(){this.videoBuffer_&&this.videoBuffer_.abort(),!this.audioDisabled_&&this.audioBuffer_&&this.audioBuffer_.abort(),this.transmuxer_&&this.transmuxer_.postMessage({action:"reset"}),this.pendingBuffers_.length=0,this.bufferUpdating_=!1}}]),ec);function ec(e,t){Mu(this,ec);var i=Fu(this,(ec.__proto__||Object.getPrototypeOf(ec)).call(this,fs.EventTarget));i.timestampOffset_=0,i.pendingBuffers_=[],i.bufferUpdating_=!1,i.mediaSource_=e,i.codecs_=t,i.audioCodec_=null,i.videoCodec_=null,i.audioDisabled_=!1,i.appendAudioInitSegment_=!0,i.gopBuffer_=[],i.timeMapping_=0,i.safeAppend_=11<=fs.browser.IE_VERSION;var n={remux:!1,alignGopsAtEnd:i.safeAppend_};return i.codecs_.forEach(function(e){Kl(e)?i.audioCodec_=e:Yl(e)&&(i.videoCodec_=e)}),i.transmuxer_=new Ql,i.transmuxer_.postMessage({action:"init",options:n}),i.transmuxer_.onmessage=function(e){return"data"===e.data.action?i.data_(e):"done"===e.data.action?i.done_(e):"gopInfo"===e.data.action?i.appendGopInfo_(e):"videoSegmentTimingInfo"===e.data.action?i.videoSegmentTimingInfo_(e.data.videoSegmentTimingInfo):void 0},Object.defineProperty(i,"timestampOffset",{get:function(){return this.timestampOffset_},set:function(e){"number"==typeof e&&0<=e&&(this.timestampOffset_=e,this.appendAudioInitSegment_=!0,this.gopBuffer_.length=0,this.timeMapping_=0,this.transmuxer_.postMessage({action:"setTimestampOffset",timestampOffset:e}))}}),Object.defineProperty(i,"appendWindowStart",{get:function(){return(this.videoBuffer_||this.audioBuffer_).appendWindowStart},set:function(e){this.videoBuffer_&&(this.videoBuffer_.appendWindowStart=e),this.audioBuffer_&&(this.audioBuffer_.appendWindowStart=e)}}),Object.defineProperty(i,"updating",{get:function(){return!!(this.bufferUpdating_||!this.audioDisabled_&&this.audioBuffer_&&this.audioBuffer_.updating||this.videoBuffer_&&this.videoBuffer_.updating)}}),Object.defineProperty(i,"buffered",{get:function(){return function(e,t,i){var n=null,r=null,a=0,s=[],o=[];if(!e&&!t)return fs.createTimeRange();if(!e)return t.buffered;if(!t)return e.buffered;if(i)return e.buffered;if(0===e.buffered.length&&0===t.buffered.length)return fs.createTimeRange();for(var u=e.buffered,l=t.buffered,c=u.length;c--;)s.push({time:u.start(c),type:"start"}),s.push({time:u.end(c),type:"end"});for(c=l.length;c--;)s.push({time:l.start(c),type:"start"}),s.push({time:l.end(c),type:"end"});for(s.sort(function(e,t){return e.time-t.time}),c=0;c<s.length;c++)"start"===s[c].type?2===++a&&(n=s[c].time):"end"===s[c].type&&1===--a&&(r=s[c].time),null!==n&&null!==r&&(o.push([n,r]),r=n=null);return fs.createTimeRanges(o)}(this.videoBuffer_,this.audioBuffer_,this.audioDisabled_)}}),i}var tc=(ju(ic,fs.EventTarget),Nu(ic,[{key:"addSeekableRange_",value:function(e,t){var i=void 0;if(this.duration!==1/0)throw(i=new Error("MediaSource.addSeekableRange() can only be invoked when the duration is Infinity")).name="InvalidStateError",i.code=11,i;(t>this.nativeMediaSource_.duration||isNaN(this.nativeMediaSource_.duration))&&(this.nativeMediaSource_.duration=t)}},{key:"addSourceBuffer",value:function(e){var t=void 0,i=function(e){var r={type:"",parameters:{}},t=e.trim().split(";");return r.type=t.shift().trim(),t.forEach(function(e){var t=e.trim().split("=");if(1<t.length){var i=t[0].replace(/"/g,"").trim(),n=t[1].replace(/"/g,"").trim();r.parameters[i]=n}}),r}(e);if(/^(video|audio)\/mp2t$/i.test(i.type)){var n=[];i.parameters&&i.parameters.codecs&&(n=i.parameters.codecs.split(","),n=(n=zl(n)).filter(function(e){return Kl(e)||Yl(e)})),0===n.length&&(n=["avc1.4d400d","mp4a.40.2"]),t=new Zl(this,n),0!==this.sourceBuffers.length&&(this.sourceBuffers[0].createRealSourceBuffers_(),t.createRealSourceBuffers_(),this.sourceBuffers[0].audioDisabled_=!0)}else t=this.nativeMediaSource_.addSourceBuffer(e);return this.sourceBuffers.push(t),t}}]),ic);function ic(){Mu(this,ic);var a=Fu(this,(ic.__proto__||Object.getPrototypeOf(ic)).call(this)),e=void 0;for(e in a.nativeMediaSource_=new v.MediaSource,a.nativeMediaSource_)e in ic.prototype||"function"!=typeof a.nativeMediaSource_[e]||(a[e]=a.nativeMediaSource_[e].bind(a.nativeMediaSource_));return a.duration_=NaN,Object.defineProperty(a,"duration",{get:function(){return this.duration_===1/0?this.duration_:this.nativeMediaSource_.duration},set:function(e){(this.duration_=e)===1/0||(this.nativeMediaSource_.duration=e)}}),Object.defineProperty(a,"seekable",{get:function(){return this.duration_===1/0?fs.createTimeRanges([[0,this.nativeMediaSource_.duration]]):this.nativeMediaSource_.seekable}}),Object.defineProperty(a,"readyState",{get:function(){return this.nativeMediaSource_.readyState}}),Object.defineProperty(a,"activeSourceBuffers",{get:function(){return this.activeSourceBuffers_}}),a.sourceBuffers=[],a.activeSourceBuffers_=[],a.updateActiveSourceBuffers_=function(){if(a.activeSourceBuffers_.length=0,1===a.sourceBuffers.length){var e=a.sourceBuffers[0];return e.appendAudioInitSegment_=!0,e.audioDisabled_=!e.audioCodec_,void a.activeSourceBuffers_.push(e)}for(var i=!1,n=!0,t=0;t<a.player_.audioTracks().length;t++){var r=a.player_.audioTracks()[t];if(r.enabled&&"main"!==r.kind){n=!(i=!0);break}}a.sourceBuffers.forEach(function(e,t){if(e.appendAudioInitSegment_=!0,e.videoCodec_&&e.audioCodec_)e.audioDisabled_=i;else if(e.videoCodec_&&!e.audioCodec_)e.audioDisabled_=!0,n=!1;else if(!e.videoCodec_&&e.audioCodec_&&(e.audioDisabled_=t?n:!n,e.audioDisabled_))return;a.activeSourceBuffers_.push(e)})},a.onPlayerMediachange_=function(){a.sourceBuffers.forEach(function(e){e.appendAudioInitSegment_=!0})},a.onHlsReset_=function(){a.sourceBuffers.forEach(function(e){e.transmuxer_&&e.transmuxer_.postMessage({action:"resetCaptions"})})},a.onHlsSegmentTimeMapping_=function(t){a.sourceBuffers.forEach(function(e){return e.timeMapping_=t.mapping})},["sourceopen","sourceclose","sourceended"].forEach(function(e){this.nativeMediaSource_.addEventListener(e,this.trigger.bind(this))},a),a.on("sourceopen",function(e){var t=h.querySelector('[src="'+a.url_+'"]');t&&(a.player_=fs(t.parentNode),a.player_&&(a.player_.tech_.on("hls-reset",a.onHlsReset_),a.player_.tech_.on("hls-segment-time-mapping",a.onHlsSegmentTimeMapping_),a.player_.audioTracks&&a.player_.audioTracks()&&(a.player_.audioTracks().on("change",a.updateActiveSourceBuffers_),a.player_.audioTracks().on("addtrack",a.updateActiveSourceBuffers_),a.player_.audioTracks().on("removetrack",a.updateActiveSourceBuffers_)),a.player_.on("mediachange",a.onPlayerMediachange_)))}),a.on("sourceended",function(e){for(var t=El(a.duration),i=0;i<a.sourceBuffers.length;i++){var n=a.sourceBuffers[i],r=n.metadataTrack_&&n.metadataTrack_.cues;r&&r.length&&(r[r.length-1].endTime=t)}}),a.on("sourceclose",function(e){this.sourceBuffers.forEach(function(e){e.transmuxer_&&e.transmuxer_.terminate()}),this.sourceBuffers.length=0,this.player_&&(this.player_.audioTracks&&this.player_.audioTracks()&&(this.player_.audioTracks().off("change",this.updateActiveSourceBuffers_),this.player_.audioTracks().off("addtrack",this.updateActiveSourceBuffers_),this.player_.audioTracks().off("removetrack",this.updateActiveSourceBuffers_)),this.player_.el_&&this.player_.off("mediachange",this.onPlayerMediachange_),this.player_.tech_&&this.player_.tech_.el_&&(this.player_.tech_.off("hls-reset",this.onHlsReset_),this.player_.tech_.off("hls-segment-time-mapping",this.onHlsSegmentTimeMapping_)))}),a}var nc=0;fs.mediaSources={};function rc(e,t){var i=fs.mediaSources[e];if(!i)throw new Error("Media Source not found (Video.js)");i.trigger({type:"sourceopen",swfId:t})}function ac(){return!!v.MediaSource&&!!v.MediaSource.isTypeSupported&&v.MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"')}function sc(){if(this.MediaSource={open:rc,supportsNativeMediaSources:ac},ac())return new tc;throw new Error("Cannot use create a virtual MediaSource for this video")}sc.open=rc,sc.supportsNativeMediaSources=ac;var oc={createObjectURL:function(e){var t=void 0;return e instanceof tc?(t=v.URL.createObjectURL(e.nativeMediaSource_),e.url_=t):e instanceof tc?(t="blob:vjs-media-source/"+nc,nc++,fs.mediaSources[t]=e,t):(t=v.URL.createObjectURL(e),e.url_=t)}};fs.MediaSource=sc,fs.URL=oc;function uc(e,t){for(var s=void 0,o=dc(e,{duration:t.duration,minimumUpdatePeriod:t.minimumUpdatePeriod}),i=0;i<t.playlists.length;i++){var n=Vu(o,t.playlists[i]);n?o=n:s=!0}return Hu(t,function(e,t,i,n){if(e.playlists&&e.playlists.length){var r=e.playlists[0].uri,a=Vu(o,e.playlists[0]);a&&((o=a).mediaGroups[t][i][n].playlists[0]=o.playlists[r],s=!1)}}),s?null:o}function lc(e){var t=e.byterange.offset+e.byterange.length-1;return e.uri+"-"+e.byterange.offset+"-"+t}function cc(e,t){var i,n,r={};for(var a in e){var s=e[a].sidx;if(s){var o=lc(s);if(!t[o])break;var u=t[o].sidxInfo;i=u,n=s,(Boolean(!i.map&&!n.map)||Boolean(i.map&&n.map&&i.map.byterange.offset===n.map.byterange.offset&&i.map.byterange.length===n.map.byterange.length))&&i.uri===n.uri&&i.byterange.offset===n.byterange.offset&&i.byterange.length===n.byterange.length&&(r[o]=t[o])}}return r}function hc(e,t,i,n,r){var a={uri:Ru(n.handleManifestRedirects,e.resolvedUri),byterange:e.byterange,playlist:t};return i(fs.mergeOptions(a,{responseType:"arraybuffer",headers:cl(a)}),r)}var dc=fs.mergeOptions,pc=(ju(fc,fs.EventTarget),Nu(fc,[{key:"setupChildLoader",value:function(e,t){this.masterPlaylistLoader_=e,this.childPlaylist_=t}},{key:"dispose",value:function(){this.stopRequest(),this.loadedPlaylists_={},v.clearTimeout(this.minimumUpdatePeriodTimeout_),v.clearTimeout(this.mediaRequest_),v.clearTimeout(this.mediaUpdateTimeout)}},{key:"hasPendingRequest",value:function(){return this.request||this.mediaRequest_}},{key:"stopRequest",value:function(){if(this.request){var e=this.request;this.request=null,e.onreadystatechange=null,e.abort()}}},{key:"sidxRequestFinished_",value:function(r,a,s,o){var u=this;return function(e,t){if(u.request){if(u.request=null,e)return u.error={status:t.status,message:"DASH playlist request error at URL: "+r.uri,response:t.response,code:2},s&&(u.state=s),u.trigger("error"),o(a,null);var i=new Uint8Array(t.response),n=Lo.parseSidx(i.subarray(8));return o(a,n)}}}},{key:"media",value:function(i){var n=this;if(!i)return this.media_;if("HAVE_NOTHING"===this.state)throw new Error("Cannot switch media playlist from "+this.state);var r=this.state;if("string"==typeof i){if(!this.master.playlists[i])throw new Error("Unknown playlist URI: "+i);i=this.master.playlists[i]}var e=!this.media_||i.uri!==this.media_.uri;if(e&&this.loadedPlaylists_[i.uri]&&this.loadedPlaylists_[i.uri].endList)return this.state="HAVE_METADATA",this.media_=i,void(e&&(this.trigger("mediachanging"),this.trigger("mediachange")));if(e)if(this.media_&&this.trigger("mediachanging"),i.sidx){var t=void 0,a=void 0;a=this.masterPlaylistLoader_?(t=this.masterPlaylistLoader_.master,this.masterPlaylistLoader_.sidxMapping_):(t=this.master,this.sidxMapping_);var s=lc(i.sidx);a[s]={sidxInfo:i.sidx},this.request=hc(i.sidx,i,this.hls_.xhr,{handleManifestRedirects:this.handleManifestRedirects},this.sidxRequestFinished_(i,t,r,function(e,t){if(!e||!t)throw new Error("failed to request sidx");a[s].sidx=t,n.haveMetadata({startingState:r,playlist:e.playlists[i.uri]})}))}else this.mediaRequest_=v.setTimeout(this.haveMetadata.bind(this,{startingState:r,playlist:i}),0)}},{key:"haveMetadata",value:function(e){var t=e.startingState,i=e.playlist;this.state="HAVE_METADATA",this.loadedPlaylists_[i.uri]=i,this.mediaRequest_=null,this.refreshMedia_(i.uri),"HAVE_MASTER"===t?this.trigger("loadedmetadata"):this.trigger("mediachange")}},{key:"pause",value:function(){this.stopRequest(),v.clearTimeout(this.mediaUpdateTimeout),v.clearTimeout(this.minimumUpdatePeriodTimeout_),"HAVE_NOTHING"===this.state&&(this.started=!1)}},{key:"load",value:function(e){var t=this;v.clearTimeout(this.mediaUpdateTimeout),v.clearTimeout(this.minimumUpdatePeriodTimeout_);var i=this.media();if(e){var n=i?i.targetDuration/2*1e3:5e3;this.mediaUpdateTimeout=v.setTimeout(function(){return t.load()},n)}else this.started?this.trigger("loadedplaylist"):this.start()}},{key:"parseMasterXml",value:function(){var a=co(this.masterXml_,{manifestUri:this.srcUrl,clientOffset:this.clientOffset_,sidxMapping:this.sidxMapping_});a.uri=this.srcUrl;for(var e=0;e<a.playlists.length;e++){var t="placeholder-uri-"+e;a.playlists[e].uri=t,a.playlists[t]=a.playlists[e]}return Hu(a,function(e,t,i,n){if(e.playlists&&e.playlists.length){var r="placeholder-uri-"+t+"-"+i+"-"+n;e.playlists[0].uri=r,a.playlists[r]=e.playlists[0]}}),qu(a),Wu(a),a}},{key:"start",value:function(){var i=this;this.started=!0,this.masterPlaylistLoader_?this.mediaRequest_=v.setTimeout(this.haveMaster_.bind(this),0):this.request=this.hls_.xhr({uri:this.srcUrl,withCredentials:this.withCredentials},function(e,t){if(i.request){if(i.request=null,e)return i.error={status:t.status,message:"DASH playlist request error at URL: "+i.srcUrl,responseText:t.responseText,code:2},"HAVE_NOTHING"===i.state&&(i.started=!1),i.trigger("error");i.masterXml_=t.responseText,t.responseHeaders&&t.responseHeaders.date?i.masterLoaded_=Date.parse(t.responseHeaders.date):i.masterLoaded_=Date.now(),i.srcUrl=Ru(i.handleManifestRedirects,i.srcUrl,t),i.syncClientServerClock_(i.onClientServerClockSync_.bind(i))}})}},{key:"syncClientServerClock_",value:function(n){var r=this,a=ho(this.masterXml_);return null===a?(this.clientOffset_=this.masterLoaded_-Date.now(),n()):"DIRECT"===a.method?(this.clientOffset_=a.value-Date.now(),n()):void(this.request=this.hls_.xhr({uri:Uu(this.srcUrl,a.value),method:a.method,withCredentials:this.withCredentials},function(e,t){if(r.request){if(e)return r.clientOffset_=r.masterLoaded_-Date.now(),n();var i=void 0;i="HEAD"===a.method?t.responseHeaders&&t.responseHeaders.date?Date.parse(t.responseHeaders.date):r.masterLoaded_:Date.parse(t.responseText),r.clientOffset_=i-Date.now(),n()}}))}},{key:"haveMaster_",value:function(){this.state="HAVE_MASTER",this.mediaRequest_=null,this.masterPlaylistLoader_?this.media_||this.media(this.childPlaylist_):(this.master=this.parseMasterXml(),this.trigger("loadedplaylist"))}},{key:"onClientServerClockSync_",value:function(){var e=this;this.haveMaster_(),this.hasPendingRequest()||this.media_||this.media(this.master.playlists[0]),this.master&&this.master.minimumUpdatePeriod&&(this.minimumUpdatePeriodTimeout_=v.setTimeout(function(){e.trigger("minimumUpdatePeriod")},this.master.minimumUpdatePeriod))}},{key:"refreshXml_",value:function(){var o=this;this.request=this.hls_.xhr({uri:this.srcUrl,withCredentials:this.withCredentials},function(e,t){if(o.request){if(o.request=null,e)return o.error={status:t.status,message:"DASH playlist request error at URL: "+o.srcUrl,responseText:t.responseText,code:2},"HAVE_NOTHING"===o.state&&(o.started=!1),o.trigger("error");o.masterXml_=t.responseText,o.sidxMapping_=function(e,t,i,a){var n=co(e,{manifestUri:t,clientOffset:i}),s=cc(n.playlists,a);return Hu(n,function(e,t,i,n){if(e.playlists&&e.playlists.length){var r=e.playlists;s=dc(s,cc(r,a))}}),s}(o.masterXml_,o.srcUrl,o.clientOffset_,o.sidxMapping_);var i=o.parseMasterXml(),n=uc(o.master,i),r=o.media().sidx;if(n)if(r){var a=lc(r);if(!o.sidxMapping_[a]){var s=o.media();o.request=hc(s.sidx,s,o.hls_.xhr,{handleManifestRedirects:o.handleManifestRedirects},o.sidxRequestFinished_(s,i,o.state,function(e,t){if(!e||!t)throw new Error("failed to request sidx on minimumUpdatePeriod");o.sidxMapping_[a].sidx=t,o.minimumUpdatePeriodTimeout_=v.setTimeout(function(){o.trigger("minimumUpdatePeriod")},o.master.minimumUpdatePeriod),o.refreshMedia_(o.media().uri)}))}}else o.master=n;o.minimumUpdatePeriodTimeout_=v.setTimeout(function(){o.trigger("minimumUpdatePeriod")},o.master.minimumUpdatePeriod)}})}},{key:"refreshMedia_",value:function(e){var t=this;if(!e)throw new Error("refreshMedia_ must take a media uri");var i=void 0,n=void 0;n=this.masterPlaylistLoader_?(i=this.masterPlaylistLoader_.master,this.masterPlaylistLoader_.parseMasterXml()):(i=this.master,this.parseMasterXml());var r=uc(i,n);r?(this.masterPlaylistLoader_?this.masterPlaylistLoader_.master=r:this.master=r,this.media_=r.playlists[e]):(this.media_=n.playlists[e],this.trigger("playlistunchanged")),this.media().endList||(this.mediaUpdateTimeout=v.setTimeout(function(){t.trigger("mediaupdatetimeout")},zu(this.media(),!!r))),this.trigger("loadedplaylist")}}]),fc);function fc(e,t){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=arguments[3];Mu(this,fc);var r=Fu(this,(fc.__proto__||Object.getPrototypeOf(fc)).call(this)),a=i.withCredentials,s=void 0!==a&&a,o=i.handleManifestRedirects,u=void 0!==o&&o;if(r.hls_=t,r.withCredentials=s,r.handleManifestRedirects=u,!e)throw new Error("A non-empty playlist URL or playlist is required");return r.on("minimumUpdatePeriod",function(){r.refreshXml_()}),r.on("mediaupdatetimeout",function(){r.refreshMedia_(r.media().uri)}),r.state="HAVE_NOTHING",r.loadedPlaylists_={},"string"==typeof e?(r.srcUrl=e,r.sidxMapping_={},Fu(r)):(r.setupChildLoader(n,e),r)}function mc(e){return fs.log.debug?fs.log.debug.bind(fs,"VHS:",e+" >"):function(){}}function gc(){}var yc=(Nu(vc,[{key:"createSourceBuffer_",value:function(e,t){var i=this;this.sourceBuffer_=this.mediaSource.addSourceBuffer(e),this.logger_("created SourceBuffer"),t&&(t.trigger("sourcebufferadded"),this.mediaSource.sourceBuffers.length<2)?t.on("sourcebufferadded",function(){i.start_()}):this.start_()}},{key:"start_",value:function(){var t=this;this.started_=!0,this.onUpdateendCallback_=function(){var e=t.pendingCallback_;t.pendingCallback_=null,t.sourceBuffer_.removing=!1,t.logger_("buffered ["+Sl(t.buffered())+"]"),e&&e(),t.runCallback_()},this.sourceBuffer_.addEventListener("updateend",this.onUpdateendCallback_),this.runCallback_()}},{key:"abort",value:function(e){var t=this;this.processedAppend_&&this.queueCallback_(function(){t.sourceBuffer_.abort()},e)}},{key:"appendBuffer",value:function(e,t){var i=this;this.processedAppend_=!0,this.queueCallback_(function(){e.videoSegmentTimingInfoCallback&&i.sourceBuffer_.addEventListener("videoSegmentTimingInfo",e.videoSegmentTimingInfoCallback),i.sourceBuffer_.appendBuffer(e.bytes)},function(){e.videoSegmentTimingInfoCallback&&i.sourceBuffer_.removeEventListener("videoSegmentTimingInfo",e.videoSegmentTimingInfoCallback),t()})}},{key:"buffered",value:function(){return this.sourceBuffer_?this.sourceBuffer_.buffered:fs.createTimeRanges()}},{key:"remove",value:function(e,t,i){var n=this,r=2<arguments.length&&void 0!==i?i:gc;this.processedAppend_&&this.queueCallback_(function(){n.logger_("remove ["+e+" => "+t+"]"),n.sourceBuffer_.removing=!0,n.sourceBuffer_.remove(e,t)},r)}},{key:"updating",value:function(){return!this.sourceBuffer_||this.sourceBuffer_.updating||!!this.pendingCallback_&&this.pendingCallback_!==gc}},{key:"timestampOffset",value:function(e){var t=this;return"undefined"!=typeof e&&(this.queueCallback_(function(){t.sourceBuffer_.timestampOffset=e,t.runCallback_()}),this.timestampOffset_=e),this.timestampOffset_}},{key:"queueCallback_",value:function(e,t){this.callbacks_.push([e.bind(this),t]),this.runCallback_()}},{key:"runCallback_",value:function(){var e=void 0;!this.updating()&&this.callbacks_.length&&this.started_&&(e=this.callbacks_.shift(),this.pendingCallback_=e[1],e[0]())}},{key:"dispose",value:function(){function e(){t.sourceBuffer_&&"open"===t.mediaSource.readyState&&t.sourceBuffer_.abort(),t.sourceBuffer_.removeEventListener("updateend",e)}var t=this;this.sourceBuffer_.removeEventListener("updateend",this.onUpdateendCallback_),this.sourceBuffer_.removing?this.sourceBuffer_.addEventListener("updateend",e):e()}}]),vc);function vc(e,t,i,n){Mu(this,vc),this.callbacks_=[],this.pendingCallback_=null,this.timestampOffset_=0,this.mediaSource=e,this.processedAppend_=!1,this.type_=i,this.mimeType_=t,this.logger_=mc("SourceUpdater["+i+"]["+t+"]"),"closed"===e.readyState?e.addEventListener("sourceopen",this.createSourceBuffer_.bind(this,t,n)):this.createSourceBuffer_(t,n)}function _c(e){e.forEach(function(e){e.abort()})}function bc(e,t){return t.timedout?{status:t.status,message:"HLS request timed-out at URL: "+t.uri,code:Lc,xhr:t}:t.aborted?{status:t.status,message:"HLS request aborted at URL: "+t.uri,code:Oc,xhr:t}:e?{status:t.status,message:"HLS request errored at URL: "+t.uri,code:Ic,xhr:t}:null}function Tc(i,n,r){var a=0,s=!1;return function(e,t){if(!s)return e?(s=!0,_c(i),r(e,t)):(a+=1)===i.length?(t.endOfAllRequests=Date.now(),t.encryptedBytes?function(n,r,a){n.addEventListener("message",function e(t){if(t.data.source===r.requestId){n.removeEventListener("message",e);var i=t.data.decrypted;return r.bytes=new Uint8Array(i.bytes,i.byteOffset,i.byteLength),a(null,r)}});var e=void 0;e=r.key.bytes.slice?r.key.bytes.slice():new Uint32Array(Array.prototype.slice.call(r.key.bytes)),n.postMessage(pl({source:r.requestId,encrypted:r.encryptedBytes,key:e,iv:r.key.iv}),[r.encryptedBytes.buffer,e.buffer])}(n,t,r):r(null,t)):void 0}}function Sc(t,i){return function(e){return t.stats=fs.mergeOptions(t.stats,function(e){var t=e.target,i={bandwidth:1/0,bytesReceived:0,roundTripTime:Date.now()-t.requestTime||0};return i.bytesReceived=e.loaded,i.bandwidth=Math.floor(i.bytesReceived/i.roundTripTime*8*1e3),i}(e)),!t.stats.firstBytesReceivedAt&&t.stats.bytesReceived&&(t.stats.firstBytesReceivedAt=Date.now()),i(e,t)}}function kc(e,t,i,n,r,a,s){var o=[],u=Tc(o,i,s);if(r.key&&!r.key.bytes){var l=e(fs.mergeOptions(t,{uri:r.key.resolvedUri,responseType:"arraybuffer"}),function(a,s){return function(e,t){var i=t.response,n=bc(e,t);if(n)return s(n,a);if(16!==i.byteLength)return s({status:t.status,message:"Invalid HLS key at URL: "+t.uri,code:Ic,xhr:t},a);var r=new DataView(i);return a.key.bytes=new Uint32Array([r.getUint32(0),r.getUint32(4),r.getUint32(8),r.getUint32(12)]),s(null,a)}}(r,u));o.push(l)}if(r.map&&!r.map.bytes){var c=e(fs.mergeOptions(t,{uri:r.map.resolvedUri,responseType:"arraybuffer",headers:cl(r.map)}),function(r,a,s){return function(e,t){var i=t.response,n=bc(e,t);return n?s(n,r):0===i.byteLength?s({status:t.status,message:"Empty HLS segment content at URL: "+t.uri,code:Ic,xhr:t},r):(r.map.bytes=new Uint8Array(t.response),a&&!a.isInitialized()&&a.init(),r.map.timescales=Ao.timescale(r.map.bytes),r.map.videoTrackIds=Ao.videoTrackIds(r.map.bytes),s(null,r))}}(r,n,u));o.push(c)}var h=e(fs.mergeOptions(t,{uri:r.resolvedUri,responseType:"arraybuffer",headers:cl(r)}),function(a,s,o){return function(e,t){var i=t.response,n=bc(e,t),r=void 0;return n?o(n,a):0===i.byteLength?o({status:t.status,message:"Empty HLS segment content at URL: "+t.uri,code:Ic,xhr:t},a):(a.stats=function(e){return{bandwidth:e.bandwidth,bytesReceived:e.bytesReceived||0,roundTripTime:e.roundTripTime||0}}(t),a.key?a.encryptedBytes=new Uint8Array(t.response):a.bytes=new Uint8Array(t.response),s&&a.map&&a.map.bytes&&(s.isInitialized()||s.init(),(r=s.parse(a.bytes,a.map.videoTrackIds,a.map.timescales))&&r.captions&&(a.captionStreams=r.captionStreams,a.fmp4Captions=r.captions)),o(null,a))}}(r,n,u));return h.addEventListener("progress",Sc(r,a)),o.push(h),function(){return _c(o)}}function Cc(e,t){var i;return e&&(i=v.getComputedStyle(e))?i[t]:""}function Ec(e,n){var r=e.slice();e.sort(function(e,t){var i=n(e,t);return 0===i?r.indexOf(e)-r.indexOf(t):i})}function wc(e,t){var i=void 0,n=void 0;return e.attributes.BANDWIDTH&&(i=e.attributes.BANDWIDTH),i=i||v.Number.MAX_VALUE,t.attributes.BANDWIDTH&&(n=t.attributes.BANDWIDTH),i-(n=n||v.Number.MAX_VALUE)}function Ac(e){return"number"==typeof e&&isFinite(e)}var Pc={GOAL_BUFFER_LENGTH:30,MAX_GOAL_BUFFER_LENGTH:60,GOAL_BUFFER_LENGTH_RATE:1,INITIAL_BANDWIDTH:4194304,BANDWIDTH_VARIANCE:1.2,BUFFER_LOW_WATER_LINE:0,MAX_BUFFER_LOW_WATER_LINE:30,BUFFER_LOW_WATER_LINE_RATE:1},Ic=2,Lc=-101,Oc=-102,xc=(ju(Dc,fs.EventTarget),Nu(Dc,[{key:"resetStats_",value:function(){this.mediaBytesTransferred=0,this.mediaRequests=0,this.mediaRequestsAborted=0,this.mediaRequestsTimedout=0,this.mediaRequestsErrored=0,this.mediaTransferDuration=0,this.mediaSecondsLoaded=0}},{key:"dispose",value:function(){this.state="DISPOSED",this.pause(),this.abort_(),this.sourceUpdater_&&this.sourceUpdater_.dispose(),this.resetStats_(),this.captionParser_&&this.captionParser_.reset()}},{key:"abort",value:function(){"WAITING"===this.state?(this.abort_(),this.state="READY",this.paused()||this.monitorBuffer_()):this.pendingSegment_&&(this.pendingSegment_=null)}},{key:"abort_",value:function(){this.pendingSegment_&&this.pendingSegment_.abortRequests(),this.pendingSegment_=null}},{key:"error",value:function(e){return"undefined"!=typeof e&&(this.error_=e),this.pendingSegment_=null,this.error_}},{key:"endOfStream",value:function(){this.ended_=!0,this.pause(),this.trigger("ended")}},{key:"buffered_",value:function(){return this.sourceUpdater_?this.sourceUpdater_.buffered():fs.createTimeRanges()}},{key:"initSegment",value:function(e,t){var i=1<arguments.length&&void 0!==t&&t;if(!e)return null;var n=fl(e),r=this.initSegments_[n];return i&&!r&&e.bytes&&(this.initSegments_[n]=r={resolvedUri:e.resolvedUri,byterange:e.byterange,bytes:e.bytes,timescales:e.timescales,videoTrackIds:e.videoTrackIds}),r||e}},{key:"segmentKey",value:function(e,t){var i=1<arguments.length&&void 0!==t&&t;if(!e)return null;var n=ml(e),r=this.keyCache_[n];this.cacheEncryptionKeys_&&i&&!r&&e.bytes&&(this.keyCache_[n]=r={resolvedUri:e.resolvedUri,bytes:e.bytes});var a={resolvedUri:(r||e).resolvedUri};return r&&(a.bytes=r.bytes),a}},{key:"couldBeginLoading_",value:function(){return this.playlist_&&(this.sourceUpdater_||this.mimeType_&&"INIT"===this.state)&&!this.paused()}},{key:"load",value:function(){if(this.monitorBuffer_(),this.playlist_){if(this.syncController_.setDateTimeMapping(this.playlist_),"INIT"===this.state&&this.couldBeginLoading_())return this.init_();!this.couldBeginLoading_()||"READY"!==this.state&&"INIT"!==this.state||(this.state="READY")}}},{key:"init_",value:function(){return this.state="READY",this.sourceUpdater_=new yc(this.mediaSource_,this.mimeType_,this.loaderType_,this.sourceBufferEmitter_),this.resetEverything(),this.monitorBuffer_()}},{key:"playlist",value:function(e,t){var i=1<arguments.length&&void 0!==t?t:{};if(e){var n=this.playlist_,r=this.pendingSegment_;this.playlist_=e,this.xhrOptions_=i,this.hasPlayed_()||(e.syncInfo={mediaSequence:e.mediaSequence,time:0});var a=null;if(n&&(n.id?a=n.id:n.uri&&(a=n.uri)),this.logger_("playlist update ["+a+" => "+(e.id||e.uri)+"]"),this.trigger("syncinfoupdate"),"INIT"===this.state&&this.couldBeginLoading_())return this.init_();if(n&&n.uri===e.uri){var s=e.mediaSequence-n.mediaSequence;this.logger_("live window shift ["+s+"]"),null!==this.mediaIndex&&(this.mediaIndex-=s),r&&(r.mediaIndex-=s,0<=r.mediaIndex&&(r.segment=e.segments[r.mediaIndex])),this.syncController_.saveExpiredSegmentInfo(n,e)}else null!==this.mediaIndex&&this.resyncLoader()}}},{key:"pause",value:function(){this.checkBufferTimeout_&&(v.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=null)}},{key:"paused",value:function(){return null===this.checkBufferTimeout_}},{key:"mimeType",value:function(e,t){this.mimeType_||(this.mimeType_=e,this.sourceBufferEmitter_=t,"INIT"===this.state&&this.couldBeginLoading_()&&this.init_())}},{key:"resetEverything",value:function(e){this.ended_=!1,this.resetLoader(),this.remove(0,this.duration_(),e),this.captionParser_&&this.captionParser_.clearAllCaptions(),this.trigger("reseteverything")}},{key:"resetLoader",value:function(){this.fetchAtBuffer_=!1,this.resyncLoader()}},{key:"resyncLoader",value:function(){this.mediaIndex=null,this.syncPoint_=null,this.abort()}},{key:"remove",value:function(e,t,i){if(this.sourceUpdater_&&this.sourceUpdater_.remove(e,t,i),Cl(e,t,this.segmentMetadataTrack_),this.inbandTextTracks_)for(var n in this.inbandTextTracks_)Cl(e,t,this.inbandTextTracks_[n])}},{key:"monitorBuffer_",value:function(){this.checkBufferTimeout_&&v.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=v.setTimeout(this.monitorBufferTick_.bind(this),1)}},{key:"monitorBufferTick_",value:function(){"READY"===this.state&&this.fillBuffer_(),this.checkBufferTimeout_&&v.clearTimeout(this.checkBufferTimeout_),this.checkBufferTimeout_=v.setTimeout(this.monitorBufferTick_.bind(this),500)}},{key:"fillBuffer_",value:function(){if(!this.sourceUpdater_.updating()){this.syncPoint_||(this.syncPoint_=this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_()));var e=this.checkBuffer_(this.buffered_(),this.playlist_,this.mediaIndex,this.hasPlayed_(),this.currentTime_(),this.syncPoint_);e&&(this.isEndOfStream_(e.mediaIndex)?this.endOfStream():e.mediaIndex===this.playlist_.segments.length-1&&"ended"===this.mediaSource_.readyState&&!this.seeking_()||(e.timeline!==this.currentTimeline_&&(this.syncController_.reset(),e.timestampOffset=e.startOfSegment,this.captionParser_&&this.captionParser_.clearAllCaptions()),this.loadSegment_(e)))}}},{key:"isEndOfStream_",value:function(e,t){return function(e,t,i){if(!e||!t)return!1;var n=i===e.segments.length;return e.endList&&"open"===t.readyState&&n}(1<arguments.length&&void 0!==t?t:this.playlist_,this.mediaSource_,e)&&!this.sourceUpdater_.updating()}},{key:"checkBuffer_",value:function(e,t,i,n,r,a){var s=0,o=void 0;e.length&&(s=e.end(e.length-1));var u=Math.max(0,s-r);if(!t.segments.length)return null;if(u>=this.goalBufferLength_())return null;if(!n&&1<=u)return null;if(null===a)return i=this.getSyncSegmentCandidate_(t),this.generateSegmentInfo_(t,i,null,!0);if(null!==i)return t.segments[i],o=s,this.generateSegmentInfo_(t,i+1,o,!1);if(this.fetchAtBuffer_){var l=Ll.getMediaInfoForTime(t,s,a.segmentIndex,a.time);i=l.mediaIndex,o=l.startTime}else{var c=Ll.getMediaInfoForTime(t,r,a.segmentIndex,a.time);i=c.mediaIndex,o=c.startTime}return this.generateSegmentInfo_(t,i,o,!1)}},{key:"getSyncSegmentCandidate_",value:function(e){var t=this;if(-1===this.currentTimeline_)return 0;var i=e.segments.map(function(e,t){return{timeline:e.timeline,segmentIndex:t}}).filter(function(e){return e.timeline===t.currentTimeline_});return i.length?i[Math.min(i.length-1,1)].segmentIndex:Math.max(e.segments.length-1,0)}},{key:"generateSegmentInfo_",value:function(e,t,i,n){if(t<0||t>=e.segments.length)return null;var r=e.segments[t];return{requestId:"segment-loader-"+Math.random(),uri:r.resolvedUri,mediaIndex:t,isSyncRequest:n,startOfSegment:i,playlist:e,bytes:null,encryptedBytes:null,timestampOffset:null,timeline:r.timeline,duration:r.duration,segment:r}}},{key:"abortRequestEarly_",value:function(e){if(this.hls_.tech_.paused()||!this.xhrOptions_.timeout||!this.playlist_.attributes.BANDWIDTH)return!1;if(Date.now()-(e.firstBytesReceivedAt||Date.now())<1e3)return!1;var t=this.currentTime_(),i=e.bandwidth,n=this.pendingSegment_.duration,r=Ll.estimateSegmentRequestTime(n,i,this.playlist_,e.bytesReceived),a=function(e,t,i){var n=2<arguments.length&&void 0!==i?i:1;return((e.length?e.end(e.length-1):0)-t)/n}(this.buffered_(),t,this.hls_.tech_.playbackRate())-1;if(r<=a)return!1;var s=function(e){var t=e.master,i=e.currentTime,n=e.bandwidth,r=e.duration,a=e.segmentDuration,s=e.timeUntilRebuffer,o=e.currentTimeline,u=e.syncController,l=t.playlists.filter(function(e){return!Ll.isIncompatible(e)}),c=l.filter(Ll.isEnabled);c.length||(c=l.filter(function(e){return!Ll.isDisabled(e)}));var h=c.filter(Ll.hasAttribute.bind(null,"BANDWIDTH")).map(function(e){var t=u.getSyncPoint(e,r,o,i)?1:2;return{playlist:e,rebufferingImpact:Ll.estimateSegmentRequestTime(a,n,e)*t-s}}),d=h.filter(function(e){return e.rebufferingImpact<=0});return Ec(d,function(e,t){return wc(t.playlist,e.playlist)}),d.length?d[0]:(Ec(h,function(e,t){return e.rebufferingImpact-t.rebufferingImpact}),h[0]||null)}({master:this.hls_.playlists.master,currentTime:t,bandwidth:i,duration:this.duration_(),segmentDuration:n,timeUntilRebuffer:a,currentTimeline:this.currentTimeline_,syncController:this.syncController_});if(s){var o=r-a-s.rebufferingImpact,u=.5;return a<=1/30&&(u=1),!(!s.playlist||s.playlist.uri===this.playlist_.uri||o<u)&&(this.bandwidth=s.playlist.attributes.BANDWIDTH*Pc.BANDWIDTH_VARIANCE+1,this.abort(),this.trigger("earlyabort"),!0)}}},{key:"handleProgress_",value:function(e,t){this.pendingSegment_&&t.requestId===this.pendingSegment_.requestId&&!this.abortRequestEarly_(t.stats)&&this.trigger("progress")}},{key:"loadSegment_",value:function(e){this.state="WAITING",this.pendingSegment_=e,this.trimBackBuffer_(e),e.abortRequests=kc(this.hls_.xhr,this.xhrOptions_,this.decrypter_,this.captionParser_,this.createSimplifiedSegmentObj_(e),this.handleProgress_.bind(this),this.segmentRequestFinished_.bind(this))}},{key:"trimBackBuffer_",value:function(e){var t=function(e,t,i){var n=void 0;return n=e.length&&0<e.start(0)&&e.start(0)<t?e.start(0):t-30,Math.min(n,t-i)}(this.seekable_(),this.currentTime_(),this.playlist_.targetDuration||10);0<t&&this.remove(0,t)}},{key:"createSimplifiedSegmentObj_",value:function(e){var t=e.segment,i={resolvedUri:t.resolvedUri,byterange:t.byterange,requestId:e.requestId};if(t.key){var n=t.key.iv||new Uint32Array([0,0,0,e.mediaIndex+e.playlist.mediaSequence]);i.key=this.segmentKey(t.key),i.key.iv=n}return t.map&&(i.map=this.initSegment(t.map)),i}},{key:"segmentRequestFinished_",value:function(e,t){if(this.mediaRequests+=1,t.stats&&(this.mediaBytesTransferred+=t.stats.bytesReceived,this.mediaTransferDuration+=t.stats.roundTripTime),this.pendingSegment_){if(t.requestId===this.pendingSegment_.requestId){if(e)return this.pendingSegment_=null,this.state="READY",e.code===Oc?void(this.mediaRequestsAborted+=1):(this.pause(),e.code===Lc?(this.mediaRequestsTimedout+=1,this.bandwidth=1,this.roundTrip=NaN,void this.trigger("bandwidthupdate")):(this.mediaRequestsErrored+=1,this.error(e),void this.trigger("error")));this.bandwidth=t.stats.bandwidth,this.roundTrip=t.stats.roundTripTime,t.map&&(t.map=this.initSegment(t.map,!0)),t.key&&this.segmentKey(t.key,!0),this.processSegmentResponse_(t)}}else this.mediaRequestsAborted+=1}},{key:"processSegmentResponse_",value:function(e){var t=this.pendingSegment_;t.bytes=e.bytes,e.map&&(t.segment.map.bytes=e.map.bytes),t.endOfAllRequests=e.endOfAllRequests,e.fmp4Captions&&(function(e,t,i){for(var n in i)if(!e[n]){t.trigger({type:"usage",name:"hls-608"});var r=t.textTracks().getTrackById(n);e[n]=r||t.addRemoteTextTrack({kind:"captions",id:n,label:n},!1).track}}(this.inbandTextTracks_,this.hls_.tech_,e.captionStreams),function(e){var r=e.inbandTextTracks,t=e.captionArray,a=e.timestampOffset;if(t){var s=window.WebKitDataCue||window.VTTCue;t.forEach(function(e){var t=e.stream,i=e.startTime,n=e.endTime;r[t]&&(i+=a,n+=a,r[t].addCue(new s(i,n,e.text)))})}}({inbandTextTracks:this.inbandTextTracks_,captionArray:e.fmp4Captions,timestampOffset:0}),this.captionParser_&&this.captionParser_.clearParsedCaptions()),this.handleSegment_()}},{key:"handleSegment_",value:function(){var e=this;if(this.pendingSegment_){var t=this.pendingSegment_,i=t.segment,n=this.syncController_.probeSegmentInfo(t);"undefined"==typeof this.startingMedia_&&n&&(n.containsAudio||n.containsVideo)&&(this.startingMedia_={containsAudio:n.containsAudio,containsVideo:n.containsVideo});var r=function(e,t,i){return"main"===e&&t&&i?i.containsAudio||i.containsVideo?t.containsVideo&&!i.containsVideo?"Only audio found in segment when we expected video. We can't switch to audio only from a stream that had video. To get rid of this message, please add codec information to the manifest.":!t.containsVideo&&i.containsVideo?"Video found in segment when we expected only audio. We can't switch to a stream with video from an audio only stream. To get rid of this message, please add codec information to the manifest.":null:"Neither audio nor video found in segment.":null}(this.loaderType_,this.startingMedia_,n);if(r)return this.error({message:r,blacklistDuration:1/0}),void this.trigger("error");if(t.isSyncRequest)return this.trigger("syncinfoupdate"),this.pendingSegment_=null,void(this.state="READY");if(null!==t.timestampOffset&&t.timestampOffset!==this.sourceUpdater_.timestampOffset()){if(n&&n.segmentTimestampInfo){var a=n.segmentTimestampInfo[0].ptsTime,s=n.segmentTimestampInfo[0].dtsTime;t.timestampOffset-=a-s}this.sourceUpdater_.timestampOffset(t.timestampOffset),this.trigger("timestampoffset")}var o=this.syncController_.mappingForTimeline(t.timeline);if(null!==o&&this.trigger({type:"segmenttimemapping",mapping:o}),this.state="APPENDING",i.map){var u=fl(i.map);if(!this.activeInitSegmentId_||this.activeInitSegmentId_!==u){var l=this.initSegment(i.map);this.sourceUpdater_.appendBuffer({bytes:l.bytes},function(){e.activeInitSegmentId_=u})}}t.byteLength=t.bytes.byteLength,"number"==typeof i.start&&"number"==typeof i.end?this.mediaSecondsLoaded+=i.end-i.start:this.mediaSecondsLoaded+=i.duration,this.logger_(function(e){var t=e.segment,i=t.start,n=t.end,r=e.playlist,a=r.mediaSequence,s=r.id,o=r.segments,u=void 0===o?[]:o,l=e.mediaIndex,c=e.timeline;return["appending ["+l+"] of ["+a+", "+(a+u.length)+"] from playlist ["+s+"]","["+i+" => "+n+"] in timeline ["+c+"]"].join(" ")}(t)),this.sourceUpdater_.appendBuffer({bytes:t.bytes,videoSegmentTimingInfoCallback:this.handleVideoSegmentTimingInfo_.bind(this,t.requestId)},this.handleUpdateEnd_.bind(this))}else this.state="READY"}},{key:"handleVideoSegmentTimingInfo_",value:function(e,t){if(this.pendingSegment_&&e===this.pendingSegment_.requestId){var i=this.pendingSegment_.segment;i.videoTimingInfo||(i.videoTimingInfo={}),i.videoTimingInfo.transmuxerPrependedSeconds=t.videoSegmentTimingInfo.prependedContentDuration||0,i.videoTimingInfo.transmuxedPresentationStart=t.videoSegmentTimingInfo.start.presentation,i.videoTimingInfo.transmuxedPresentationEnd=t.videoSegmentTimingInfo.end.presentation,i.videoTimingInfo.baseMediaDecodeTime=t.videoSegmentTimingInfo.baseMediaDecodeTime}}},{key:"handleUpdateEnd_",value:function(){if(!this.pendingSegment_)return this.state="READY",void(this.paused()||this.monitorBuffer_());var e=this.pendingSegment_,t=e.segment,i=null!==this.mediaIndex;this.pendingSegment_=null,this.recordThroughput_(e),this.addSegmentMetadataCue_(e),this.state="READY",this.mediaIndex=e.mediaIndex,this.fetchAtBuffer_=!0,this.currentTimeline_=e.timeline,this.trigger("syncinfoupdate"),t.end&&this.currentTime_()-t.end>3*e.playlist.targetDuration?this.resetEverything():(i&&this.trigger("bandwidthupdate"),this.trigger("progress"),this.isEndOfStream_(e.mediaIndex+1,e.playlist)&&this.endOfStream(),this.paused()||this.monitorBuffer_())}},{key:"recordThroughput_",value:function(e){var t=this.throughput.rate,i=Date.now()-e.endOfAllRequests+1,n=Math.floor(e.byteLength/i*8*1e3);this.throughput.rate+=(n-t)/++this.throughput.count}},{key:"addSegmentMetadataCue_",value:function(e){if(this.segmentMetadataTrack_){var t=e.segment,i=t.start,n=t.end;if(Ac(i)&&Ac(n)){Cl(i,n,this.segmentMetadataTrack_);var r=v.WebKitDataCue||v.VTTCue,a={custom:t.custom,dateTimeObject:t.dateTimeObject,dateTimeString:t.dateTimeString,bandwidth:e.playlist.attributes.BANDWIDTH,resolution:e.playlist.attributes.RESOLUTION,codecs:e.playlist.attributes.CODECS,byteLength:e.byteLength,uri:e.uri,timeline:e.timeline,playlist:e.playlist.uri,start:i,end:n},s=new r(i,n,JSON.stringify(a));s.value=a,this.segmentMetadataTrack_.addCue(s)}}}}]),Dc);function Dc(e){Mu(this,Dc);var t=Fu(this,(Dc.__proto__||Object.getPrototypeOf(Dc)).call(this));if(!e)throw new TypeError("Initialization settings are required");if("function"!=typeof e.currentTime)throw new TypeError("No currentTime getter specified");if(!e.mediaSource)throw new TypeError("No MediaSource specified");return t.bandwidth=e.bandwidth,t.throughput={rate:0,count:0},t.roundTrip=NaN,t.resetStats_(),t.mediaIndex=null,t.hasPlayed_=e.hasPlayed,t.currentTime_=e.currentTime,t.seekable_=e.seekable,t.seeking_=e.seeking,t.duration_=e.duration,t.mediaSource_=e.mediaSource,t.hls_=e.hls,t.loaderType_=e.loaderType,t.startingMedia_=void 0,t.segmentMetadataTrack_=e.segmentMetadataTrack,t.goalBufferLength_=e.goalBufferLength,t.sourceType_=e.sourceType,t.inbandTextTracks_=e.inbandTextTracks,t.state_="INIT",t.checkBufferTimeout_=null,t.error_=void 0,t.currentTimeline_=-1,t.pendingSegment_=null,t.mimeType_=null,t.sourceUpdater_=null,t.xhrOptions_=null,t.activeInitSegmentId_=null,t.initSegments_={},t.cacheEncryptionKeys_=e.cacheEncryptionKeys,t.keyCache_={},"main"===t.loaderType_?t.captionParser_=new Xo:t.captionParser_=null,t.decrypter_=e.decrypter,t.syncController_=e.syncController,t.syncPoint_={segmentIndex:0,time:0},t.syncController_.on("syncinfoupdate",function(){return t.trigger("syncinfoupdate")}),t.mediaSource_.addEventListener("sourceopen",function(){return t.ended_=!1}),t.fetchAtBuffer_=!1,t.logger_=mc("SegmentLoader["+t.loaderType_+"]"),Object.defineProperty(t,"state",{get:function(){return this.state_},set:function(e){e!==this.state_&&(this.logger_(this.state_+" -> "+e),this.state_=e)}}),t}function Uc(e){return decodeURIComponent(escape(String.fromCharCode.apply(null,e)))}var Rc=new Uint8Array("\n\n".split("").map(function(e){return e.charCodeAt(0)})),Mc=(ju(Nc,xc),Nu(Nc,[{key:"buffered_",value:function(){if(!this.subtitlesTrack_||!this.subtitlesTrack_.cues.length)return fs.createTimeRanges();var e=this.subtitlesTrack_.cues,t=e[0].startTime,i=e[e.length-1].startTime;return fs.createTimeRanges([[t,i]])}},{key:"initSegment",value:function(e,t){var i=1<arguments.length&&void 0!==t&&t;if(!e)return null;var n=fl(e),r=this.initSegments_[n];if(i&&!r&&e.bytes){var a=Rc.byteLength+e.bytes.byteLength,s=new Uint8Array(a);s.set(e.bytes),s.set(Rc,e.bytes.byteLength),this.initSegments_[n]=r={resolvedUri:e.resolvedUri,byterange:e.byterange,bytes:s}}return r||e}},{key:"couldBeginLoading_",value:function(){return this.playlist_&&this.subtitlesTrack_&&!this.paused()}},{key:"init_",value:function(){return this.state="READY",this.resetEverything(),this.monitorBuffer_()}},{key:"track",value:function(e){return"undefined"==typeof e||(this.subtitlesTrack_=e,"INIT"===this.state&&this.couldBeginLoading_()&&this.init_()),this.subtitlesTrack_}},{key:"remove",value:function(e,t){Cl(e,t,this.subtitlesTrack_)}},{key:"fillBuffer_",value:function(){var e=this;this.syncPoint_||(this.syncPoint_=this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_()));var t=this.checkBuffer_(this.buffered_(),this.playlist_,this.mediaIndex,this.hasPlayed_(),this.currentTime_(),this.syncPoint_);if(t=this.skipEmptySegments_(t)){if(null===this.syncController_.timestampOffsetForTimeline(t.timeline))return this.syncController_.one("timestampoffset",function(){e.state="READY",e.paused()||e.monitorBuffer_()}),void(this.state="WAITING_ON_TIMELINE");this.loadSegment_(t)}}},{key:"skipEmptySegments_",value:function(e){for(;e&&e.segment.empty;)e=this.generateSegmentInfo_(e.playlist,e.mediaIndex+1,e.startOfSegment+e.duration,e.isSyncRequest);return e}},{key:"handleSegment_",value:function(){var t=this;if(this.pendingSegment_&&this.subtitlesTrack_){this.state="APPENDING";var e=this.pendingSegment_,i=e.segment;if("function"!=typeof v.WebVTT&&this.subtitlesTrack_&&this.subtitlesTrack_.tech_){function n(){t.subtitlesTrack_.tech_.off("vttjsloaded",r),t.error({message:"Error loading vtt.js"}),t.state="READY",t.pause(),t.trigger("error")}var r=void 0;return r=function(){t.subtitlesTrack_.tech_.off("vttjserror",n),t.handleSegment_()},this.state="WAITING_ON_VTTJS",this.subtitlesTrack_.tech_.one("vttjsloaded",r),void this.subtitlesTrack_.tech_.one("vttjserror",n)}i.requested=!0;try{this.parseVTTCues_(e)}catch(e){return this.error({message:e.message}),this.state="READY",this.pause(),this.trigger("error")}if(this.updateTimeMapping_(e,this.syncController_.timelines[e.timeline],this.playlist_),e.isSyncRequest)return this.trigger("syncinfoupdate"),this.pendingSegment_=null,void(this.state="READY");e.byteLength=e.bytes.byteLength,this.mediaSecondsLoaded+=i.duration,e.cues.length&&this.remove(e.cues[0].endTime,e.cues[e.cues.length-1].endTime),e.cues.forEach(function(e){t.subtitlesTrack_.addCue(e)}),this.handleUpdateEnd_()}else this.state="READY"}},{key:"parseVTTCues_",value:function(t){var e=void 0,i=!1;"function"==typeof v.TextDecoder?e=new v.TextDecoder("utf8"):(e=v.WebVTT.StringDecoder(),i=!0);var n=new v.WebVTT.Parser(v,v.vttjs,e);if(t.cues=[],t.timestampmap={MPEGTS:0,LOCAL:0},n.oncue=t.cues.push.bind(t.cues),n.ontimestampmap=function(e){return t.timestampmap=e},n.onparsingerror=function(e){fs.log.warn("Error encountered when parsing cues: "+e.message)},t.segment.map){var r=t.segment.map.bytes;i&&(r=Uc(r)),n.parse(r)}var a=t.bytes;i&&(a=Uc(a)),n.parse(a),n.flush()}},{key:"updateTimeMapping_",value:function(e,t,i){var n=e.segment;if(t)if(e.cues.length){var r=e.timestampmap,a=r.MPEGTS/9e4-r.LOCAL+t.mapping;if(e.cues.forEach(function(e){e.startTime+=a,e.endTime+=a}),!i.syncInfo){var s=e.cues[0].startTime,o=e.cues[e.cues.length-1].startTime;i.syncInfo={mediaSequence:i.mediaSequence+e.mediaIndex,time:Math.min(s,o-n.duration)}}}else n.empty=!0}}]),Nc);function Nc(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};Mu(this,Nc);var i=Fu(this,(Nc.__proto__||Object.getPrototypeOf(Nc)).call(this,e,t));return i.mediaSource_=null,i.subtitlesTrack_=null,i}function Bc(e,t){for(var i=e.cues,n=0;n<i.length;n++){var r=i[n];if(t>=r.adStartTime&&t<=r.adEndTime)return r}return null}var jc=vu,Fc=[{name:"VOD",run:function(e,t,i,n,r){if(i===1/0)return null;return{time:0,segmentIndex:0}}},{name:"ProgramDateTime",run:function(e,t,i,n,r){if(!e.datetimeToDisplayTime)return null;var a=t.segments||[],s=null,o=null;r=r||0;for(var u=0;u<a.length;u++){var l=a[u];if(l.dateTimeObject){var c=l.dateTimeObject.getTime()/1e3+e.datetimeToDisplayTime,h=Math.abs(r-c);if(null!==o&&(0===h||o<h))break;o=h,s={time:c,segmentIndex:u}}}return s}},{name:"Segment",run:function(e,t,i,n,r){var a=t.segments||[],s=null,o=null;r=r||0;for(var u=0;u<a.length;u++){var l=a[u];if(l.timeline===n&&"undefined"!=typeof l.start){var c=Math.abs(r-l.start);if(null!==o&&o<c)break;(!s||null===o||c<=o)&&(o=c,s={time:l.start,segmentIndex:u})}}return s}},{name:"Discontinuity",run:function(e,t,i,n,r){var a=null;if(r=r||0,t.discontinuityStarts&&t.discontinuityStarts.length)for(var s=null,o=0;o<t.discontinuityStarts.length;o++){var u=t.discontinuityStarts[o],l=t.discontinuitySequence+o+1,c=e.discontinuities[l];if(c){var h=Math.abs(r-c.time);if(null!==s&&s<h)break;(!a||null===s||h<=s)&&(s=h,a={time:c.time,segmentIndex:u})}}return a}},{name:"Playlist",run:function(e,t,i,n,r){return t.syncInfo?{time:t.syncInfo.time,segmentIndex:t.syncInfo.mediaSequence-t.mediaSequence}:null}}],Hc=(ju(Vc,fs.EventTarget),Nu(Vc,[{key:"getSyncPoint",value:function(e,t,i,n){var r=this.runStrategies_(e,t,i,n);return r.length?this.selectSyncPoint_(r,{key:"time",value:n}):null}},{key:"getExpiredTime",value:function(e,t){if(!e||!e.segments)return null;var i=this.runStrategies_(e,t,e.discontinuitySequence,0);if(!i.length)return null;var n=this.selectSyncPoint_(i,{key:"segmentIndex",value:0});return 0<n.segmentIndex&&(n.time*=-1),Math.abs(n.time+Zu(e,n.segmentIndex,0))}},{key:"runStrategies_",value:function(e,t,i,n){for(var r=[],a=0;a<Fc.length;a++){var s=Fc[a],o=s.run(this,e,t,i,n);o&&(o.strategy=s.name,r.push({strategy:s.name,syncPoint:o}))}return r}},{key:"selectSyncPoint_",value:function(e,t){for(var i=e[0].syncPoint,n=Math.abs(e[0].syncPoint[t.key]-t.value),r=e[0].strategy,a=1;a<e.length;a++){var s=Math.abs(e[a].syncPoint[t.key]-t.value);s<n&&(n=s,i=e[a].syncPoint,r=e[a].strategy)}return this.logger_("syncPoint for ["+t.key+": "+t.value+"] chosen with strategy ["+r+"]: [time:"+i.time+", segmentIndex:"+i.segmentIndex+"]"),i}},{key:"saveExpiredSegmentInfo",value:function(e,t){for(var i=t.mediaSequence-e.mediaSequence-1;0<=i;i--){var n=e.segments[i];if(n&&"undefined"!=typeof n.start){t.syncInfo={mediaSequence:e.mediaSequence+i,time:n.start},this.logger_("playlist refresh sync: [time:"+t.syncInfo.time+", mediaSequence: "+t.syncInfo.mediaSequence+"]"),this.trigger("syncinfoupdate");break}}}},{key:"setDateTimeMapping",value:function(e){if(!this.datetimeToDisplayTime&&e.segments&&e.segments.length&&e.segments[0].dateTimeObject){var t=e.segments[0].dateTimeObject.getTime()/1e3;this.datetimeToDisplayTime=-t}}},{key:"reset",value:function(){this.inspectCache_=void 0}},{key:"probeSegmentInfo",value:function(e){var t=e.segment,i=e.playlist,n=void 0;return(n=t.map?this.probeMp4Segment_(e):this.probeTsSegment_(e))&&this.calculateSegmentTimeMapping_(e,n)&&(this.saveDiscontinuitySyncInfo_(e),i.syncInfo||(i.syncInfo={mediaSequence:i.mediaSequence+e.mediaIndex,time:t.start})),n}},{key:"probeMp4Segment_",value:function(e){var t=e.segment,i=Ao.timescale(t.map.bytes),n=Ao.startTime(i,e.bytes);return null!==e.timestampOffset&&(e.timestampOffset-=n),{start:n,end:n+t.duration}}},{key:"probeTsSegment_",value:function(e){var t=jc(e.bytes,this.inspectCache_),i=void 0,n=void 0,r=void 0;return t?(t.video&&2===t.video.length?(this.inspectCache_=t.video[1].dts,i=t.video[0].dtsTime,n=t.video[1].dtsTime,r=t.video):t.audio&&2===t.audio.length&&(this.inspectCache_=t.audio[1].dts,i=t.audio[0].dtsTime,n=t.audio[1].dtsTime,r=t.audio),{segmentTimestampInfo:r,start:i,end:n,containsVideo:t.video&&2===t.video.length,containsAudio:t.audio&&2===t.audio.length}):null}},{key:"timestampOffsetForTimeline",value:function(e){return"undefined"==typeof this.timelines[e]?null:this.timelines[e].time}},{key:"mappingForTimeline",value:function(e){return"undefined"==typeof this.timelines[e]?null:this.timelines[e].mapping}},{key:"calculateSegmentTimeMapping_",value:function(e,t){var i=e.segment,n=this.timelines[e.timeline];if(null!==e.timestampOffset)n={time:e.startOfSegment,mapping:e.startOfSegment-t.start},this.timelines[e.timeline]=n,this.trigger("timestampoffset"),this.logger_("time mapping for timeline "+e.timeline+": [time: "+n.time+"] [mapping: "+n.mapping+"]"),i.start=e.startOfSegment,i.end=t.end+n.mapping;else{if(!n)return!1;i.start=t.start+n.mapping,i.end=t.end+n.mapping}return!0}},{key:"saveDiscontinuitySyncInfo_",value:function(e){var t=e.playlist,i=e.segment;if(i.discontinuity)this.discontinuities[i.timeline]={time:i.start,accuracy:0};else if(t.discontinuityStarts&&t.discontinuityStarts.length)for(var n=0;n<t.discontinuityStarts.length;n++){var r=t.discontinuityStarts[n],a=t.discontinuitySequence+n+1,s=r-e.mediaIndex,o=Math.abs(s);if(!this.discontinuities[a]||this.discontinuities[a].accuracy>o){var u=void 0;u=s<0?i.start-Zu(t,e.mediaIndex,r):i.end+Zu(t,e.mediaIndex+1,r),this.discontinuities[a]={time:u,accuracy:o}}}}}]),Vc);function Vc(){Mu(this,Vc);var e=Fu(this,(Vc.__proto__||Object.getPrototypeOf(Vc)).call(this));return e.inspectCache_=void 0,e.timelines=[],e.discontinuities=[],e.datetimeToDisplayTime=null,e.logger_=mc("SyncController"),e}function qc(e,t){e.abort(),e.pause(),t&&t.activePlaylistLoader&&(t.activePlaylistLoader.pause(),t.activePlaylistLoader=null)}function Wc(e,t){(t.activePlaylistLoader=e).load()}function zc(t){["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(function(e){Kc[e](e,t)});var i=t.mediaTypes,e=t.masterPlaylistLoader,n=t.tech,r=t.hls;["AUDIO","SUBTITLES"].forEach(function(e){i[e].activeGroup=function(a,s){return function(t){var e=s.masterPlaylistLoader,i=s.mediaTypes[a].groups,n=e.media();if(!n)return null;var r=null;return n.attributes[a]&&(r=i[n.attributes[a]]),r=r||i.main,"undefined"==typeof t?r:null===t?null:r.filter(function(e){return e.id===t.id})[0]||null}}(e,t),i[e].activeTrack=Yc[e](e,t),i[e].onGroupChanged=function(o,u){return function(){var e=u.segmentLoaders,t=e[o],i=e.main,n=u.mediaTypes[o],r=n.activeTrack(),a=n.activeGroup(r),s=n.activePlaylistLoader;qc(t,n),a&&(a.playlistLoader?(t.resyncLoader(),Wc(a.playlistLoader,n)):s&&i.resetEverything())}}(e,t),i[e].onTrackChanged=function(o,u){return function(){var e=u.segmentLoaders,t=e[o],i=e.main,n=u.mediaTypes[o],r=n.activeTrack(),a=n.activeGroup(r),s=n.activePlaylistLoader;qc(t,n),a&&(a.playlistLoader?(s!==a.playlistLoader&&(t.track&&t.track(r),t.resetEverything()),Wc(a.playlistLoader,n)):i.resetEverything())}}(e,t)});var a=i.AUDIO.activeGroup(),s=(a.filter(function(e){return e.default})[0]||a[0]).id;function o(){i.AUDIO.onTrackChanged(),n.trigger({type:"usage",name:"hls-audio-change"})}for(var u in i.AUDIO.tracks[s].enabled=!0,i.AUDIO.onTrackChanged(),e.on("mediachange",function(){["AUDIO","SUBTITLES"].forEach(function(e){return i[e].onGroupChanged()})}),n.audioTracks().addEventListener("change",o),n.remoteTextTracks().addEventListener("change",i.SUBTITLES.onTrackChanged),r.on("dispose",function(){n.audioTracks().removeEventListener("change",o),n.remoteTextTracks().removeEventListener("change",i.SUBTITLES.onTrackChanged)}),n.clearTracks("audio"),i.AUDIO.tracks)n.audioTracks().addTrack(i.AUDIO.tracks[u])}var $c=new Fl("./decrypter-worker.worker.js",function(e,t){var i,c,g,n,r,u,s,a=this;i=function(e,t,i){return t&&o(e.prototype,t),i&&o(e,i),e},c=null,d.prototype.decrypt=function(e,t,i,n,r,a){var s=this._key[1],o=e^s[0],u=n^s[1],l=i^s[2],c=t^s[3],h=void 0,d=void 0,p=void 0,f=s.length/4-2,m=void 0,g=4,y=this._tables[1],v=y[0],_=y[1],b=y[2],T=y[3],S=y[4];for(m=0;m<f;m++)h=v[o>>>24]^_[u>>16&255]^b[l>>8&255]^T[255&c]^s[g],d=v[u>>>24]^_[l>>16&255]^b[c>>8&255]^T[255&o]^s[g+1],p=v[l>>>24]^_[c>>16&255]^b[o>>8&255]^T[255&u]^s[g+2],c=v[c>>>24]^_[o>>16&255]^b[u>>8&255]^T[255&l]^s[g+3],g+=4,o=h,u=d,l=p;for(m=0;m<4;m++)r[(3&-m)+a]=S[o>>>24]<<24^S[u>>16&255]<<16^S[l>>8&255]<<8^S[255&c]^s[g++],h=o,o=u,u=l,l=c,c=h},g=d,l.prototype.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},l.prototype.off=function(e,t){if(!this.listeners[e])return!1;var i=this.listeners[e].indexOf(t);return this.listeners[e].splice(i,1),-1<i},l.prototype.trigger=function(e,t){var i=this.listeners[e];if(i)if(2===arguments.length)for(var n=i.length,r=0;r<n;++r)i[r].call(this,t);else for(var a=Array.prototype.slice.call(arguments,1),s=i.length,o=0;o<s;++o)i[o].apply(this,a)},l.prototype.dispose=function(){this.listeners={}},l.prototype.pipe=function(t){this.on("data",function(e){t.push(e)})},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(p,r=n=l),p.prototype.processJob_=function(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null},p.prototype.push=function(e){this.jobs.push(e),this.timeout_||(this.timeout_=setTimeout(this.processJob_.bind(this),this.delay))},u=p,f.prototype.decryptChunk_=function(t,i,n,r){return function(){var e=function(e,t,i){var n=new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),r=new g(Array.prototype.slice.call(t)),a=new Uint8Array(e.byteLength),s=new Int32Array(a.buffer),o=void 0,u=void 0,l=void 0,c=void 0,h=void 0,d=void 0,p=void 0,f=void 0,m=void 0;for(o=i[0],u=i[1],l=i[2],c=i[3],m=0;m<n.length;m+=4)h=y(n[m]),d=y(n[m+1]),p=y(n[m+2]),f=y(n[m+3]),r.decrypt(h,d,p,f,s,m),s[m]=y(s[m]^o),s[m+1]=y(s[m+1]^u),s[m+2]=y(s[m+2]^l),s[m+3]=y(s[m+3]^c),o=h,u=d,l=p,c=f;return a}(t,i,n);r.set(e,t.byteOffset)}},i(f,null,[{key:"STEP",get:function(){return 32e3}}]),s=f,new function(a){a.onmessage=function(e){var i=e.data,t=new Uint8Array(i.encrypted.bytes,i.encrypted.byteOffset,i.encrypted.byteLength),n=new Uint32Array(i.key.bytes,i.key.byteOffset,i.key.byteLength/4),r=new Uint32Array(i.iv.bytes,i.iv.byteOffset,i.iv.byteLength/4);new s(t,n,r,function(e,t){a.postMessage(function(i){var n={};return Object.keys(i).forEach(function(e){var t=i[e];ArrayBuffer.isView(t)?n[e]={bytes:t.buffer,byteOffset:t.byteOffset,byteLength:t.byteLength}:n[e]=t}),n}({source:i.source,decrypted:t}),[t.buffer])})}}(a);function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function d(e){h(this,d),c=c||function(){var e=[[[],[],[],[],[]],[[],[],[],[],[]]],t=e[0],i=e[1],n=t[4],r=i[4],a=void 0,s=void 0,o=void 0,u=[],l=[],c=void 0,h=void 0,d=void 0,p=void 0,f=void 0;for(a=0;a<256;a++)l[(u[a]=a<<1^283*(a>>7))^a]=a;for(s=o=0;!n[s];s^=c||1,o=l[o]||1)for(d=(d=o^o<<1^o<<2^o<<3^o<<4)>>8^255&d^99,f=16843009*u[h=u[c=u[r[n[s]=d]=s]]]^65537*h^257*c^16843008*s,p=257*u[d]^16843008*d,a=0;a<4;a++)t[a][s]=p=p<<24^p>>>8,i[a][d]=f=f<<24^f>>>8;for(a=0;a<5;a++)t[a]=t[a].slice(0),i[a]=i[a].slice(0);return e}(),this._tables=[[c[0][0].slice(),c[0][1].slice(),c[0][2].slice(),c[0][3].slice(),c[0][4].slice()],[c[1][0].slice(),c[1][1].slice(),c[1][2].slice(),c[1][3].slice(),c[1][4].slice()]];var t=void 0,i=void 0,n=void 0,r=void 0,a=void 0,s=this._tables[0][4],o=this._tables[1],u=e.length,l=1;if(4!==u&&6!==u&&8!==u)throw new Error("Invalid aes key size");for(r=e.slice(0),a=[],this._key=[r,a],t=u;t<4*u+28;t++)n=r[t-1],(t%u==0||8===u&&t%u==4)&&(n=s[n>>>24]<<24^s[n>>16&255]<<16^s[n>>8&255]<<8^s[255&n],t%u==0&&(n=n<<8^n>>>24^l<<24,l=l<<1^283*(l>>7))),r[t]=r[t-u]^n;for(i=0;t;i++,t--)n=r[3&i?t:t-4],a[i]=t<=4||i<4?n:o[0][s[n>>>24]]^o[1][s[n>>16&255]]^o[2][s[n>>8&255]]^o[3][s[255&n]]}function l(){h(this,l),this.listeners={}}function p(){h(this,p);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,r.call(this,n));return e.jobs=[],e.delay=1,e.timeout_=null,e}function y(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24}function f(e,t,i,n){h(this,f);var r=f.STEP,a=new Int32Array(e.buffer),s=new Uint8Array(e.byteLength),o=0;for(this.asyncStream_=new u,this.asyncStream_.push(this.decryptChunk_(a.subarray(o,o+r),t,i,s)),o=r;o<a.length;o+=r)i=new Uint32Array([y(a[o-4]),y(a[o-3]),y(a[o-2]),y(a[o-1])]),this.asyncStream_.push(this.decryptChunk_(a.subarray(o,o+r),t,i,s));this.asyncStream_.push(function(){n(null,function(e){return e.subarray(0,e.byteLength-e[e.byteLength-1])}(s))})}}),Gc={AUDIO:function(u,l){return function(){var e=l.segmentLoaders[u],t=l.mediaTypes[u],i=l.blacklistCurrentPlaylist;qc(e,t);var n=t.activeTrack(),r=t.activeGroup(),a=(r.filter(function(e){return e.default})[0]||r[0]).id,s=t.tracks[a];if(n!==s){for(var o in fs.log.warn("Problem encountered loading the alternate audio track.Switching back to default."),t.tracks)t.tracks[o].enabled=t.tracks[o]===s;t.onTrackChanged()}else i({message:"Problem encountered loading the default audio track."})}},SUBTITLES:function(n,r){return function(){var e=r.segmentLoaders[n],t=r.mediaTypes[n];fs.log.warn("Problem encountered loading the subtitle track.Disabling subtitle track."),qc(e,t);var i=t.activeTrack();i&&(i.mode="disabled"),t.onTrackChanged()}}},Xc={AUDIO:function(e,t,i){if(t){var n=i.tech,r=i.requestOptions,a=i.segmentLoaders[e];t.on("loadedmetadata",function(){var e=t.media();a.playlist(e,r),(!n.paused()||e.endList&&"none"!==n.preload())&&a.load()}),t.on("loadedplaylist",function(){a.playlist(t.media(),r),n.paused()||a.load()}),t.on("error",Gc[e](e,i))}},SUBTITLES:function(e,t,i){var n=i.tech,r=i.requestOptions,a=i.segmentLoaders[e],s=i.mediaTypes[e];t.on("loadedmetadata",function(){var e=t.media();a.playlist(e,r),a.track(s.activeTrack()),(!n.paused()||e.endList&&"none"!==n.preload())&&a.load()}),t.on("loadedplaylist",function(){a.playlist(t.media(),r),n.paused()||a.load()}),t.on("error",Gc[e](e,i))}},Kc={AUDIO:function(e,t){var i,n,r=t.hls,a=t.sourceType,s=t.segmentLoaders[e],o=t.requestOptions,u=t.master.mediaGroups,l=t.mediaTypes[e],c=l.groups,h=l.tracks,d=t.masterPlaylistLoader;for(var p in u[e]&&0!==Object.keys(u[e]).length||(u[e]={main:{default:{default:!0}}}),u[e])for(var f in c[p]||(c[p]=[]),u[e][p]){var m=u[e][p][f],g=void 0;if(g=m.resolvedUri?new Ku(m.resolvedUri,r,o):m.playlists&&"dash"===a?new pc(m.playlists[0],r,o,d):null,m=fs.mergeOptions({id:f,playlistLoader:g},m),Xc[e](e,m.playlistLoader,t),c[p].push(m),"undefined"==typeof h[f]){var y=new fs.AudioTrack({id:f,kind:(i=m,n=void 0,n=i.default?"main":"alternative",i.characteristics&&0<=i.characteristics.indexOf("public.accessibility.describes-video")&&(n="main-desc"),n),enabled:!1,language:m.language,default:m.default,label:f});h[f]=y}}s.on("error",Gc[e](e,t))},SUBTITLES:function(e,t){var i=t.tech,n=t.hls,r=t.sourceType,a=t.segmentLoaders[e],s=t.requestOptions,o=t.master.mediaGroups,u=t.mediaTypes[e],l=u.groups,c=u.tracks,h=t.masterPlaylistLoader;for(var d in o[e])for(var p in l[d]||(l[d]=[]),o[e][d])if(!o[e][d][p].forced){var f=o[e][d][p],m=void 0;if("hls"===r?m=new Ku(f.resolvedUri,n,s):"dash"===r&&(m=new pc(f.playlists[0],n,s,h)),f=fs.mergeOptions({id:p,playlistLoader:m},f),Xc[e](e,f.playlistLoader,t),l[d].push(f),"undefined"==typeof c[p]){var g=i.addRemoteTextTrack({id:p,kind:"subtitles",default:f.default&&f.autoselect,language:f.language,label:p},!1).track;c[p]=g}}a.on("error",Gc[e](e,t))},"CLOSED-CAPTIONS":function(e,t){var i=t.tech,n=t.master.mediaGroups,r=t.mediaTypes[e],a=r.groups,s=r.tracks;for(var o in n[e])for(var u in a[o]||(a[o]=[]),n[e][o]){var l=n[e][o][u];if(l.instreamId.match(/CC\d/)&&(a[o].push(fs.mergeOptions({id:u},l)),"undefined"==typeof s[u])){var c=i.addRemoteTextTrack({id:l.instreamId,kind:"captions",default:l.default&&l.autoselect,language:l.language,label:u},!1).track;s[u]=c}}}},Yc={AUDIO:function(i,n){return function(){var e=n.mediaTypes[i].tracks;for(var t in e)if(e[t].enabled)return e[t];return null}},SUBTITLES:function(i,n){return function(){var e=n.mediaTypes[i].tracks;for(var t in e)if("showing"===e[t].mode)return e[t];return null}}},Qc=void 0,Jc=["mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaBytesTransferred"],Zc=(ju(eh,fs.EventTarget),Nu(eh,[{key:"setupMasterPlaylistLoaderListeners_",value:function(){var n=this;this.masterPlaylistLoader_.on("loadedmetadata",function(){var e=n.masterPlaylistLoader_.media(),t=1.5*e.targetDuration*1e3;ul(n.masterPlaylistLoader_.master,n.masterPlaylistLoader_.media())?n.requestOptions_.timeout=0:n.requestOptions_.timeout=t,e.endList&&"none"!==n.tech_.preload()&&(n.mainSegmentLoader_.playlist(e,n.requestOptions_),n.mainSegmentLoader_.load()),zc({sourceType:n.sourceType_,segmentLoaders:{AUDIO:n.audioSegmentLoader_,SUBTITLES:n.subtitleSegmentLoader_,main:n.mainSegmentLoader_},tech:n.tech_,requestOptions:n.requestOptions_,masterPlaylistLoader:n.masterPlaylistLoader_,hls:n.hls_,master:n.master(),mediaTypes:n.mediaTypes_,blacklistCurrentPlaylist:n.blacklistCurrentPlaylist.bind(n)}),n.triggerPresenceUsage_(n.master(),e);try{n.setupSourceBuffers_()}catch(e){return fs.log.warn("Failed to create SourceBuffers",e),n.mediaSource.endOfStream("decode")}n.setupFirstPlay(),!n.mediaTypes_.AUDIO.activePlaylistLoader||n.mediaTypes_.AUDIO.activePlaylistLoader.media()?n.trigger("selectedinitialmedia"):n.mediaTypes_.AUDIO.activePlaylistLoader.one("loadedmetadata",function(){n.trigger("selectedinitialmedia")})}),this.masterPlaylistLoader_.on("loadedplaylist",function(){var e=n.masterPlaylistLoader_.media();if(!e){n.excludeUnsupportedVariants_();var t=void 0;return n.enableLowInitialPlaylist&&(t=n.selectInitialPlaylist()),t=t||n.selectPlaylist(),n.initialMedia_=t,void n.masterPlaylistLoader_.media(n.initialMedia_)}if(n.useCueTags_&&n.updateAdCues_(e),n.mainSegmentLoader_.playlist(e,n.requestOptions_),n.updateDuration(),n.tech_.paused()||(n.mainSegmentLoader_.load(),n.audioSegmentLoader_&&n.audioSegmentLoader_.load()),!e.endList){function i(){var e=n.seekable();0!==e.length&&n.mediaSource.addSeekableRange_(e.start(0),e.end(0))}n.duration()!==1/0?n.tech_.one("durationchange",function e(){n.duration()===1/0?i():n.tech_.one("durationchange",e)}):i()}}),this.masterPlaylistLoader_.on("error",function(){n.blacklistCurrentPlaylist(n.masterPlaylistLoader_.error)}),this.masterPlaylistLoader_.on("mediachanging",function(){n.mainSegmentLoader_.abort(),n.mainSegmentLoader_.pause()}),this.masterPlaylistLoader_.on("mediachange",function(){var e=n.masterPlaylistLoader_.media(),t=1.5*e.targetDuration*1e3;ul(n.masterPlaylistLoader_.master,n.masterPlaylistLoader_.media())?n.requestOptions_.timeout=0:n.requestOptions_.timeout=t,n.mainSegmentLoader_.playlist(e,n.requestOptions_),n.mainSegmentLoader_.load(),n.tech_.trigger({type:"mediachange",bubbles:!0})}),this.masterPlaylistLoader_.on("playlistunchanged",function(){var e=n.masterPlaylistLoader_.media();n.stuckAtPlaylistEnd_(e)&&(n.blacklistCurrentPlaylist({message:"Playlist no longer updating."}),n.tech_.trigger("playliststuck"))}),this.masterPlaylistLoader_.on("renditiondisabled",function(){n.tech_.trigger({type:"usage",name:"hls-rendition-disabled"})}),this.masterPlaylistLoader_.on("renditionenabled",function(){n.tech_.trigger({type:"usage",name:"hls-rendition-enabled"})})}},{key:"triggerPresenceUsage_",value:function(e,t){var i=e.mediaGroups||{},n=!0,r=Object.keys(i.AUDIO);for(var a in i.AUDIO)for(var s in i.AUDIO[a])i.AUDIO[a][s].uri||(n=!1);n&&this.tech_.trigger({type:"usage",name:"hls-demuxed"}),Object.keys(i.SUBTITLES).length&&this.tech_.trigger({type:"usage",name:"hls-webvtt"}),Qc.Playlist.isAes(t)&&this.tech_.trigger({type:"usage",name:"hls-aes"}),Qc.Playlist.isFmp4(t)&&this.tech_.trigger({type:"usage",name:"hls-fmp4"}),r.length&&1<Object.keys(i.AUDIO[r[0]]).length&&this.tech_.trigger({type:"usage",name:"hls-alternate-audio"}),this.useCueTags_&&this.tech_.trigger({type:"usage",name:"hls-playlist-cue-tags"})}},{key:"setupSegmentLoaderListeners_",value:function(){var a=this;this.mainSegmentLoader_.on("bandwidthupdate",function(){var e=a.selectPlaylist(),t=a.masterPlaylistLoader_.media(),i=a.tech_.buffered(),n=i.length?i.end(i.length-1)-a.tech_.currentTime():0,r=a.bufferLowWaterLine();(!t.endList||a.duration()<Pc.MAX_BUFFER_LOW_WATER_LINE||e.attributes.BANDWIDTH<t.attributes.BANDWIDTH||r<=n)&&a.masterPlaylistLoader_.media(e),a.tech_.trigger("bandwidthupdate")}),this.mainSegmentLoader_.on("progress",function(){a.trigger("progress")}),this.mainSegmentLoader_.on("error",function(){a.blacklistCurrentPlaylist(a.mainSegmentLoader_.error())}),this.mainSegmentLoader_.on("syncinfoupdate",function(){a.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("timestampoffset",function(){a.tech_.trigger({type:"usage",name:"hls-timestamp-offset"})}),this.audioSegmentLoader_.on("syncinfoupdate",function(){a.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on("ended",function(){a.onEndOfStream()}),this.mainSegmentLoader_.on("earlyabort",function(){a.blacklistCurrentPlaylist({message:"Aborted early because there isn't enough bandwidth to complete the request without rebuffering."},120)}),this.mainSegmentLoader_.on("reseteverything",function(){a.tech_.trigger("hls-reset")}),this.mainSegmentLoader_.on("segmenttimemapping",function(e){a.tech_.trigger({type:"hls-segment-time-mapping",mapping:e.mapping})}),this.audioSegmentLoader_.on("ended",function(){a.onEndOfStream()})}},{key:"mediaSecondsLoaded_",value:function(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)}},{key:"load",value:function(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()}},{key:"smoothQualityChange_",value:function(){var e=this.selectPlaylist();e!==this.masterPlaylistLoader_.media()&&(this.masterPlaylistLoader_.media(e),this.mainSegmentLoader_.resetLoader())}},{key:"fastQualityChange_",value:function(){var e=this,t=this.selectPlaylist();t!==this.masterPlaylistLoader_.media()&&(this.masterPlaylistLoader_.media(t),this.mainSegmentLoader_.resetEverything(function(){fs.browser.IE_VERSION||fs.browser.IS_EDGE?e.tech_.setCurrentTime(e.tech_.currentTime()+.04):e.tech_.setCurrentTime(e.tech_.currentTime())}))}},{key:"play",value:function(){if(!this.setupFirstPlay()){this.tech_.ended()&&this.seekTo_(0),this.hasPlayed_()&&this.load();var e=this.tech_.seekable();return this.tech_.duration()===1/0&&this.tech_.currentTime()<e.start(0)?this.seekTo_(e.end(e.length-1)):void 0}}},{key:"setupFirstPlay",value:function(){var e=this,t=this.masterPlaylistLoader_.media();if(!t||this.tech_.paused()||this.hasPlayed_())return!1;if(!t.endList){var i=this.seekable();if(!i.length)return!1;if(fs.browser.IE_VERSION&&0===this.tech_.readyState())return this.tech_.one("loadedmetadata",function(){e.trigger("firstplay"),e.seekTo_(i.end(0)),e.hasPlayed_=function(){return!0}}),!1;this.trigger("firstplay"),this.seekTo_(i.end(0))}return this.hasPlayed_=function(){return!0},this.load(),!0}},{key:"handleSourceOpen_",value:function(){try{this.setupSourceBuffers_()}catch(e){return fs.log.warn("Failed to create Source Buffers",e),this.mediaSource.endOfStream("decode")}if(this.tech_.autoplay()){var e=this.tech_.play();"undefined"!=typeof e&&"function"==typeof e.then&&e.then(null,function(e){})}this.trigger("sourceopen")}},{key:"onEndOfStream",value:function(){var e=this.mainSegmentLoader_.ended_;if(this.mediaTypes_.AUDIO.activePlaylistLoader&&(e=!this.mainSegmentLoader_.startingMedia_||this.mainSegmentLoader_.startingMedia_.containsVideo?e&&this.audioSegmentLoader_.ended_:this.audioSegmentLoader_.ended_),e){this.logger_("calling mediaSource.endOfStream()");try{this.mediaSource.endOfStream()}catch(e){fs.log.warn("Failed to call media source endOfStream",e)}}}},{key:"stuckAtPlaylistEnd_",value:function(e){if(!this.seekable().length)return!1;var t=this.syncController_.getExpiredTime(e,this.mediaSource.duration);if(null===t)return!1;var i=Qc.Playlist.playlistEnd(e,t),n=this.tech_.currentTime(),r=this.tech_.buffered();if(!r.length)return i-n<=.1;var a=r.end(r.length-1);return a-n<=.1&&i-a<=.1}},{key:"blacklistCurrentPlaylist",value:function(e,t){var i,n=0<arguments.length&&void 0!==e?e:{},r=t,a=void 0;if(a=n.playlist||this.masterPlaylistLoader_.media(),r=r||n.blacklistDuration||this.blacklistDuration,!a){this.error=n;try{return this.mediaSource.endOfStream("network")}catch(e){return this.trigger("error")}}var s=1===this.masterPlaylistLoader_.master.playlists.filter(sl).length,o=this.masterPlaylistLoader_.master.playlists;return 1===o.length?(fs.log.warn("Problem encountered with the current HLS playlist. Trying again since it is the only playlist."),this.tech_.trigger("retryplaylist"),this.masterPlaylistLoader_.load(s)):(s&&(fs.log.warn("Removing all playlists from the blacklist because the last rendition is about to be blacklisted."),o.forEach(function(e){e.excludeUntil!==1/0&&delete e.excludeUntil}),this.tech_.trigger("retryplaylist")),a.excludeUntil=Date.now()+1e3*r,this.tech_.trigger("blacklistplaylist"),this.tech_.trigger({type:"usage",name:"hls-rendition-blacklisted"}),i=this.selectPlaylist(),fs.log.warn("Problem encountered with the current HLS playlist."+(n.message?" "+n.message:"")+" Switching to another playlist."),this.masterPlaylistLoader_.media(i,s))}},{key:"pauseLoading",value:function(){this.mainSegmentLoader_.pause(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.pause(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.pause()}},{key:"setCurrentTime",value:function(e){var t=bl(this.tech_.buffered(),e);return this.masterPlaylistLoader_&&this.masterPlaylistLoader_.media()&&this.masterPlaylistLoader_.media().segments?t&&t.length?e:(this.mainSegmentLoader_.resetEverything(),this.mainSegmentLoader_.abort(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.resetEverything(),this.audioSegmentLoader_.abort()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.resetEverything(),this.subtitleSegmentLoader_.abort()),void this.load()):0}},{key:"duration",value:function(){return this.masterPlaylistLoader_?this.mediaSource?this.mediaSource.duration:Qc.Playlist.duration(this.masterPlaylistLoader_.media()):0}},{key:"seekable",value:function(){return this.seekable_}},{key:"onSyncInfoUpdate_",value:function(){var e=void 0,t=void 0;if(this.masterPlaylistLoader_){var i=this.masterPlaylistLoader_.media();if(i){var n=this.syncController_.getExpiredTime(i,this.mediaSource.duration);if(null!==n&&0!==(e=Qc.Playlist.seekable(i,n)).length){if(this.mediaTypes_.AUDIO.activePlaylistLoader){if(i=this.mediaTypes_.AUDIO.activePlaylistLoader.media(),null===(n=this.syncController_.getExpiredTime(i,this.mediaSource.duration)))return;if(0===(t=Qc.Playlist.seekable(i,n)).length)return}var r=void 0,a=void 0;this.seekable_&&this.seekable_.length&&(r=this.seekable_.end(0),a=this.seekable_.start(0)),t?t.start(0)>e.end(0)||e.start(0)>t.end(0)?this.seekable_=e:this.seekable_=fs.createTimeRanges([[t.start(0)>e.start(0)?t.start(0):e.start(0),t.end(0)<e.end(0)?t.end(0):e.end(0)]]):this.seekable_=e,this.seekable_&&this.seekable_.length&&this.seekable_.end(0)===r&&this.seekable_.start(0)===a||(this.logger_("seekable updated ["+Sl(this.seekable_)+"]"),this.tech_.trigger("seekablechanged"))}}}}},{key:"updateDuration",value:function(){function e(){t.logger_("Setting duration from "+t.mediaSource.duration+" => "+n);try{t.mediaSource.duration=n}catch(e){fs.log.warn("Failed to set media source duration",e)}t.tech_.trigger("durationchange"),t.mediaSource.removeEventListener("sourceopen",e)}var t=this,i=this.mediaSource.duration,n=Qc.Playlist.duration(this.masterPlaylistLoader_.media()),r=this.tech_.buffered();0<r.length&&(n=Math.max(n,r.end(r.length-1))),i!==n&&("open"!==this.mediaSource.readyState?this.mediaSource.addEventListener("sourceopen",e):e())}},{key:"dispose",value:function(){var n=this;this.decrypter_.terminate(),this.masterPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),["AUDIO","SUBTITLES"].forEach(function(e){var t=n.mediaTypes_[e].groups;for(var i in t)t[i].forEach(function(e){e.playlistLoader&&e.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose()}},{key:"master",value:function(){return this.masterPlaylistLoader_.master}},{key:"media",value:function(){return this.masterPlaylistLoader_.media()||this.initialMedia_}},{key:"setupSourceBuffers_",value:function(){var e,t=this.masterPlaylistLoader_.media();if(t&&"open"===this.mediaSource.readyState){if((e=Xl(this.masterPlaylistLoader_.master,t)).length<1)return this.error="No compatible SourceBuffer configuration for the variant stream:"+t.resolvedUri,this.mediaSource.endOfStream("decode");this.configureLoaderMimeTypes_(e),this.excludeIncompatibleVariants_(t)}}},{key:"configureLoaderMimeTypes_",value:function(e){var t=1<e.length&&-1===e[0].indexOf(",")&&e[0]!==e[1]?new fs.EventTarget:null;this.mainSegmentLoader_.mimeType(e[0],t),e[1]&&this.audioSegmentLoader_.mimeType(e[1],t)}},{key:"excludeUnsupportedVariants_",value:function(){this.master().playlists.forEach(function(e){e.attributes.CODECS&&v.MediaSource&&v.MediaSource.isTypeSupported&&!v.MediaSource.isTypeSupported('video/mp4; codecs="'+function(e){return e.replace(/avc1\.(\d+)\.(\d+)/i,function(e){return zl([e])[0]})}(e.attributes.CODECS)+'"')&&(e.excludeUntil=1/0)})}},{key:"excludeIncompatibleVariants_",value:function(e){var i=2,n=null,t=void 0;e.attributes.CODECS&&(t=$l(e.attributes.CODECS),n=t.videoCodec,i=t.codecCount),this.master().playlists.forEach(function(e){var t={codecCount:2,videoCodec:null};e.attributes.CODECS&&(t=$l(e.attributes.CODECS)),t.codecCount!==i&&(e.excludeUntil=1/0),t.videoCodec!==n&&(e.excludeUntil=1/0)})}},{key:"updateAdCues_",value:function(e){var t=0,i=this.seekable();i.length&&(t=i.start(0)),function(e,t,i){var n=2<arguments.length&&void 0!==i?i:0;if(e.segments)for(var r=n,a=void 0,s=0;s<e.segments.length;s++){var o=e.segments[s];if(a=a||Bc(t,r+o.duration/2)){if("cueIn"in o){a.endTime=r,a.adEndTime=r,r+=o.duration,a=null;continue}if(r<a.endTime){r+=o.duration;continue}a.endTime+=o.duration}else if("cueOut"in o&&((a=new v.VTTCue(r,r+o.duration,o.cueOut)).adStartTime=r,a.adEndTime=r+parseFloat(o.cueOut),t.addCue(a)),"cueOutCont"in o){var u,l,c=o.cueOutCont.split("/").map(parseFloat),h=$u(c,2);u=h[0],l=h[1],(a=new v.VTTCue(r,r+o.duration,"")).adStartTime=r-u,a.adEndTime=a.adStartTime+l,t.addCue(a)}r+=o.duration}}(e,this.cueTagsTrack_,t)}},{key:"goalBufferLength",value:function(){var e=this.tech_.currentTime(),t=Pc.GOAL_BUFFER_LENGTH,i=Pc.GOAL_BUFFER_LENGTH_RATE,n=Math.max(t,Pc.MAX_GOAL_BUFFER_LENGTH);return Math.min(t+e*i,n)}},{key:"bufferLowWaterLine",value:function(){var e=this.tech_.currentTime(),t=Pc.BUFFER_LOW_WATER_LINE,i=Pc.BUFFER_LOW_WATER_LINE_RATE,n=Math.max(t,Pc.MAX_BUFFER_LOW_WATER_LINE);return Math.min(t+e*i,n)}}]),eh);function eh(e){Mu(this,eh);var t=Fu(this,(eh.__proto__||Object.getPrototypeOf(eh)).call(this)),i=e.url,n=e.handleManifestRedirects,r=e.withCredentials,a=e.tech,s=e.bandwidth,o=e.externHls,u=e.useCueTags,l=e.blacklistDuration,c=e.enableLowInitialPlaylist,h=e.sourceType,d=e.seekTo,p=e.cacheEncryptionKeys;if(!i)throw new Error("A non-empty playlist URL is required");Qc=o,t.withCredentials=r,t.tech_=a,t.hls_=a.hls,t.seekTo_=d,t.sourceType_=h,t.useCueTags_=u,t.blacklistDuration=l,t.enableLowInitialPlaylist=c,t.useCueTags_&&(t.cueTagsTrack_=t.tech_.addTextTrack("metadata","ad-cues"),t.cueTagsTrack_.inBandMetadataTrackDispatchType=""),t.requestOptions_={withCredentials:r,handleManifestRedirects:n,timeout:null},t.mediaTypes_=function(){var t={};return["AUDIO","SUBTITLES","CLOSED-CAPTIONS"].forEach(function(e){t[e]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:gc,activeTrack:gc,onGroupChanged:gc,onTrackChanged:gc}}),t}(),t.mediaSource=new fs.MediaSource,t.mediaSource.addEventListener("sourceopen",t.handleSourceOpen_.bind(t)),t.seekable_=fs.createTimeRanges(),t.hasPlayed_=function(){return!1},t.syncController_=new Hc(e),t.segmentMetadataTrack_=a.addRemoteTextTrack({kind:"metadata",label:"segment-metadata"},!1).track,t.decrypter_=new $c,t.inbandTextTracks_={};var f={hls:t.hls_,mediaSource:t.mediaSource,currentTime:t.tech_.currentTime.bind(t.tech_),seekable:function(){return t.seekable()},seeking:function(){return t.tech_.seeking()},duration:function(){return t.mediaSource.duration},hasPlayed:function(){return t.hasPlayed_()},goalBufferLength:function(){return t.goalBufferLength()},bandwidth:s,syncController:t.syncController_,decrypter:t.decrypter_,sourceType:t.sourceType_,inbandTextTracks:t.inbandTextTracks_,cacheEncryptionKeys:p};return t.masterPlaylistLoader_="dash"===t.sourceType_?new pc(i,t.hls_,t.requestOptions_):new Ku(i,t.hls_,t.requestOptions_),t.setupMasterPlaylistLoaderListeners_(),t.mainSegmentLoader_=new xc(fs.mergeOptions(f,{segmentMetadataTrack:t.segmentMetadataTrack_,loaderType:"main"}),e),t.audioSegmentLoader_=new xc(fs.mergeOptions(f,{loaderType:"audio"}),e),t.subtitleSegmentLoader_=new Mc(fs.mergeOptions(f,{loaderType:"vtt"}),e),t.setupSegmentLoaderListeners_(),Jc.forEach(function(e){t[e+"_"]=function(e){return this.audioSegmentLoader_[e]+this.mainSegmentLoader_[e]}.bind(t,e)}),t.logger_=mc("MPC"),t.masterPlaylistLoader_.load(),t}function th(e,t,i){Mu(this,th);var n=e.masterPlaylistController_,r=n[(e.options_.smoothQualityChange?"smooth":"fast")+"QualityChange_"].bind(n);if(t.attributes.RESOLUTION){var a=t.attributes.RESOLUTION;this.width=a.width,this.height=a.height}this.bandwidth=t.attributes.BANDWIDTH,this.id=i,this.enabled=function(r,a,s){return function(e){var t=r.master.playlists[a],i=al(t),n=sl(t);return"undefined"==typeof e?n:(e?delete t.disabled:t.disabled=!0,e===n||i||(s(),e?r.trigger("renditionenabled"):r.trigger("renditiondisabled")),e)}}(e.playlists,t.uri,r)}var ih=["seeking","seeked","pause","playing","error"],nh=(Nu(rh,[{key:"monitorCurrentTime_",value:function(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&v.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=v.setTimeout(this.monitorCurrentTime_.bind(this),250)}},{key:"checkCurrentTime_",value:function(){if(this.tech_.seeking()&&this.fixesBadSeeks_())return this.consecutiveUpdates=0,void(this.lastRecordedTime=this.tech_.currentTime());if(!this.tech_.paused()&&!this.tech_.seeking()){var e=this.tech_.currentTime(),t=this.tech_.buffered();if(this.lastRecordedTime===e&&(!t.length||e+.1>=t.end(t.length-1)))return this.techWaiting_();5<=this.consecutiveUpdates&&e===this.lastRecordedTime?(this.consecutiveUpdates++,this.waiting_()):e===this.lastRecordedTime?this.consecutiveUpdates++:(this.consecutiveUpdates=0,this.lastRecordedTime=e)}}},{key:"cancelTimer_",value:function(){this.consecutiveUpdates=0,this.timer_&&(this.logger_("cancelTimer_"),clearTimeout(this.timer_)),this.timer_=null}},{key:"fixesBadSeeks_",value:function(){if(!this.tech_.seeking())return!1;var e=this.seekable(),t=this.tech_.currentTime(),i=void 0;return this.afterSeekableWindow_(e,t,this.media(),this.allowSeeksWithinUnsafeLiveWindow)&&(i=e.end(e.length-1)),this.beforeSeekableWindow_(e,t)&&(i=e.start(0)+.1),"undefined"!=typeof i&&(this.logger_("Trying to seek outside of seekable at time "+t+" with seekable range "+Sl(e)+". Seeking to "+i+"."),this.seekTo(i),!0)}},{key:"waiting_",value:function(){if(!this.techWaiting_()){var e=this.tech_.currentTime(),t=this.tech_.buffered(),i=bl(t,e);return i.length&&e+3<=i.end(0)?(this.cancelTimer_(),this.seekTo(e),this.logger_("Stopped at "+e+" while inside a buffered region ["+i.start(0)+" -> "+i.end(0)+"]. Attempting to resume playback by seeking to the current time."),void this.tech_.trigger({type:"usage",name:"hls-unknown-waiting"})):void 0}}},{key:"techWaiting_",value:function(){var e=this.seekable(),t=this.tech_.currentTime();if(this.tech_.seeking()&&this.fixesBadSeeks_())return!0;if(this.tech_.seeking()||null!==this.timer_)return!0;if(this.beforeSeekableWindow_(e,t)){var i=e.end(e.length-1);return this.logger_("Fell out of live window at time "+t+". Seeking to live point (seekable end) "+i),this.cancelTimer_(),this.seekTo(i),this.tech_.trigger({type:"usage",name:"hls-live-resync"}),!0}var n=this.tech_.buffered(),r=Tl(n,t);if(this.videoUnderflow_(r,n,t))return this.cancelTimer_(),this.seekTo(t),this.tech_.trigger({type:"usage",name:"hls-video-underflow"}),!0;if(0<r.length){var a=r.start(0)-t;return this.logger_("Stopped at "+t+", setting timer for "+a+", seeking to "+r.start(0)),this.timer_=setTimeout(this.skipTheGap_.bind(this),1e3*a,t),!0}return!1}},{key:"afterSeekableWindow_",value:function(e,t,i,n){var r=3<arguments.length&&void 0!==n&&n;if(!e.length)return!1;var a=e.end(e.length-1)+.1;return!i.endList&&r&&(a=e.end(e.length-1)+3*i.targetDuration),a<t}},{key:"beforeSeekableWindow_",value:function(e,t){return!!(e.length&&0<e.start(0)&&t<e.start(0)-.1)}},{key:"videoUnderflow_",value:function(e,t,i){if(0===e.length){var n=this.gapFromVideoUnderflow_(t,i);if(n)return this.logger_("Encountered a gap in video from "+n.start+" to "+n.end+". Seeking to current time "+i),!0}return!1}},{key:"skipTheGap_",value:function(e){var t=this.tech_.buffered(),i=this.tech_.currentTime(),n=Tl(t,i);this.cancelTimer_(),0!==n.length&&i===e&&(this.logger_("skipTheGap_:","currentTime:",i,"scheduled currentTime:",e,"nextRange start:",n.start(0)),this.seekTo(n.start(0)+1/30),this.tech_.trigger({type:"usage",name:"hls-gap-skip"}))}},{key:"gapFromVideoUnderflow_",value:function(e,t){for(var i=function(e){if(e.length<2)return fs.createTimeRanges();for(var t=[],i=1;i<e.length;i++){var n=e.end(i-1),r=e.start(i);t.push([n,r])}return fs.createTimeRanges(t)}(e),n=0;n<i.length;n++){var r=i.start(n),a=i.end(n);if(t-r<4&&2<t-r)return{start:r,end:a}}return null}}]),rh);function rh(e){var t=this;Mu(this,rh),this.tech_=e.tech,this.seekable=e.seekable,this.seekTo=e.seekTo,this.allowSeeksWithinUnsafeLiveWindow=e.allowSeeksWithinUnsafeLiveWindow,this.media=e.media,this.consecutiveUpdates=0,this.lastRecordedTime=null,this.timer_=null,this.checkCurrentTimeTimeout_=null,this.logger_=mc("PlaybackWatcher"),this.logger_("initialize");function i(){return t.monitorCurrentTime_()}function n(){return t.techWaiting_()}function r(){return t.cancelTimer_()}function a(){return t.fixesBadSeeks_()}this.tech_.on("seekablechanged",a),this.tech_.on("waiting",n),this.tech_.on(ih,r),this.tech_.on("canplay",i),this.dispose=function(){t.logger_("dispose"),t.tech_.off("seekablechanged",a),t.tech_.off("waiting",n),t.tech_.off(ih,r),t.tech_.off("canplay",i),t.checkCurrentTimeTimeout_&&v.clearTimeout(t.checkCurrentTimeTimeout_),t.cancelTimer_()}}function ah(e){!function t(i,e){var n=0,r=0,a=fs.mergeOptions(sh,e);i.ready(function(){i.trigger({type:"usage",name:"hls-error-reload-initialized"})});function s(){r&&i.currentTime(r)}function o(e){null!=e&&(r=i.duration()!==1/0&&i.currentTime()||0,i.one("loadedmetadata",s),i.src(e),i.trigger({type:"usage",name:"hls-error-reload"}),i.play())}function u(){if(Date.now()-n<1e3*a.errorInterval)i.trigger({type:"usage",name:"hls-error-reload-canceled"});else{if(a.getSource&&"function"==typeof a.getSource)return n=Date.now(),a.getSource.call(i,o);fs.log.error("ERROR: reloadSourceOnError - The option getSource must be a function!")}}function l(){i.off("loadedmetadata",s),i.off("error",u),i.off("dispose",l)}i.on("error",u),i.on("dispose",l),i.reloadSourceOnError=function(e){l(),t(i,e)}}(this,e)}var sh={errorInterval:30,getSource:function(e){return e(this.tech({IWillNotUseThisInPlugins:!0}).currentSource_)}};fs.use("*",function(t){return{setSource:function(e,t){t(null,e)},setCurrentTime:function(e){return t.vhs&&t.currentSource().src===t.vhs.source_.src&&t.vhs.setCurrentTime(e),e},play:function(){t.vhs&&t.currentSource().src===t.vhs.source_.src&&t.vhs.setCurrentTime(t.tech_.currentTime())}}});var oh={PlaylistLoader:Ku,Playlist:Ll,Decrypter:xu,AsyncStream:Pu,decrypt:Ou,utils:Dl,STANDARD_PLAYLIST_SELECTOR:function(){return function(e,t,i,n,r){var a=e.playlists.map(function(e){var t,i;return t=e.attributes.RESOLUTION&&e.attributes.RESOLUTION.width,i=e.attributes.RESOLUTION&&e.attributes.RESOLUTION.height,{bandwidth:e.attributes.BANDWIDTH||v.Number.MAX_VALUE,width:t,height:i,playlist:e}});Ec(a,function(e,t){return e.bandwidth-t.bandwidth});var s=(a=a.filter(function(e){return!Ll.isIncompatible(e.playlist)})).filter(function(e){return Ll.isEnabled(e.playlist)});s.length||(s=a.filter(function(e){return!Ll.isDisabled(e.playlist)}));var o=s.filter(function(e){return e.bandwidth*Pc.BANDWIDTH_VARIANCE<t}),u=o[o.length-1],l=o.filter(function(e){return e.bandwidth===u.bandwidth})[0];if(!1===r){var c=l||s[0]||a[0];return c?c.playlist:null}var h=o.filter(function(e){return e.width&&e.height});Ec(h,function(e,t){return e.width-t.width});var d=h.filter(function(e){return e.width===i&&e.height===n});u=d[d.length-1];var p=d.filter(function(e){return e.bandwidth===u.bandwidth})[0],f=void 0,m=void 0,g=void 0;p||(m=(f=h.filter(function(e){return e.width>i||e.height>n})).filter(function(e){return e.width===f[0].width&&e.height===f[0].height}),u=m[m.length-1],g=m.filter(function(e){return e.bandwidth===u.bandwidth})[0]);var y=g||p||l||s[0]||a[0];return y?y.playlist:null}(this.playlists.master,this.systemBandwidth,parseInt(Cc(this.tech_.el(),"width"),10),parseInt(Cc(this.tech_.el(),"height"),10),this.limitRenditionByPlayerDimensions)},INITIAL_PLAYLIST_SELECTOR:function(){var e=this.playlists.master.playlists.filter(Ll.isEnabled);return Ec(e,function(e,t){return wc(e,t)}),e.filter(function(e){return $l(e.attributes.CODECS).videoCodec})[0]||null},comparePlaylistBandwidth:wc,comparePlaylistResolution:function(e,t){var i=void 0,n=void 0;return e.attributes.RESOLUTION&&e.attributes.RESOLUTION.width&&(i=e.attributes.RESOLUTION.width),i=i||v.Number.MAX_VALUE,t.attributes.RESOLUTION&&t.attributes.RESOLUTION.width&&(n=t.attributes.RESOLUTION.width),i===(n=n||v.Number.MAX_VALUE)&&e.attributes.BANDWIDTH&&t.attributes.BANDWIDTH?e.attributes.BANDWIDTH-t.attributes.BANDWIDTH:i-n},xhr:ll()};["GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BANDWIDTH_VARIANCE"].forEach(function(t){Object.defineProperty(oh,t,{get:function(){return fs.log.warn("using Hls."+t+" is UNSAFE be sure you know what you are doing"),Pc[t]},set:function(e){fs.log.warn("using Hls."+t+" is UNSAFE be sure you know what you are doing"),"number"!=typeof e||e<0?fs.log.warn("value of Hls."+t+" must be greater than or equal to 0"):Pc[t]=e}})});function uh(e){return/^(audio|video|application)\/(x-|vnd\.apple\.)?mpegurl/i.test(e)?"hls":/^application\/dash\+xml/i.test(e)?"dash":null}function lh(e,t){for(var i=t.media(),n=-1,r=0;r<e.length;r++)if(e[r].id===i.uri){n=r;break}e.selectedIndex_=n,e.trigger({selectedIndex:n,type:"change"})}var ch="videojs-vhs";oh.canPlaySource=function(){return fs.log.warn("HLS is no longer a tech. Please remove it from your player's techOrder.")};function hh(e){if("dash"===e.options_.sourceType){var t=fs.players[e.tech_.options_.playerId];if(t.eme){var i=function(e,t,i){if(!e)return e;var n={};for(var r in e)n[r]={audioContentType:'audio/mp4; codecs="'+i.attributes.CODECS+'"',videoContentType:'video/mp4; codecs="'+t.attributes.CODECS+'"'},t.contentProtection&&t.contentProtection[r]&&t.contentProtection[r].pssh&&(n[r].pssh=t.contentProtection[r].pssh),"string"==typeof e[r]&&(n[r].url=e[r]);return fs.mergeOptions(e,n)}(e.source_.keySystems,e.playlists.media(),e.masterPlaylistController_.mediaTypes_.AUDIO.activePlaylistLoader.media());i&&(t.currentSource().keySystems=i,t.eme.initializeMediaKeys&&t.eme.initializeMediaKeys())}}}function dh(){if(!window.localStorage)return null;var e=window.localStorage.getItem(ch);if(!e)return null;try{return JSON.parse(e)}catch(e){return null}}oh.supportsNativeHls=function(){var t=h.createElement("video");if(!fs.getTech("Html5").isSupported())return!1;return["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"].some(function(e){return/maybe|probably/i.test(t.canPlayType(e))})}(),oh.supportsNativeDash=!!fs.getTech("Html5").isSupported()&&/maybe|probably/i.test(h.createElement("video").canPlayType("application/dash+xml")),oh.supportsTypeNatively=function(e){return"hls"===e?oh.supportsNativeHls:"dash"===e&&oh.supportsNativeDash},oh.isSupported=function(){return fs.log.warn("HLS is no longer a tech. Please remove it from your player's techOrder.")};var ph=fs.getComponent("Component"),fh=(ju(mh,ph),Nu(mh,[{key:"setOptions_",value:function(){var t=this;if(this.options_.withCredentials=this.options_.withCredentials||!1,this.options_.handleManifestRedirects=this.options_.handleManifestRedirects||!1,this.options_.limitRenditionByPlayerDimensions=!1!==this.options_.limitRenditionByPlayerDimensions,this.options_.smoothQualityChange=this.options_.smoothQualityChange||!1,this.options_.useBandwidthFromLocalStorage="undefined"!=typeof this.source_.useBandwidthFromLocalStorage?this.source_.useBandwidthFromLocalStorage:this.options_.useBandwidthFromLocalStorage||!1,this.options_.customTagParsers=this.options_.customTagParsers||[],this.options_.customTagMappers=this.options_.customTagMappers||[],this.options_.cacheEncryptionKeys=this.options_.cacheEncryptionKeys||!1,"number"!=typeof this.options_.blacklistDuration&&(this.options_.blacklistDuration=300),"number"!=typeof this.options_.bandwidth&&this.options_.useBandwidthFromLocalStorage){var e=dh();e&&e.bandwidth&&(this.options_.bandwidth=e.bandwidth,this.tech_.trigger({type:"usage",name:"hls-bandwidth-from-local-storage"})),e&&e.throughput&&(this.options_.throughput=e.throughput,this.tech_.trigger({type:"usage",name:"hls-throughput-from-local-storage"}))}"number"!=typeof this.options_.bandwidth&&(this.options_.bandwidth=Pc.INITIAL_BANDWIDTH),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&this.options_.bandwidth===Pc.INITIAL_BANDWIDTH,["withCredentials","limitRenditionByPlayerDimensions","bandwidth","smoothQualityChange","customTagParsers","customTagMappers","handleManifestRedirects","cacheEncryptionKeys"].forEach(function(e){"undefined"!=typeof t.source_[e]&&(t.options_[e]=t.source_[e])}),this.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions}},{key:"src",value:function(e,t){var i=this;e&&(this.setOptions_(),this.options_.url=this.source_.src,this.options_.tech=this.tech_,this.options_.externHls=oh,this.options_.sourceType=uh(t),this.options_.seekTo=function(e){i.tech_.setCurrentTime(e),i.setCurrentTime(e)},this.masterPlaylistController_=new Zc(this.options_),this.playbackWatcher_=new nh(fs.mergeOptions(this.options_,{seekable:function(){return i.seekable()},media:function(){return i.masterPlaylistController_.media()}})),this.masterPlaylistController_.on("error",function(){fs.players[i.tech_.options_.playerId].error(i.masterPlaylistController_.error)}),this.masterPlaylistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):oh.STANDARD_PLAYLIST_SELECTOR.bind(this),this.masterPlaylistController_.selectInitialPlaylist=oh.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.masterPlaylistController_.masterPlaylistLoader_,this.mediaSource=this.masterPlaylistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get:function(){return this.masterPlaylistController_.selectPlaylist},set:function(e){this.masterPlaylistController_.selectPlaylist=e.bind(this)}},throughput:{get:function(){return this.masterPlaylistController_.mainSegmentLoader_.throughput.rate},set:function(e){this.masterPlaylistController_.mainSegmentLoader_.throughput.rate=e,this.masterPlaylistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get:function(){return this.masterPlaylistController_.mainSegmentLoader_.bandwidth},set:function(e){this.masterPlaylistController_.mainSegmentLoader_.bandwidth=e,this.masterPlaylistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get:function(){var e=1/(this.bandwidth||1),t=void 0;return t=0<this.throughput?1/this.throughput:0,Math.floor(1/(e+t))},set:function(){fs.log.error('The "systemBandwidth" property is read-only')}}}),this.options_.bandwidth&&(this.bandwidth=this.options_.bandwidth),this.options_.throughput&&(this.throughput=this.options_.throughput),Object.defineProperties(this.stats,{bandwidth:{get:function(){return i.bandwidth||0},enumerable:!0},mediaRequests:{get:function(){return i.masterPlaylistController_.mediaRequests_()||0},enumerable:!0},mediaRequestsAborted:{get:function(){return i.masterPlaylistController_.mediaRequestsAborted_()||0},enumerable:!0},mediaRequestsTimedout:{get:function(){return i.masterPlaylistController_.mediaRequestsTimedout_()||0},enumerable:!0},mediaRequestsErrored:{get:function(){return i.masterPlaylistController_.mediaRequestsErrored_()||0},enumerable:!0},mediaTransferDuration:{get:function(){return i.masterPlaylistController_.mediaTransferDuration_()||0},enumerable:!0},mediaBytesTransferred:{get:function(){return i.masterPlaylistController_.mediaBytesTransferred_()||0},enumerable:!0},mediaSecondsLoaded:{get:function(){return i.masterPlaylistController_.mediaSecondsLoaded_()||0},enumerable:!0},buffered:{get:function(){return kl(i.tech_.buffered())},enumerable:!0},currentTime:{get:function(){return i.tech_.currentTime()},enumerable:!0},currentSource:{get:function(){return i.tech_.currentSource_},enumerable:!0},currentTech:{get:function(){return i.tech_.name_},enumerable:!0},duration:{get:function(){return i.tech_.duration()},enumerable:!0},master:{get:function(){return i.playlists.master},enumerable:!0},playerDimensions:{get:function(){return i.tech_.currentDimensions()},enumerable:!0},seekable:{get:function(){return kl(i.tech_.seekable())},enumerable:!0},timestamp:{get:function(){return Date.now()},enumerable:!0},videoPlaybackQuality:{get:function(){return i.tech_.getVideoPlaybackQuality()},enumerable:!0}}),this.tech_.one("canplay",this.masterPlaylistController_.setupFirstPlay.bind(this.masterPlaylistController_)),this.tech_.on("bandwidthupdate",function(){i.options_.useBandwidthFromLocalStorage&&function(e){if(window.localStorage){var t=dh();t=t?fs.mergeOptions(t,e):e;try{window.localStorage.setItem(ch,JSON.stringify(t))}catch(e){return}}}({bandwidth:i.bandwidth,throughput:Math.round(i.throughput)})}),this.masterPlaylistController_.on("selectedinitialmedia",function(){!function(i){var e=i.playlists;i.representations=function(){return e.master.playlists.filter(function(e){return!al(e)}).map(function(e,t){return new th(i,e,e.uri)})}}(i),hh(i)}),this.on(this.masterPlaylistController_,"progress",function(){this.tech_.trigger("progress")}),this.tech_.ready(function(){return i.setupQualityLevels_()}),this.tech_.el()&&this.tech_.src(fs.URL.createObjectURL(this.masterPlaylistController_.mediaSource)))}},{key:"setupQualityLevels_",value:function(){var e=this,t=fs.players[this.tech_.options_.playerId];t&&t.qualityLevels&&(this.qualityLevels_=t.qualityLevels(),this.masterPlaylistController_.on("selectedinitialmedia",function(){!function(t,e){e.representations().forEach(function(e){t.addQualityLevel(e)}),lh(t,e.playlists)}(e.qualityLevels_,e)}),this.playlists.on("mediachange",function(){lh(e.qualityLevels_,e.playlists)}))}},{key:"play",value:function(){this.masterPlaylistController_.play()}},{key:"setCurrentTime",value:function(e){this.masterPlaylistController_.setCurrentTime(e)}},{key:"duration",value:function(){return this.masterPlaylistController_.duration()}},{key:"seekable",value:function(){return this.masterPlaylistController_.seekable()}},{key:"dispose",value:function(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.masterPlaylistController_&&this.masterPlaylistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),this.player_&&(delete this.player_.vhs,delete this.player_.dash,delete this.player_.hls),this.tech_&&this.tech_.hls&&delete this.tech_.hls,function e(t,i,n){null===t&&(t=Function.prototype);var r=Object.getOwnPropertyDescriptor(t,i);if(void 0===r){var a=Object.getPrototypeOf(t);return null===a?void 0:e(a,i,n)}if("value"in r)return r.value;var s=r.get;return void 0!==s?s.call(n):void 0}(mh.prototype.__proto__||Object.getPrototypeOf(mh.prototype),"dispose",this).call(this)}},{key:"convertToProgramTime",value:function(e,t){return yl({playlist:this.masterPlaylistController_.media(),time:e,callback:t})}},{key:"seekToProgramTime",value:function(e,t,i,n){var r=!(2<arguments.length&&void 0!==i)||i,a=3<arguments.length&&void 0!==n?n:2;return vl({programTime:e,playlist:this.masterPlaylistController_.media(),retryCount:a,pauseAfterSeek:r,seekTo:this.options_.seekTo,tech:this.options_.tech,callback:t})}}]),mh);function mh(e,t,i){Mu(this,mh);var n=Fu(this,(mh.__proto__||Object.getPrototypeOf(mh)).call(this,t,i.hls));if(t.options_&&t.options_.playerId){var r=fs(t.options_.playerId);r.hasOwnProperty("hls")||Object.defineProperty(r,"hls",{get:function(){return fs.log.warn("player.hls is deprecated. Use player.tech().hls instead."),t.trigger({type:"usage",name:"hls-player-access"}),n},configurable:!0}),r.vhs=n,(r.dash=n).player_=r}if(n.tech_=t,n.source_=e,n.stats={},n.setOptions_(),n.options_.overrideNative&&t.overrideNativeAudioTracks&&t.overrideNativeVideoTracks)t.overrideNativeAudioTracks(!0),t.overrideNativeVideoTracks(!0);else if(n.options_.overrideNative&&(t.featuresNativeVideoTracks||t.featuresNativeAudioTracks))throw new Error("Overriding native HLS requires emulated tracks. See https://git.io/vMpjB");return n.on(h,["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"],function(e){var t=h.fullscreenElement||h.webkitFullscreenElement||h.mozFullScreenElement||h.msFullscreenElement;t&&t.contains(n.tech_.el())&&n.masterPlaylistController_.smoothQualityChange_()}),n.on(n.tech_,"seeking",function(){0===this.tech_.currentTime()&&this.tech_.player_.loop()&&this.setCurrentTime(0)}),n.on(n.tech_,"error",function(){this.masterPlaylistController_&&this.masterPlaylistController_.pauseLoading()}),n.on(n.tech_,"play",n.play),n}var gh={name:"videojs-http-streaming",VERSION:"1.10.6",canHandleSource:function(e,t){var i=fs.mergeOptions(fs.options,1<arguments.length&&void 0!==t?t:{});return gh.canPlayType(e.type,i)},handleSource:function(e,t,i){var n=fs.mergeOptions(fs.options,2<arguments.length&&void 0!==i?i:{});return t.hls=new fh(e,t,n),t.hls.xhr=ll(),t.hls.src(e.src,e.type),t.hls},canPlayType:function(e,t){var i=fs.mergeOptions(fs.options,1<arguments.length&&void 0!==t?t:{}).hls.overrideNative,n=uh(e);return n&&(!oh.supportsTypeNatively(n)||i)?"maybe":""}};return"undefined"!=typeof fs.MediaSource&&"undefined"!=typeof fs.URL||(fs.MediaSource=sc,fs.URL=oc),sc.supportsNativeMediaSources()&&fs.getTech("Html5").registerSourceHandler(gh,0),fs.HlsHandler=fh,fs.HlsSourceHandler=gh,fs.Hls=oh,fs.use||fs.registerComponent("Hls",oh),fs.options.hls=fs.options.hls||{},fs.registerPlugin?fs.registerPlugin("reloadSourceOnError",ah):fs.plugin("reloadSourceOnError",ah),fs});
public/templates/player-amp.php ADDED
@@ -0,0 +1,258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Video Player: AMP Pages.
5
+ *
6
+ * @link https://plugins360.com
7
+ * @since 2.0.0
8
+ *
9
+ * @package All_In_One_Video_Gallery
10
+ */
11
+
12
+ $player_settings = get_option( 'aiovg_player_settings' );
13
+
14
+ $post_meta = array();
15
+ $type = '';
16
+
17
+ if ( $post_id > 0 ) {
18
+ $post_type = get_post_type( $post_id );
19
+
20
+ if ( 'aiovg_videos' == $post_type ) {
21
+ $post_meta = get_post_meta( $post_id );
22
+ $type = $post_meta['type'][0];
23
+ }
24
+ }
25
+
26
+ $autoplay = isset( $atts[ 'autoplay' ] ) ? (int) $atts['autoplay'] : (int) $player_settings['autoplay'];
27
+ $loop = isset( $atts[ 'loop' ] ) ? (int) $atts['loop'] : (int) $player_settings['loop'];
28
+ $muted = isset( $atts[ 'muted' ] ) ? (int) $atts['muted'] : (int) $player_settings['muted'];
29
+
30
+ $poster = '';
31
+
32
+ if ( isset( $_GET['poster'] ) ) {
33
+ $poster = $_GET['poster'];
34
+ } elseif ( ! empty( $post_meta ) ) {
35
+ $poster = aiovg_get_image_url( $post_meta['image_id'][0], 'large', $post_meta['image'][0], 'player' );
36
+ }
37
+
38
+ if ( ! empty( $poster ) ) {
39
+ $poster = esc_url_raw( $poster );
40
+ }
41
+
42
+ $features = array( 'playpause', 'current', 'progress', 'duration', 'volume', 'fullscreen' );
43
+ $controls = array();
44
+
45
+ foreach ( $features as $feature ) {
46
+ if ( isset( $atts[ $feature ] ) ) {
47
+ if ( 1 == (int) $atts[ $feature ] ) {
48
+ $controls[] = $feature;
49
+ }
50
+ } else {
51
+ if ( isset( $player_settings['controls'][ $feature ] ) ) {
52
+ $controls[] = $feature;
53
+ }
54
+ }
55
+ }
56
+
57
+ $width = ! empty( $player_settings['width'] ) ? (int) $player_settings['width'] : 640;
58
+ $ratio = ! empty( $player_settings['ratio'] ) ? (float) $player_settings['ratio'] : 56.25;
59
+ $height = ( $width * $ratio ) / 100;
60
+
61
+ $attributes = array(
62
+ 'width' => $width,
63
+ 'height' => $height,
64
+ 'layout' => 'responsive'
65
+ );
66
+
67
+ $sources = array( 'youtube', 'vimeo', 'dailymotion', 'facebook', 'mp4', 'embedcode' );
68
+
69
+ foreach ( $sources as $source ) {
70
+ // mp4
71
+ if ( 'mp4' == $source ) {
72
+ $formats = array( 'mp4', 'webm', 'ogv' );
73
+ $children = array();
74
+
75
+ foreach ( $formats as $format ) {
76
+ if ( isset( $atts[ $format ] ) ) {
77
+ $src = esc_url_raw( $atts[ $format ] );
78
+ $src = str_replace( 'http://', '//', $src );
79
+
80
+ $children[] = sprintf(
81
+ '<source type="%s" src="%s" />',
82
+ "video/{$format}",
83
+ $src
84
+ );
85
+ } elseif ( 'default' == $type && ! empty( $post_meta[ $format ][0] ) ) {
86
+ $src = esc_url_raw( $post_meta[ $format ][0] );
87
+ $src = str_replace( 'http://', '//', $src );
88
+
89
+ $children[] = sprintf(
90
+ '<source type="%s" src="%s" />',
91
+ "video/{$format}",
92
+ $src
93
+ );
94
+
95
+ // tracks
96
+ $tracks_enabled = isset( $atts['tracks'] ) ? (int) $atts['tracks'] : isset( $player_settings['controls']['tracks'] );
97
+
98
+ if ( $tracks_enabled && ! empty( $post_meta['track'] ) ) {
99
+ $tracks = array();
100
+
101
+ foreach ( $post_meta['track'] as $track ) {
102
+ $tracks[] = unserialize( $track );
103
+ }
104
+
105
+ foreach ( $tracks as $track ) {
106
+ $src = esc_url_raw( $track['src'] );
107
+ $src = str_replace( 'http://', '//', $src );
108
+
109
+ $children[] = sprintf(
110
+ '<track src="%s" kind="subtitles" srclang="%s" label="%s">',
111
+ $src,
112
+ esc_attr( $track['srclang'] ),
113
+ esc_attr( $track['label'] )
114
+ );
115
+ }
116
+ }
117
+ }
118
+ }
119
+
120
+ if ( count( $children ) > 0 ) {
121
+ if ( count( $controls ) > 0 ) {
122
+ $attributes['controls'] = '';
123
+ }
124
+
125
+ if ( $autoplay ) {
126
+ $attributes['autoplay'] = '';
127
+ }
128
+
129
+ if ( $loop ) {
130
+ $attributes['loop'] = '';
131
+ }
132
+
133
+ if ( ! empty( $poster ) ) {
134
+ $attributes['poster'] = $poster;
135
+ }
136
+
137
+ printf(
138
+ '<amp-video %s>%s</amp-video>',
139
+ aiovg_combine_video_attributes( $attributes ),
140
+ implode( '', $children )
141
+ );
142
+
143
+ break;
144
+ }
145
+ }
146
+
147
+ // embedcode
148
+ if ( 'embedcode' == $source && 'embedcode' == $type ) {
149
+ $document = new DOMDocument();
150
+ $document->loadHTML( $post_meta['embedcode'][0] );
151
+
152
+ $iframes = $document->getElementsByTagName( 'iframe' );
153
+ $src = $iframes->item(0)->getAttribute( 'src' );
154
+
155
+ $placeholder = '';
156
+ if ( ! empty( $poster ) ) {
157
+ $placeholder = sprintf(
158
+ '<amp-img layout="fill" src="%s" placeholder></amp-img>',
159
+ $poster
160
+ );
161
+ }
162
+
163
+ if ( $src ) {
164
+ $attributes['src'] = $src;
165
+
166
+ $attributes['sandbox'] = 'allow-scripts allow-same-origin allow-popups';
167
+ $attributes['allowfullscreen'] = '';
168
+ $attributes['frameborder'] = '0';
169
+
170
+ printf(
171
+ '<amp-iframe %s>%s</amp-iframe>',
172
+ aiovg_combine_video_attributes( $attributes ),
173
+ $placeholder
174
+ );
175
+
176
+ break;
177
+ }
178
+ }
179
+
180
+ // youtube, vimeo, dailymotion & facebook
181
+ $src = '';
182
+
183
+ if ( isset( $atts[ $source ] ) ) {
184
+ $src = $atts[ $source ];
185
+ } elseif ( $source == $type && ! empty( $post_meta[ $source ][0] ) ) {
186
+ $src = $post_meta[ $source ][0];
187
+ }
188
+
189
+ if ( $src ) {
190
+ switch ( $source ) {
191
+ case 'youtube':
192
+ $attributes['data-videoid'] = aiovg_get_youtube_id_from_url( $src );
193
+
194
+ $attributes['data-param-showinfo'] = 0;
195
+ $attributes['data-param-rel'] = 0;
196
+ $attributes['data-param-iv_load_policy'] = 3;
197
+
198
+ if ( empty( $controls ) ) {
199
+ $attributes['data-param-controls'] = 0;
200
+ }
201
+
202
+ if ( ! in_array( 'fullscreen', $controls ) ) {
203
+ $attributes['data-param-fs'] = 0;
204
+ }
205
+
206
+ if ( $autoplay ) {
207
+ $attributes['autoplay'] = '';
208
+ }
209
+
210
+ if ( $loop ) {
211
+ $attributes['loop'] = '';
212
+ }
213
+ break;
214
+ case 'vimeo':
215
+ $vimeo = aiovg_get_vimeo_oembed_data( $src );
216
+ $attributes['data-videoid'] = $vimeo['video_id'];
217
+
218
+ if ( $autoplay ) {
219
+ $attributes['autoplay'] = '';
220
+ }
221
+ break;
222
+ case 'dailymotion':
223
+ $attributes['data-videoid'] = aiovg_get_dailymotion_id_from_url( $src );
224
+
225
+ if ( empty( $controls ) ) {
226
+ $attributes['data-param-controls'] = 'false';
227
+ }
228
+
229
+ if ( $autoplay ) {
230
+ $attributes['autoplay'] = '';
231
+ }
232
+
233
+ if ( $muted ) {
234
+ $attributes['mute'] = 'true';
235
+ }
236
+
237
+ $attributes['data-endscreen-enable'] = 'false';
238
+ $attributes['data-sharing-enable'] = 'false';
239
+ $attributes['data-ui-logo'] = 'false';
240
+
241
+ $attributes['data-param-queue-autoplay-next'] = 0;
242
+ $attributes['data-param-queue-enable'] = 0;
243
+ break;
244
+ case 'facebook':
245
+ $attributes['data-embed-as'] = 'video';
246
+ $attributes['data-href'] = $src;
247
+ break;
248
+ }
249
+
250
+ printf(
251
+ '<amp-%1$s %2$s></amp-%1$s>',
252
+ $source,
253
+ aiovg_combine_video_attributes( $attributes )
254
+ );
255
+
256
+ break;
257
+ }
258
+ }
public/templates/player-gdpr.php CHANGED
@@ -47,7 +47,9 @@ if ( empty( $image ) ) {
47
  <html>
48
  <head>
49
  <meta charset="utf-8">
50
- <meta name="viewport" content="width=device-width, initial-scale=1">
 
 
51
  <?php if ( $post_id > 0 ) : ?>
52
  <title><?php echo wp_kses_post( get_the_title( $post_id ) ); ?></title>
53
  <link rel="canonical" href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
47
  <html>
48
  <head>
49
  <meta charset="utf-8">
50
+ <meta name="viewport" content="width=device-width, initial-scale=1">
51
+ <meta name="robots" content="noindex">
52
+
53
  <?php if ( $post_id > 0 ) : ?>
54
  <title><?php echo wp_kses_post( get_the_title( $post_id ) ); ?></title>
55
  <link rel="canonical" href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
public/templates/player-html5.php CHANGED
@@ -1,82 +1,79 @@
1
  <?php
2
 
3
  /**
4
- * Video Player: Mediaelementjs.
5
  *
6
  * @link https://plugins360.com
7
- * @since 1.6.0
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
11
 
12
  // Video Sources
13
- $types = array(
14
- 'all' => array( 'mp4', 'webm', 'ogv', 'youtube', 'vimeo', 'dailymotion', 'facebook' ),
15
- 'default' => array( 'mp4', 'webm', 'ogv' ),
16
- 'youtube' => array( 'youtube' ),
17
- 'vimeo' => array( 'vimeo' ),
18
- 'dailymotion' => array( 'dailymotion' ),
19
- 'facebook' => array( 'facebook' )
20
- );
21
 
22
  if ( ! empty( $post_meta ) ) {
23
- $types = array_key_exists( $post_meta['type'][0], $types ) ? $types[ $post_meta['type'][0] ] : array();
24
- } else {
25
- $types = $types['all'];
26
- }
27
 
28
- $sources = array();
29
- $thirdparty_providers = array();
30
 
31
- foreach ( $types as $type ) {
32
- if ( ! empty( $post_meta ) ) {
33
- $src = ! empty( $post_meta[ $type ][0] ) ? $post_meta[ $type ][0] : '';
 
 
 
 
 
34
  } else {
35
- $src = isset( $_GET[ $type ] ) ? sanitize_text_field( $_GET[ $type ] ) : '';
 
 
 
 
 
36
  }
37
-
38
- if ( ! empty( $src ) ) {
39
- $mime = "video/{$type}";
 
 
 
 
 
 
 
40
 
41
- $sources[] = array(
42
- 'type' => $mime,
43
- 'src' => $src
44
- );
45
-
46
- if ( in_array( $type, $embedded_sources ) ) {
47
- $thirdparty_providers[] = $type;
48
- }
 
49
  }
50
  }
51
 
52
- $sources = apply_filters( 'aiovg_video_sources', $sources );
53
 
54
  // Video Attributes
55
  $attributes = array(
56
  'id' => 'player',
 
57
  'playsinline' => ''
58
  );
59
 
60
- if ( wp_is_mobile() || empty( $sources ) || in_array( 'facebook', $thirdparty_providers ) ) {
61
- $autoplay = 0;
62
- } else {
63
- $autoplay = isset( $_GET['autoplay'] ) ? (int) $_GET['autoplay'] : (int) $player_settings['autoplay'];
64
- }
65
 
66
  $loop = isset( $_GET['loop'] ) ? (int) $_GET['loop'] : (int) $player_settings['loop'];
67
-
68
- if ( ! empty( $loop ) ) {
69
  $attributes['loop'] = true;
70
  }
71
 
72
- $muted = isset( $_GET['muted'] ) ? (int) $_GET['muted'] : (int) $player_settings['muted'];
73
-
74
- if ( ! empty( $muted ) ) {
75
- $attributes['muted'] = true;
76
- }
77
-
78
- $attributes['preload'] = esc_attr( $player_settings['preload'] );
79
-
80
  if ( isset( $_GET['poster'] ) ) {
81
  $attributes['poster'] = $_GET['poster'];
82
  } elseif ( ! empty( $post_meta ) ) {
@@ -84,477 +81,450 @@ if ( isset( $_GET['poster'] ) ) {
84
  }
85
 
86
  if ( ! empty( $attributes['poster'] ) ) {
87
- $attributes['poster'] = esc_url( $attributes['poster'] );
88
-
89
- if ( false !== strpos( $attributes['poster'], 'youtube' ) ) {
90
- $attributes['poster'] = str_replace( array( 'https:', 'http:' ), '', $attributes['poster'] );
91
- }
92
  }
93
 
94
  $attributes = apply_filters( 'aiovg_video_attributes', $attributes );
95
 
96
  // Player Settings
97
- $features = array( 'playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen' );
98
- $controls = array( 'aiovg' );
 
 
 
 
 
 
 
 
 
 
99
 
100
- foreach ( $features as $feature ) {
101
- if ( isset( $_GET[ $feature ] ) ) {
102
- if ( 1 == (int) $_GET[ $feature ] ) {
103
- $controls[] = $feature;
104
- }
105
- } else {
106
- if ( isset( $player_settings['controls'][ $feature ] ) ) {
107
- $controls[] = $feature;
108
- }
 
 
 
 
 
109
  }
110
  }
111
 
112
- $settings = array(
113
- 'pluginPath' => AIOVG_PLUGIN_URL . 'public/assets/mediaelement/',
114
- 'features' => $controls,
115
- 'autoplayRequested' => $autoplay,
116
- 'youtube' => array( 'showinfo' => 0, 'rel' => 0, 'iv_load_policy' => 3 ),
117
- 'showLogo' => 0,
118
- 'showCustomContextMenu' => 0
119
- );
120
 
121
- if ( ! empty( $brand_settings ) ) {
122
- $settings['showLogo'] = (int) $brand_settings['show_logo'];
123
- $settings['logoImage'] = esc_url_raw( $brand_settings['logo_image'] );
124
- $settings['logoLink'] = esc_url_raw( $brand_settings['logo_link'] );
125
- $settings['logoPosition'] = sanitize_text_field( $brand_settings['logo_position'] );
126
- $settings['logoMargin'] = (int) $brand_settings['logo_margin'];
127
- $settings['showCustomContextMenu'] = ! empty( $brand_settings['copyright_text'] ) ? 1 : 0;
128
  }
129
 
130
- $settings = apply_filters( 'aiovg_player_settings', $settings );
 
 
131
 
132
- // Video Tracks
133
- $tracks = array();
 
134
 
135
- if ( in_array( 'tracks', $settings['features'] ) && ! empty( $post_meta['track'] ) ) {
136
- foreach ( $post_meta['track'] as $track ) {
137
- $tracks[] = unserialize( $track );
138
- }
139
  }
140
 
141
- $tracks = apply_filters( 'aiovg_video_tracks', $tracks );
 
 
 
 
 
 
 
 
 
142
  ?>
143
  <!DOCTYPE html>
144
  <html>
145
  <head>
146
  <meta charset="utf-8">
147
- <meta name="viewport" content="width=device-width, initial-scale=1">
 
 
148
  <?php if ( $post_id > 0 ) : ?>
149
  <title><?php echo wp_kses_post( get_the_title( $post_id ) ); ?></title>
150
  <link rel="canonical" href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
151
  <meta property="og:url" content="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
152
  <?php endif; ?>
153
- <link rel="stylesheet" href="<?php echo includes_url( 'js/mediaelement/mediaelementplayer.min.css' ); ?>?v=4.2.9" />
154
 
155
- <?php do_action( 'aiovg_player_head' ); ?>
 
 
 
 
156
 
157
  <style type="text/css">
158
  html,
159
- body,
160
- video,
161
- iframe {
162
- width: 100% !important;
163
- height: 100% !important;
164
- margin:0 !important;
165
- padding:0 !important;
166
  overflow: hidden;
167
  }
168
-
169
- video,
170
- iframe {
171
- display: block;
172
- }
173
-
174
- .mejs__container,
175
- .mejs__layer {
176
- width: 100% !important;
177
- height: 100% !important;
178
- }
179
-
180
- .mejs__captions-layer {
181
- pointer-events: none;
182
- }
183
 
184
- .mejs__captions-selector-list .mejs__captions-selector-list-item,
185
- .mejs__captions-selector-list .mejs__chapters-selector-list-item {
186
- margin: 0;
187
- padding: 0;
188
  }
189
 
190
- .mejs__captions-selector-list .mejs__captions-selector-label,
191
- .mejs__captions-selector-list .mejs__chapters-selector-label {
192
- float: none;
 
193
  display: block;
194
- padding: 4px 10px;
195
  }
196
-
197
- .mejs__logo {
198
- position: absolute;
199
- width: auto !important;
 
 
 
 
 
 
 
 
 
 
 
 
200
  height: auto !important;
201
- max-width: 150px;
202
- z-index: 9;
 
 
203
  cursor: pointer;
204
  }
205
-
206
- .mejs__logo img {
207
- display: block;
208
  opacity: 0.5;
 
209
  }
210
-
211
- .mejs__logo:hover img {
 
 
 
 
 
212
  opacity: 1;
213
  }
214
-
215
- .mejs__logo-topleft {
216
- top: 0;
217
- left: 0;
218
  }
219
-
220
- .mejs__logo-topright {
221
- top: 0;
222
- right: 0;
 
 
 
 
223
  }
224
-
225
- .mejs__logo-bottomleft {
226
- bottom: 40px;
227
- left: 0;
228
  }
229
-
230
- .mejs__logo-bottomright {
231
- bottom: 40px;
232
- right: 0;
233
- }
234
-
235
  .contextmenu {
236
  position: absolute;
237
  top: 0;
238
  left: 0;
239
  margin: 0;
240
  padding: 0;
241
- background: #fff;
 
242
  border-radius: 2px;
243
- box-shadow: 1px 1px 2px #333;
244
  z-index: 9999999999; /* make sure it shows on fullscreen */
245
  }
246
 
247
  .contextmenu-item {
248
  margin: 0;
249
  padding: 8px 12px;
250
- font-family: 'Helvetica', Arial, serif;
251
- font-size: 12px;
252
- color: #222;
253
  white-space: nowrap;
254
  cursor: pointer;
255
  }
256
-
257
- .show-spinner .mejs__layers .mejs__overlay-play,
258
- .show-spinner .mejs__controls {
259
- display: none !important;
260
- }
261
-
262
- .show-spinner .mejs__layers .mejs__layer:nth-child(2) {
263
- display: flex !important;
264
- }
265
  </style>
 
 
266
  </head>
267
- <body id="body"<?php if ( $autoplay ) echo ' class="show-spinner"'; ?>>
268
- <video <?php the_aiovg_video_attributes( $attributes ); ?>>
269
  <?php
270
  // Video Sources
271
  foreach ( $sources as $source ) {
272
- printf( '<source type="%s" src="%s" />', esc_attr( $source['type'] ), esc_url_raw( $source['src'] ) );
 
 
 
 
273
  }
274
 
275
  // Video Tracks
276
  foreach ( $tracks as $track ) {
277
- printf( '<track src="%s" kind="subtitles" srclang="%s" label="%s">', esc_url_raw( $track['src'] ), esc_attr( $track['srclang'] ), esc_attr( $track['label'] ) );
 
 
 
 
 
278
  }
279
  ?>
280
- </video>
281
-
282
- <?php if ( ! empty( $brand_settings['copyright_text'] ) ) : ?>
283
- <div id="contextmenu" class="contextmenu" style="display: none;">
284
- <div class="contextmenu-item"><?php echo esc_html( $brand_settings['copyright_text'] ); ?></div>
285
  </div>
286
- <?php endif; ?>
287
 
288
- <!--noptimize--><script src="<?php echo includes_url( 'js/mediaelement/mediaelement-and-player.min.js' ); ?>?v=4.2.9" type="text/javascript"></script><!--/noptimize-->
289
- <?php if ( in_array( 'vimeo', $thirdparty_providers ) ) : ?>
290
- <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/mediaelement/renderers/vimeo.min.js?v=4.2.9" type="text/javascript"></script>
291
- <?php endif; ?>
292
- <?php if ( in_array( 'dailymotion', $thirdparty_providers ) ) : ?>
293
- <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/mediaelement/renderers/dailymotion.min.js?v=4.2.9" type="text/javascript"></script>
294
- <?php endif; ?>
295
- <?php if ( in_array( 'facebook', $thirdparty_providers ) ) : ?>
296
- <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/mediaelement/renderers/facebook.min.js?v=4.2.9" type="text/javascript"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
297
  <?php endif; ?>
298
-
299
- <?php do_action( 'aiovg_player_footer' ); ?>
300
-
301
  <script type="text/javascript">
302
- /**
303
- * Check if HTML5 video autoplay is supported.
304
- */
305
- (function () {
306
- 'use strict';
307
-
308
- var autoplayAllowed, autoplayRequiresMuted;
309
 
310
- var videoElement = document.createElement( 'video' );
311
- videoElement.id = 'aiovg-video-hidden';
312
- videoElement.src = "data:video/mp4;base64,AAAAFGZ0eXBNU05WAAACAE1TTlYAAAOUbW9vdgAAAGxtdmhkAAAAAM9ghv7PYIb+AAACWAAACu8AAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAnh0cmFrAAAAXHRraGQAAAAHz2CG/s9ghv4AAAABAAAAAAAACu8AAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAFAAAAA4AAAAAAHgbWRpYQAAACBtZGhkAAAAAM9ghv7PYIb+AAALuAAANq8AAAAAAAAAIWhkbHIAAAAAbWhscnZpZGVBVlMgAAAAAAABAB4AAAABl21pbmYAAAAUdm1oZAAAAAAAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAVdzdGJsAAAAp3N0c2QAAAAAAAAAAQAAAJdhdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAFAAOABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAAEmNvbHJuY2xjAAEAAQABAAAAL2F2Y0MBTUAz/+EAGGdNQDOadCk/LgIgAAADACAAAAMA0eMGVAEABGjuPIAAAAAYc3R0cwAAAAAAAAABAAAADgAAA+gAAAAUc3RzcwAAAAAAAAABAAAAAQAAABxzdHNjAAAAAAAAAAEAAAABAAAADgAAAAEAAABMc3RzegAAAAAAAAAAAAAADgAAAE8AAAAOAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA4AAAAOAAAAFHN0Y28AAAAAAAAAAQAAA7AAAAA0dXVpZFVTTVQh0k/Ou4hpXPrJx0AAAAAcTVREVAABABIAAAAKVcQAAAAAAAEAAAAAAAAAqHV1aWRVU01UIdJPzruIaVz6ycdAAAAAkE1URFQABAAMAAAAC1XEAAACHAAeAAAABBXHAAEAQQBWAFMAIABNAGUAZABpAGEAAAAqAAAAASoOAAEAZABlAHQAZQBjAHQAXwBhAHUAdABvAHAAbABhAHkAAAAyAAAAA1XEAAEAMgAwADAANQBtAGUALwAwADcALwAwADYAMAA2ACAAMwA6ADUAOgAwAAABA21kYXQAAAAYZ01AM5p0KT8uAiAAAAMAIAAAAwDR4wZUAAAABGjuPIAAAAAnZYiAIAAR//eBLT+oL1eA2Nlb/edvwWZflzEVLlhlXtJvSAEGRA3ZAAAACkGaAQCyJ/8AFBAAAAAJQZoCATP/AOmBAAAACUGaAwGz/wDpgAAAAAlBmgQCM/8A6YEAAAAJQZoFArP/AOmBAAAACUGaBgMz/wDpgQAAAAlBmgcDs/8A6YEAAAAJQZoIBDP/AOmAAAAACUGaCQSz/wDpgAAAAAlBmgoFM/8A6YEAAAAJQZoLBbP/AOmAAAAACkGaDAYyJ/8AFBAAAAAKQZoNBrIv/4cMeQ==";
313
- videoElement.autoplay = true;
314
- videoElement.style.position = 'fixed';
315
- videoElement.style.left = '5000px';
316
-
317
- document.getElementsByTagName( 'body' )[0].appendChild( videoElement );
318
- var videoContent = document.getElementById( 'aiovg-video-hidden' );
319
-
320
- function checkAutoplaySupport() {
321
- // Check if autoplay is supported.
322
- var playPromise = videoContent.play();
323
- if ( playPromise !== undefined ) {
324
- playPromise.then( onAutoplayWithSoundSuccess ).catch( onAutoplayWithSoundFail );
325
- } else {
326
- autoplayAllowed = false;
327
- autoplayRequiresMuted = false;
328
- autoplayChecksResolved();
329
- }
330
- }
331
-
332
- function onAutoplayWithSoundSuccess() {
333
- // If we make it here, unmuted autoplay works.
334
- videoContent.pause();
335
- autoplayAllowed = true;
336
- autoplayRequiresMuted = false;
337
- autoplayChecksResolved();
338
- }
339
 
340
- function onAutoplayWithSoundFail() {
341
- // Unmuted autoplay failed. Now try muted autoplay.
342
- checkMutedAutoplaySupport();
343
- }
 
 
 
 
 
344
 
345
- function checkMutedAutoplaySupport() {
346
- videoContent.volume = 0;
347
- videoContent.muted = true;
348
- var playPromise = videoContent.play();
349
- if ( playPromise !== undefined ) {
350
- playPromise.then( onMutedAutoplaySuccess ).catch( onMutedAutoplayFail );
351
- }
352
  }
353
 
354
- function onMutedAutoplaySuccess() {
355
- // If we make it here, muted autoplay works but unmuted autoplay does not.
356
- videoContent.pause();
357
- autoplayAllowed = true;
358
- autoplayRequiresMuted = true;
359
- autoplayChecksResolved();
360
- }
361
 
362
- function onMutedAutoplayFail() {
363
- // Both muted and unmuted autoplay failed. Fall back to click to play.
364
- videoContent.volume = 1;
365
- videoContent.muted = false;
366
- autoplayAllowed = false;
367
- autoplayRequiresMuted = false;
368
- autoplayChecksResolved();
369
- }
 
 
 
 
 
370
 
371
- function autoplayChecksResolved() {
372
- document.getElementsByTagName( 'body' )[0].removeChild( videoElement );
373
-
374
- // Announce to the World!
375
- window.aiovgAutoplayChecksResolved = true;
376
- window.aiovgAutoplayAllowed = autoplayAllowed;
377
- window.aiovgAutoplayRequiresMuted = autoplayRequiresMuted;
378
  };
379
-
380
- // ...
381
- checkAutoplaySupport();
382
- })();
383
 
384
  /**
385
- * MediaElement.js Integration.
 
 
386
  */
387
- (function() {
388
- 'use strict';
389
-
390
- /**
391
- * Helper functions.
392
- */
393
-
394
- var body = document.getElementById( 'body' );
395
- var initialized = 0;
396
-
397
- function onAutoplayChecksResolved( media ) {
398
- if ( window.aiovgAutoplayAllowed ) {
399
- if ( window.aiovgAutoplayRequiresMuted ) {
400
- if ( media.muted ) {
401
- media.play();
402
- } else {
403
- hideSpinner();
404
- }
405
  } else {
406
- media.play();
407
- }
408
- } else {
409
- hideSpinner();
410
- }
411
- }
412
 
413
- function showSpinner() {
414
- if ( ! initialized ) {
415
- mejs.Utils.addClass( body, 'show-spinner' );
416
- }
417
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
 
419
- function hideSpinner() {
420
- mejs.Utils.removeClass( body, 'show-spinner' );
421
- }
422
-
423
- /**
424
- * A custom mediaelementjs plugin.
425
- */
426
- Object.assign(MediaElementPlayer.prototype, {
427
 
428
- buildaiovg: function buildaiovg( player, controls, layers, media ) {
429
- var t = this;
430
-
431
- // Show the spinner immediately as soon as the play button is clicked
432
- var loadedmetadata = 0;
433
-
434
- media.addEventListener( 'loadedmetadata', function() {
435
- if ( ! loadedmetadata ) {
436
- loadedmetadata = 1;
437
-
438
- t.layers.querySelector( '.' + t.options.classPrefix + 'overlay-play' ).addEventListener( 'click', showSpinner );
439
-
440
- try {
441
- t.controls.querySelector( '.' + t.options.classPrefix + 'playpause-button' ).addEventListener( 'click', showSpinner );
442
- } catch( err ) {}
443
- }
444
- });
445
-
446
- // Logo / Watermark
447
- if ( 1 == t.options.showLogo && '' != t.options.logoImage ) {
448
- t.logoLayer = document.createElement( 'div' );
449
- t.logoLayer.className = t.options.classPrefix + 'logo ' + t.options.classPrefix + 'logo-' + t.options.logoPosition;
450
- t.logoLayer.style.margin = t.options.logoMargin + 'px';
451
- t.logoLayer.innerHTML = '<img src="' + t.options.logoImage + '" />';
452
-
453
- t.layers.appendChild( t.logoLayer );
454
-
455
- if ( '' != t.options.logoLink ) {
456
- t.logoLayer.addEventListener( 'click', function() {
457
- top.window.location.href = t.options.logoLink;
458
- });
459
- }
460
-
461
- t.container.addEventListener( 'controlsshown', function() {
462
- t.logoLayer.style.display = '';
463
- });
464
-
465
- t.container.addEventListener( 'controlshidden', function() {
466
- t.logoLayer.style.display = 'none';
467
- });
468
- }
469
-
470
- // Custom ContextMenu
471
- if ( 1 == t.options.showCustomContextMenu ) {
472
- var contextmenu = document.getElementById( 'contextmenu' );
473
- var timeout_handler = '';
474
-
475
- document.addEventListener( 'contextmenu', function( e ) {
476
- if ( 3 === e.keyCode || 3 === e.which ) {
477
- e.preventDefault();
478
- e.stopPropagation();
479
-
480
- var width = contextmenu.offsetWidth,
481
- height = contextmenu.offsetHeight,
482
- x = e.pageX,
483
- y = e.pageY,
484
- doc = document.documentElement,
485
- scrollLeft = ( window.pageXOffset || doc.scrollLeft ) - ( doc.clientLeft || 0 ),
486
- scrollTop = ( window.pageYOffset || doc.scrollTop ) - ( doc.clientTop || 0 ),
487
- left = x + width > window.innerWidth + scrollLeft ? x - width : x,
488
- top = y + height > window.innerHeight + scrollTop ? y - height : y;
489
-
490
- contextmenu.style.display = '';
491
- contextmenu.style.left = left + 'px';
492
- contextmenu.style.top = top + 'px';
493
-
494
- clearTimeout( timeout_handler );
495
- timeout_handler = setTimeout(function() {
496
- contextmenu.style.display = 'none';
497
- }, 1500 );
498
- }
499
- });
500
-
501
- if ( '' != t.options.logoLink ) {
502
- contextmenu.addEventListener( 'click', function() {
503
- top.window.location.href = t.options.logoLink;
504
- });
505
- }
506
-
507
- document.addEventListener( 'click', function() {
508
- contextmenu.style.display = 'none';
509
- });
510
- }
511
  }
512
-
513
  });
514
-
515
- /**
516
- * Initialize the player.
517
- */
518
- var settings = <?php echo json_encode( $settings ); ?>;
519
-
520
- settings.success = function( media ) {
521
- // Autoplay
522
- if ( settings.autoplayRequested ) {
523
- if ( window.aiovgAutoplayChecksResolved ) {
524
- onAutoplayChecksResolved( media );
525
- } else {
526
- var intervalHandler = setInterval(
527
- function() {
528
- if ( window.aiovgAutoplayChecksResolved ) {
529
- clearInterval( intervalHandler );
530
- onAutoplayChecksResolved( media );
531
- }
532
- },
533
- 100 ); // every 100ms
534
- }
 
 
 
 
 
 
 
535
  }
536
 
537
- // Fired when the media is ready to start playing
538
- var post_type = '<?php echo $post_type; ?>';
 
539
 
540
- media.addEventListener( 'play', function( e ) {
541
- if ( ! initialized ) {
542
- initialized = 1;
 
 
 
 
 
543
 
544
- hideSpinner();
 
 
 
 
545
 
546
- if ( 'aiovg_videos' == post_type ) {
547
- var url = '<?php echo admin_url( 'admin-ajax.php' ); ?>?action=aiovg_update_views_count&post_id=<?php echo $post_id; ?>&security=<?php echo wp_create_nonce( 'aiovg_video_{$post_id}_views_nonce' ); ?>';
548
- mejs.Utils.ajax( url, 'json', function() {
549
- // Do nothing
550
- });
551
- }
552
- };
553
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  }
555
 
556
- var player = new MediaElementPlayer( 'player', settings );
557
- })();
558
- </script>
 
 
559
  </body>
560
  </html>
1
  <?php
2
 
3
  /**
4
+ * Video Player: Video.js.
5
  *
6
  * @link https://plugins360.com
7
+ * @since 2.0.0
8
  *
9
  * @package All_In_One_Video_Gallery
10
  */
11
 
12
  // Video Sources
13
+ $sources = array();
14
+ $allowed_types = array( 'mp4', 'webm', 'ogv', 'youtube', 'vimeo', 'dailymotion', 'facebook' );
 
 
 
 
 
 
15
 
16
  if ( ! empty( $post_meta ) ) {
17
+ $type = $post_meta['type'][0];
 
 
 
18
 
19
+ if ( 'default' == $type ) {
20
+ $types = array( 'mp4', 'webm', 'ogv' );
21
 
22
+ foreach ( $types as $type ) {
23
+ if ( ! empty( $post_meta[ $type ][0] ) ) {
24
+ $sources[ $type ] = array(
25
+ 'type' => "video/{$type}",
26
+ 'src' => $post_meta[ $type ][0]
27
+ );
28
+ }
29
+ }
30
  } else {
31
+ if ( in_array( $type, $allowed_types ) && ! empty( $post_meta[ $type ][0] ) ) {
32
+ $sources[ $type ] = array(
33
+ 'type' => "video/{$type}",
34
+ 'src' => $post_meta[ $type ][0]
35
+ );
36
+ }
37
  }
38
+ } else {
39
+ foreach ( $allowed_types as $type ) {
40
+ if ( isset( $_GET[ $type ] ) && ! empty( $_GET[ $type ] ) ) {
41
+ $sources[ $type ] = array(
42
+ 'type' => "video/{$type}",
43
+ 'src' => sanitize_text_field( $_GET[ $type ] )
44
+ );
45
+ }
46
+ }
47
+ }
48
 
49
+ $sources = apply_filters( 'aiovg_video_sources', $sources );
50
+
51
+ // Video Tracks
52
+ $tracks_enabled = isset( $_GET['tracks'] ) ? (int) $_GET['tracks'] : isset( $player_settings['controls']['tracks'] );
53
+ $tracks = array();
54
+
55
+ if ( $tracks_enabled && ! empty( $post_meta['track'] ) ) {
56
+ foreach ( $post_meta['track'] as $track ) {
57
+ $tracks[] = unserialize( $track );
58
  }
59
  }
60
 
61
+ $tracks = apply_filters( 'aiovg_video_tracks', $tracks );
62
 
63
  // Video Attributes
64
  $attributes = array(
65
  'id' => 'player',
66
+ 'controls' => '',
67
  'playsinline' => ''
68
  );
69
 
70
+ $attributes['preload'] = esc_attr( $player_settings['preload'] );
 
 
 
 
71
 
72
  $loop = isset( $_GET['loop'] ) ? (int) $_GET['loop'] : (int) $player_settings['loop'];
73
+ if ( $loop ) {
 
74
  $attributes['loop'] = true;
75
  }
76
 
 
 
 
 
 
 
 
 
77
  if ( isset( $_GET['poster'] ) ) {
78
  $attributes['poster'] = $_GET['poster'];
79
  } elseif ( ! empty( $post_meta ) ) {
81
  }
82
 
83
  if ( ! empty( $attributes['poster'] ) ) {
84
+ $attributes['poster'] = esc_url_raw( $attributes['poster'] );
 
 
 
 
85
  }
86
 
87
  $attributes = apply_filters( 'aiovg_video_attributes', $attributes );
88
 
89
  // Player Settings
90
+ $settings = array(
91
+ 'fluid' => true,
92
+ 'controlBar' => array(),
93
+ 'autoplay' => isset( $_GET['autoplay'] ) ? (int) $_GET['autoplay'] : (int) $player_settings['autoplay'],
94
+ 'muted' => isset( $_GET['muted'] ) ? (int) $_GET['muted'] : (int) $player_settings['muted'],
95
+ 'aiovg' => array(
96
+ 'postID' => $post_id,
97
+ 'postType' => $post_type,
98
+ 'showLogo' => 0,
99
+ 'contextmenuLabel' => ''
100
+ )
101
+ );
102
 
103
+ $controls = array(
104
+ 'playpause' => 'PlayToggle',
105
+ 'current' => 'CurrentTimeDisplay',
106
+ 'progress' => 'progressControl',
107
+ 'duration' => 'durationDisplay',
108
+ 'volume' => 'VolumePanel',
109
+ 'fullscreen' => 'fullscreenToggle'
110
+ );
111
+
112
+ foreach ( $controls as $index => $control ) {
113
+ $enabled = isset( $_GET[ $index ] ) ? (int) $_GET[ $index ] : isset( $player_settings['controls'][ $index ] );
114
+
115
+ if ( ! $enabled ) {
116
+ unset( $controls[ $index ] );
117
  }
118
  }
119
 
120
+ $settings['controlBar']['children'] = array_values( $controls );
 
 
 
 
 
 
 
121
 
122
+ if ( isset( $sources['youtube'] ) ) {
123
+ $settings['techOrder'] = array( 'youtube' );
124
+ $settings['youtube'] = array(
125
+ 'iv_load_policy' => 3
126
+ );
 
 
127
  }
128
 
129
+ if ( isset( $sources['vimeo'] ) ) {
130
+ $settings['techOrder'] = array( 'vimeo2' );
131
+ }
132
 
133
+ if ( isset( $sources['dailymotion'] ) ) {
134
+ $settings['techOrder'] = array( 'dailymotion' );
135
+ }
136
 
137
+ if ( isset( $sources['facebook'] ) ) {
138
+ $settings['techOrder'] = array( 'facebook' );
 
 
139
  }
140
 
141
+ if ( ! empty( $brand_settings ) ) {
142
+ $settings['aiovg']['showLogo'] = ! empty( $brand_settings['logo_image'] ) ? (int) $brand_settings['show_logo'] : 0;
143
+ $settings['aiovg']['logoImage'] = esc_url_raw( $brand_settings['logo_image'] );
144
+ $settings['aiovg']['logoLink'] = esc_url_raw( $brand_settings['logo_link'] );
145
+ $settings['aiovg']['logoPosition'] = sanitize_text_field( $brand_settings['logo_position'] );
146
+ $settings['aiovg']['logoMargin'] = (int) $brand_settings['logo_margin'];
147
+ $settings['aiovg']['contextmenuLabel'] = sanitize_text_field( $brand_settings['copyright_text'] );
148
+ }
149
+
150
+ $settings = apply_filters( 'aiovg_player_settings', $settings );
151
  ?>
152
  <!DOCTYPE html>
153
  <html>
154
  <head>
155
  <meta charset="utf-8">
156
+ <meta name="viewport" content="width=device-width, initial-scale=1">
157
+ <meta name="robots" content="noindex">
158
+
159
  <?php if ( $post_id > 0 ) : ?>
160
  <title><?php echo wp_kses_post( get_the_title( $post_id ) ); ?></title>
161
  <link rel="canonical" href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
162
  <meta property="og:url" content="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
163
  <?php endif; ?>
 
164
 
165
+ <link rel="stylesheet" href="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs/video-js.min.css?v=7.6.6" />
166
+
167
+ <?php if ( ! empty( $settings['aiovg']['showLogo'] ) ) : ?>
168
+ <link rel="stylesheet" href="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs-plugins/overlay/videojs-overlay.css?v=2.1.4" />
169
+ <?php endif; ?>
170
 
171
  <style type="text/css">
172
  html,
173
+ body {
174
+ width: 100%;
175
+ height: 100%;
176
+ margin: 0;
177
+ padding: 0;
 
 
178
  overflow: hidden;
179
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
 
181
+ .video-js.vjs-fluid {
182
+ height: 100%;
 
 
183
  }
184
 
185
+ .video-js .vjs-current-time,
186
+ .vjs-no-flex .vjs-current-time,
187
+ .video-js .vjs-duration,
188
+ .vjs-no-flex .vjs-duration {
189
  display: block;
 
190
  }
191
+
192
+ .video-js .vjs-big-play-button {
193
+ top: 50%;
194
+ left: 50%;
195
+ margin-top: -0.8em;
196
+ margin-left: -0.8em;
197
+ width: 1.6em;
198
+ height: 1.6em;
199
+ border: none;
200
+ border-radius: 1.6em;
201
+ font-size: 5em;
202
+ line-height: 1.6em;
203
+ }
204
+
205
+ .vjs-vimeo .vjs-iframe-blocker {
206
+ bottom: 3em;
207
  height: auto !important;
208
+ }
209
+
210
+ .vjs-logo {
211
+ opacity: 0;
212
  cursor: pointer;
213
  }
214
+
215
+ .vjs-has-started .vjs-logo {
 
216
  opacity: 0.5;
217
+ transition: opacity 0.1s;
218
  }
219
+
220
+ .vjs-has-started.vjs-user-inactive.vjs-playing .vjs-logo {
221
+ opacity: 0;
222
+ transition: opacity 1s;
223
+ }
224
+
225
+ .vjs-has-started .vjs-logo:hover {
226
  opacity: 1;
227
  }
228
+
229
+ .vjs-logo img {
230
+ max-width: 100%;
 
231
  }
232
+
233
+ .vjs-waiting .vjs-big-play-button {
234
+ display: none;
235
+ }
236
+
237
+ .vjs-ended .vjs-control-bar,
238
+ .vjs-ended .vjs-logo {
239
+ display: none;
240
  }
241
+
242
+ .vjs-ended .vjs-poster,
243
+ .vjs-ended .vjs-big-play-button {
244
+ display: block;
245
  }
246
+
 
 
 
 
 
247
  .contextmenu {
248
  position: absolute;
249
  top: 0;
250
  left: 0;
251
  margin: 0;
252
  padding: 0;
253
+ background-color: #2B333F;
254
+ background-color: rgba( 43, 51, 63, 0.7 );
255
  border-radius: 2px;
 
256
  z-index: 9999999999; /* make sure it shows on fullscreen */
257
  }
258
 
259
  .contextmenu-item {
260
  margin: 0;
261
  padding: 8px 12px;
262
+ font-family: Arial, Helvetica, sans-serif;
263
+ font-size: 11px;
264
+ color: #FFF;
265
  white-space: nowrap;
266
  cursor: pointer;
267
  }
 
 
 
 
 
 
 
 
 
268
  </style>
269
+
270
+ <?php do_action( 'aiovg_player_head', $settings, $attributes, $sources, $tracks ); ?>
271
  </head>
272
+ <body id="body">
273
+ <video-js <?php the_aiovg_video_attributes( $attributes ); ?>>
274
  <?php
275
  // Video Sources
276
  foreach ( $sources as $source ) {
277
+ printf(
278
+ '<source type="%s" src="%s" />',
279
+ esc_attr( $source['type'] ),
280
+ esc_url_raw( $source['src'] )
281
+ );
282
  }
283
 
284
  // Video Tracks
285
  foreach ( $tracks as $track ) {
286
+ printf(
287
+ '<track src="%s" kind="subtitles" srclang="%s" label="%s">',
288
+ esc_url_raw( $track['src'] ),
289
+ esc_attr( $track['srclang'] ),
290
+ esc_attr( $track['label'] )
291
+ );
292
  }
293
  ?>
294
+ </video-js>
295
+
296
+ <?php if ( ! empty( $settings['aiovg']['contextmenuLabel'] ) ) : ?>
297
+ <div id="contextmenu" class="contextmenu" style="display: none;">
298
+ <div class="contextmenu-item"><?php echo esc_html( $settings['aiovg']['contextmenuLabel'] ); ?></div>
299
  </div>
300
+ <?php endif; ?>
301
 
302
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs/video.min.js?v=7.6.6" type="text/javascript"></script>
303
+
304
+ <?php if ( isset( $sources['youtube'] ) ) : ?>
305
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs-plugins/youtube/Youtube.min.js?v=2.6.0" type="text/javascript"></script>
306
+ <?php endif; ?>
307
+
308
+ <?php if ( isset( $sources['vimeo'] ) ) : ?>
309
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs-plugins/vimeo/videojs-vimeo2.min.js?v=1.0.0" type="text/javascript"></script>
310
+ <?php endif; ?>
311
+
312
+ <?php if ( isset( $sources['dailymotion'] ) ) : ?>
313
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs-plugins/dailymotion/videojs-dailymotion.min.js?v=1.0.0" type="text/javascript"></script>
314
+ <?php endif; ?>
315
+
316
+ <?php if ( isset( $sources['facebook'] ) ) : ?>
317
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs-plugins/facebook/videojs-facebook.min.js?v=1.0.0" type="text/javascript"></script>
318
+ <?php endif; ?>
319
+
320
+ <?php if ( ! empty( $settings['aiovg']['showLogo'] ) ) : ?>
321
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/videojs-plugins/overlay/videojs-overlay.min.js?v=2.1.4" type="text/javascript"></script>
322
+ <?php endif; ?>
323
+
324
+ <?php if ( ! empty( $settings['autoplay'] ) ) : ?>
325
+ <script src="<?php echo AIOVG_PLUGIN_URL; ?>public/assets/player/can-autoplay/can-autoplay.min.js?v=3.0.0" type="text/javascript"></script>
326
  <?php endif; ?>
327
+
328
+ <?php do_action( 'aiovg_player_footer', $settings, $attributes, $sources, $tracks ); ?>
329
+
330
  <script type="text/javascript">
331
+ 'use strict';
 
 
 
 
 
 
332
 
333
+ // Vars
334
+ var settings = <?php echo json_encode( $settings ); ?>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
335
 
336
+ /**
337
+ * Merge attributes.
338
+ *
339
+ * @since 2.0.0
340
+ * @param {array} attributes Attributes array.
341
+ * @return {string} str Merged attributes string to use in an HTML element.
342
+ */
343
+ function combineAttributes( attributes ) {
344
+ var str = '';
345
 
346
+ for ( var key in attributes ) {
347
+ str += ( key + '="' + attributes[ key ] + '" ' );
 
 
 
 
 
348
  }
349
 
350
+ return str;
351
+ }
 
 
 
 
 
352
 
353
+ /**
354
+ * Update video views count.
355
+ *
356
+ * @since 2.0.0
357
+ */
358
+ function updateViewsCount() {
359
+ var xmlhttp;
360
+
361
+ if ( window.XMLHttpRequest ) {
362
+ xmlhttp = new XMLHttpRequest();
363
+ } else {
364
+ xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' );
365
+ };
366
 
367
+ xmlhttp.onreadystatechange = function() {
368
+ if ( 4 == xmlhttp.readyState && 200 == xmlhttp.status ) {
369
+ if ( xmlhttp.responseText ) {
370
+ // Do nothing
371
+ }
372
+ }
 
373
  };
374
+
375
+ xmlhttp.open( 'GET', '<?php echo admin_url( 'admin-ajax.php' ); ?>?action=aiovg_update_views_count&post_id=<?php echo $post_id; ?>&security=<?php echo wp_create_nonce( 'aiovg_video_{$post_id}_views_nonce' ); ?>', true );
376
+ xmlhttp.send();
377
+ }
378
 
379
  /**
380
+ * Check unmuted autoplay support.
381
+ *
382
+ * @since 2.0.0
383
  */
384
+ function checkUnmutedAutoplaySupport() {
385
+ canAutoplay
386
+ .video({ timeout: 100, muted: false })
387
+ .then(function( response ) {
388
+ if ( response.result === false ) {
389
+ // Unmuted autoplay is not allowed
390
+ checkMutedAutoplaySupport();
 
 
 
 
 
 
 
 
 
 
 
391
  } else {
392
+ // Unmuted autoplay is allowed
393
+ settings.autoplay = true;
394
+ initPlayer();
395
+ }
396
+ });
397
+ }
398
 
399
+ /**
400
+ * Check muted autoplay support.
401
+ *
402
+ * @since 2.0.0
403
+ */
404
+ function checkMutedAutoplaySupport() {
405
+ canAutoplay
406
+ .video({ timeout: 100, muted: true })
407
+ .then(function( response ) {
408
+ if ( response.result === false ) {
409
+ // Muted autoplay is not allowed
410
+ settings.autoplay = false;
411
+ } else {
412
+ // Muted autoplay is allowed
413
+ settings.autoplay = true;
414
+ settings.muted = true;
415
+ }
416
+ initPlayer();
417
+ });
418
+ }
419
 
420
+ /**
421
+ * Initialize the player.
422
+ *
423
+ * @since 2.0.0
424
+ */
425
+ function initPlayer() {
426
+ var player = videojs( 'player', settings );
 
427
 
428
+ if ( typeof window['onPlayerInitialized'] === 'function' ) {
429
+ window.onPlayerInitialized( player );
430
+ }
431
+
432
+ // Fired the first time a video is played
433
+ player.one( 'play', function() {
434
+ if ( 'aiovg_videos' == settings.aiovg.postType ) {
435
+ updateViewsCount();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
436
  }
 
437
  });
438
+
439
+ // Logo overlay
440
+ if ( settings.aiovg.showLogo ) {
441
+ var attributes = [];
442
+ attributes['src'] = settings.aiovg.logoImage;
443
+
444
+ if ( settings.aiovg.logoMargin ) {
445
+ settings.aiovg.logoMargin = settings.aiovg.logoMargin - 5;
446
+ }
447
+
448
+ var align;
449
+ switch ( settings.aiovg.logoPosition ) {
450
+ case 'topleft':
451
+ align = 'top-left';
452
+ attributes['style'] = 'margin: ' + settings.aiovg.logoMargin + 'px;';
453
+ break;
454
+ case 'topright':
455
+ align = 'top-right';
456
+ attributes['style'] = 'margin: ' + settings.aiovg.logoMargin + 'px;';
457
+ break;
458
+ case 'bottomright':
459
+ align = 'bottom-right';
460
+ attributes['style'] = 'margin: ' + settings.aiovg.logoMargin + 'px;';
461
+ break;
462
+ default:
463
+ align = 'bottom-left';
464
+ attributes['style'] = 'margin: ' + settings.aiovg.logoMargin + 'px;';
465
+ break;
466
  }
467
 
468
+ if ( settings.aiovg.logoLink ) {
469
+ attributes['onclick'] = "top.window.location.href='" + settings.aiovg.logoLink + "';";
470
+ }
471
 
472
+ player.overlay({
473
+ content: '<img ' + combineAttributes( attributes ) + '/>',
474
+ class: 'vjs-logo',
475
+ align: align,
476
+ showBackground: false
477
+ });
478
+ }
479
+ }
480
 
481
+ if ( settings.autoplay ) {
482
+ checkUnmutedAutoplaySupport();
483
+ } else {
484
+ initPlayer();
485
+ }
486
 
487
+ // Custom contextmenu
488
+ if ( settings.aiovg.contextmenuLabel ) {
489
+ var contextmenu = document.getElementById( 'contextmenu' );
490
+ var timeout_handler = '';
491
+
492
+ document.addEventListener( 'contextmenu', function( e ) {
493
+ if ( 3 === e.keyCode || 3 === e.which ) {
494
+ e.preventDefault();
495
+ e.stopPropagation();
496
+
497
+ var width = contextmenu.offsetWidth,
498
+ height = contextmenu.offsetHeight,
499
+ x = e.pageX,
500
+ y = e.pageY,
501
+ doc = document.documentElement,
502
+ scrollLeft = ( window.pageXOffset || doc.scrollLeft ) - ( doc.clientLeft || 0 ),
503
+ scrollTop = ( window.pageYOffset || doc.scrollTop ) - ( doc.clientTop || 0 ),
504
+ left = x + width > window.innerWidth + scrollLeft ? x - width : x,
505
+ top = y + height > window.innerHeight + scrollTop ? y - height : y;
506
+
507
+ contextmenu.style.display = '';
508
+ contextmenu.style.left = left + 'px';
509
+ contextmenu.style.top = top + 'px';
510
+
511
+ clearTimeout( timeout_handler );
512
+ timeout_handler = setTimeout(function() {
513
+ contextmenu.style.display = 'none';
514
+ }, 1500 );
515
+ }
516
+ });
517
+
518
+ if ( settings.aiovg.logoLink ) {
519
+ contextmenu.addEventListener( 'click', function() {
520
+ top.window.location.href = settings.aiovg.logoLink;
521
+ });
522
  }
523
 
524
+ document.addEventListener( 'click', function() {
525
+ contextmenu.style.display = 'none';
526
+ });
527
+ }
528
+ </script>
529
  </body>
530
  </html>
public/templates/player-iframe.php CHANGED
@@ -94,7 +94,9 @@ if ( 'embedcode' != $type ) {
94
  <html>
95
  <head>
96
  <meta charset="utf-8">
97
- <meta name="viewport" content="width=device-width, initial-scale=1">
 
 
98
  <?php if ( $post_id > 0 ) : ?>
99
  <title><?php echo wp_kses_post( get_the_title( $post_id ) ); ?></title>
100
  <link rel="canonical" href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
94
  <html>
95
  <head>
96
  <meta charset="utf-8">
97
+ <meta name="viewport" content="width=device-width, initial-scale=1">
98
+ <meta name="robots" content="noindex">
99
+
100
  <?php if ( $post_id > 0 ) : ?>
101
  <title><?php echo wp_kses_post( get_the_title( $post_id ) ); ?></title>
102
  <link rel="canonical" href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" />
public/templates/player.php CHANGED
@@ -33,7 +33,7 @@ if ( $post_id > 0 ) {
33
  }
34
 
35
  foreach ( $embedded_sources as $source ) {
36
- if ( wp_is_mobile() || isset( $player_settings['use_native_controls'][ $source ] ) ) {
37
  if ( ! empty( $post_meta ) ) {
38
  if ( $source == $post_meta['type'][0] ) {
39
  $player_template = 'iframe';
33
  }
34
 
35
  foreach ( $embedded_sources as $source ) {
36
+ if ( isset( $player_settings['use_native_controls'][ $source ] ) ) {
37
  if ( ! empty( $post_meta ) ) {
38
  if ( $source == $post_meta['type'][0] ) {
39
  $player_template = 'iframe';
public/video.php CHANGED
@@ -112,6 +112,10 @@ class AIOVG_Public_Video {
112
  if ( is_singular( 'aiovg_videos' ) && in_the_loop() && is_main_query() ) {
113
  global $post;
114
 
 
 
 
 
115
  // Vars
116
  $video_settings = get_option( 'aiovg_video_settings' );
117
  $categories_settings = get_option( 'aiovg_categories_settings' );
112
  if ( is_singular( 'aiovg_videos' ) && in_the_loop() && is_main_query() ) {
113
  global $post;
114
 
115
+ if ( post_password_required( $post->ID ) ) {
116
+ return $content;
117
+ }
118
+
119
  // Vars
120
  $video_settings = get_option( 'aiovg_video_settings' );
121
  $categories_settings = get_option( 'aiovg_categories_settings' );
public/videos.php CHANGED
@@ -52,6 +52,13 @@ class AIOVG_Public_Videos {
52
  public function run_shortcode_videos( $atts ) {
53
  $attributes = shortcode_atts( $this->get_defaults(), $atts );
54
 
 
 
 
 
 
 
 
55
  $content = $this->get_content( $attributes );
56
 
57
  if ( empty( $content ) ) {
52
  public function run_shortcode_videos( $atts ) {
53
  $attributes = shortcode_atts( $this->get_defaults(), $atts );
54
 
55
+ if ( ! empty( $attributes['related'] ) ) {
56
+ if ( $term_slug = get_query_var( 'aiovg_category' ) ) {
57
+ $term = get_term_by( 'slug', sanitize_text_field( $term_slug ), 'aiovg_categories' );
58
+ $attributes['category'] = $term->term_id;
59
+ }
60
+ }
61
+
62
  $content = $this->get_content( $attributes );
63
 
64
  if ( empty( $content ) ) {