rx-player 4.1.0 → 4.2.0-dev.2024080600

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. package/CHANGELOG.md +5 -10
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  6. package/dist/commonjs/compat/add_class_name.js +1 -1
  7. package/dist/commonjs/compat/add_text_track.d.ts +2 -2
  8. package/dist/commonjs/compat/add_text_track.d.ts.map +1 -1
  9. package/dist/commonjs/compat/add_text_track.js +1 -1
  10. package/dist/commonjs/compat/browser_compatibility_types.d.ts +196 -13
  11. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  12. package/dist/commonjs/compat/browser_compatibility_types.js +29 -0
  13. package/dist/commonjs/compat/browser_version.js +1 -2
  14. package/dist/commonjs/compat/can_patch_isobmff.js +1 -1
  15. package/dist/commonjs/compat/can_rely_on_request_media_key_system_access.js +1 -2
  16. package/dist/commonjs/compat/can_rely_on_video_visibility_and_size.js +1 -1
  17. package/dist/commonjs/compat/can_reuse_media_keys.js +1 -1
  18. package/dist/commonjs/compat/change_source_buffer_type.js +1 -1
  19. package/dist/commonjs/compat/clear_element_src.d.ts +2 -1
  20. package/dist/commonjs/compat/clear_element_src.d.ts.map +1 -1
  21. package/dist/commonjs/compat/clear_element_src.js +1 -1
  22. package/dist/commonjs/compat/eme/close_session.js +1 -1
  23. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.d.ts +3 -2
  24. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.d.ts.map +1 -1
  25. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.js +1 -1
  26. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +2 -1
  27. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts.map +1 -1
  28. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.js +2 -3
  29. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +3 -2
  30. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts.map +1 -1
  31. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.js +2 -3
  32. package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts +5 -1
  33. package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts.map +1 -1
  34. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts +4 -3
  35. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
  36. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.js +3 -4
  37. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts.map +1 -1
  38. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +1 -2
  39. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts +4 -3
  40. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts.map +1 -1
  41. package/dist/commonjs/compat/eme/eme-api-implementation.js +19 -5
  42. package/dist/commonjs/compat/eme/generate_key_request.js +2 -3
  43. package/dist/commonjs/compat/eme/get_init_data.d.ts +3 -1
  44. package/dist/commonjs/compat/eme/get_init_data.d.ts.map +1 -1
  45. package/dist/commonjs/compat/eme/get_init_data.js +3 -3
  46. package/dist/commonjs/compat/eme/get_uuid_kid_from_keystatus_kid.js +1 -1
  47. package/dist/commonjs/compat/eme/get_webkit_fairplay_initdata.js +1 -1
  48. package/dist/commonjs/compat/eme/load_session.js +1 -1
  49. package/dist/commonjs/compat/eme/set_media_keys.d.ts +2 -1
  50. package/dist/commonjs/compat/eme/set_media_keys.d.ts.map +1 -1
  51. package/dist/commonjs/compat/eme/set_media_keys.js +1 -2
  52. package/dist/commonjs/compat/enable_audio_track.js +1 -1
  53. package/dist/commonjs/compat/event_listeners.d.ts +26 -24
  54. package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
  55. package/dist/commonjs/compat/event_listeners.js +9 -21
  56. package/dist/commonjs/compat/generate_init_data.js +2 -2
  57. package/dist/commonjs/compat/get_start_date.d.ts +2 -1
  58. package/dist/commonjs/compat/get_start_date.d.ts.map +1 -1
  59. package/dist/commonjs/compat/get_start_date.js +1 -1
  60. package/dist/commonjs/compat/has_issues_with_high_media_source_duration.js +1 -1
  61. package/dist/commonjs/compat/has_worker_api.js +1 -1
  62. package/dist/commonjs/compat/is_codec_supported.js +1 -1
  63. package/dist/commonjs/compat/is_debug_mode_enabled.js +1 -1
  64. package/dist/commonjs/compat/is_vtt_cue.js +1 -1
  65. package/dist/commonjs/compat/make_vtt_cue.js +1 -1
  66. package/dist/commonjs/compat/on_height_width_change.js +1 -1
  67. package/dist/commonjs/compat/patch_webkit_source_buffer.js +1 -1
  68. package/dist/commonjs/compat/remove_cue.js +1 -1
  69. package/dist/commonjs/compat/should_await_set_media_keys.js +1 -1
  70. package/dist/commonjs/compat/should_favour_custom_safari_EME.js +1 -1
  71. package/dist/commonjs/compat/should_reload_media_source_on_decipherability_update.js +1 -1
  72. package/dist/commonjs/compat/should_renew_media_key_system_access.js +1 -1
  73. package/dist/commonjs/compat/should_unset_media_keys.js +1 -1
  74. package/dist/commonjs/compat/should_validate_metadata.js +1 -1
  75. package/dist/commonjs/compat/should_wait_for_data_before_loaded.js +1 -1
  76. package/dist/commonjs/compat/should_wait_for_have_enough_data.js +1 -1
  77. package/dist/commonjs/config.d.ts +1 -1
  78. package/dist/commonjs/core/adaptive/adaptive_representation_selector.js +1 -1
  79. package/dist/commonjs/core/adaptive/network_analyzer.js +1 -2
  80. package/dist/commonjs/core/adaptive/utils/filter_by_bitrate.js +1 -1
  81. package/dist/commonjs/core/adaptive/utils/filter_by_resolution.js +1 -1
  82. package/dist/commonjs/core/adaptive/utils/get_buffer_levels.js +1 -1
  83. package/dist/commonjs/core/adaptive/utils/select_optimal_representation.js +1 -1
  84. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts +121 -0
  85. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -0
  86. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +341 -0
  87. package/dist/commonjs/core/cmcd/index.d.ts +4 -0
  88. package/dist/commonjs/core/cmcd/index.d.ts.map +1 -0
  89. package/dist/commonjs/core/cmcd/index.js +4 -0
  90. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +8 -0
  91. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  92. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +14 -11
  93. package/dist/commonjs/core/fetchers/segment/prioritized_segment_fetcher.js +1 -1
  94. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +43 -23
  95. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  96. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +25 -37
  97. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -3
  98. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts.map +1 -1
  99. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.js +13 -5
  100. package/dist/commonjs/core/fetchers/utils/error_selector.js +1 -1
  101. package/dist/commonjs/core/fetchers/utils/schedule_request.js +2 -3
  102. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.js +1 -1
  103. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.js +1 -1
  104. package/dist/commonjs/core/main/worker/content_preparer.d.ts +7 -0
  105. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -1
  106. package/dist/commonjs/core/main/worker/content_preparer.js +5 -2
  107. package/dist/commonjs/core/main/worker/send_message.js +2 -3
  108. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
  109. package/dist/commonjs/core/main/worker/worker_main.js +28 -38
  110. package/dist/commonjs/core/segment_sinks/garbage_collector.js +1 -1
  111. package/dist/commonjs/core/segment_sinks/inventory/utils.js +2 -3
  112. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +1 -1
  113. package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.js +1 -1
  114. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.js +1 -1
  115. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +1 -1
  116. package/dist/commonjs/core/stream/period/period_stream.js +1 -1
  117. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +1 -1
  118. package/dist/commonjs/core/stream/representation/representation_stream.js +1 -1
  119. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.js +1 -1
  120. package/dist/commonjs/core/stream/representation/utils/check_for_discontinuity.js +1 -1
  121. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +1 -1
  122. package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
  123. package/dist/commonjs/core/stream/representation/utils/get_segment_priority.js +1 -1
  124. package/dist/commonjs/core/stream/representation/utils/push_init_segment.js +7 -7
  125. package/dist/commonjs/core/stream/representation/utils/push_media_segment.js +10 -10
  126. package/dist/commonjs/default_config.d.ts +1 -1
  127. package/dist/commonjs/default_config.d.ts.map +1 -1
  128. package/dist/commonjs/default_config.js +1 -0
  129. package/dist/commonjs/errors/error_message.js +1 -1
  130. package/dist/commonjs/errors/format_error.js +1 -1
  131. package/dist/commonjs/errors/is_known_error.js +1 -1
  132. package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
  133. package/dist/commonjs/experimental/features/local.js +1 -4
  134. package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
  135. package/dist/commonjs/experimental/features/metaplaylist.js +1 -4
  136. package/dist/commonjs/experimental/features/multi_thread.js +1 -2
  137. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/features/dash.js +1 -1
  138. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +1 -1
  139. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +1 -1
  140. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +2 -1
  141. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  142. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -1
  143. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -1
  144. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts.map +1 -1
  145. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +1 -1
  146. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
  147. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +14 -8
  148. package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +1 -1
  149. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  150. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.js +1 -1
  151. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/capabilities.js +1 -1
  152. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +1 -1
  153. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +1 -1
  154. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +1 -1
  155. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  156. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +3 -3
  157. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +1 -1
  158. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +1 -1
  159. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +1 -1
  160. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -1
  161. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/utils.js +2 -3
  162. package/dist/commonjs/features/add_features.js +1 -1
  163. package/dist/commonjs/features/features_object.d.ts.map +1 -1
  164. package/dist/commonjs/features/features_object.js +0 -1
  165. package/dist/commonjs/features/list/dash.d.ts.map +1 -1
  166. package/dist/commonjs/features/list/dash.js +1 -4
  167. package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
  168. package/dist/commonjs/features/list/dash_wasm.js +0 -2
  169. package/dist/commonjs/features/list/debug_element.js +1 -2
  170. package/dist/commonjs/features/list/directfile.js +1 -2
  171. package/dist/commonjs/features/list/eme.js +1 -2
  172. package/dist/commonjs/features/list/html_sami_parser.js +1 -2
  173. package/dist/commonjs/features/list/html_srt_parser.js +1 -2
  174. package/dist/commonjs/features/list/html_text_buffer.js +1 -2
  175. package/dist/commonjs/features/list/html_ttml_parser.js +1 -2
  176. package/dist/commonjs/features/list/html_vtt_parser.js +1 -2
  177. package/dist/commonjs/features/list/media_source_main.js +1 -2
  178. package/dist/commonjs/features/list/native_sami_parser.js +1 -2
  179. package/dist/commonjs/features/list/native_srt_parser.js +1 -2
  180. package/dist/commonjs/features/list/native_text_buffer.js +1 -2
  181. package/dist/commonjs/features/list/native_ttml_parser.js +1 -2
  182. package/dist/commonjs/features/list/native_vtt_parser.js +1 -2
  183. package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
  184. package/dist/commonjs/features/list/smooth.js +1 -4
  185. package/dist/commonjs/features/types.d.ts +3 -11
  186. package/dist/commonjs/features/types.d.ts.map +1 -1
  187. package/dist/commonjs/index.js +2 -2
  188. package/dist/commonjs/main_thread/api/debug/modules/general_info.js +1 -1
  189. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +1 -1
  190. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_size.js +1 -1
  191. package/dist/commonjs/main_thread/api/debug/render.js +1 -1
  192. package/dist/commonjs/main_thread/api/debug/utils.js +5 -6
  193. package/dist/commonjs/main_thread/api/option_utils.d.ts +9 -2
  194. package/dist/commonjs/main_thread/api/option_utils.d.ts.map +1 -1
  195. package/dist/commonjs/main_thread/api/option_utils.js +7 -9
  196. package/dist/commonjs/main_thread/api/public_api.d.ts +23 -2
  197. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  198. package/dist/commonjs/main_thread/api/public_api.js +50 -12
  199. package/dist/commonjs/main_thread/api/utils.d.ts +5 -4
  200. package/dist/commonjs/main_thread/api/utils.d.ts.map +1 -1
  201. package/dist/commonjs/main_thread/api/utils.js +5 -6
  202. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts +3 -2
  203. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts.map +1 -1
  204. package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +8 -9
  205. package/dist/commonjs/main_thread/decrypt/clear_on_stop.d.ts +2 -1
  206. package/dist/commonjs/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  207. package/dist/commonjs/main_thread/decrypt/clear_on_stop.js +1 -1
  208. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts +26 -1
  209. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  210. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +86 -13
  211. package/dist/commonjs/main_thread/decrypt/create_or_load_session.js +1 -1
  212. package/dist/commonjs/main_thread/decrypt/create_session.js +1 -1
  213. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.d.ts +2 -1
  214. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  215. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.js +1 -1
  216. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts +17 -2
  217. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  218. package/dist/commonjs/main_thread/decrypt/find_key_system.js +73 -3
  219. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.d.ts +2 -1
  220. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.d.ts.map +1 -1
  221. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.js +1 -1
  222. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts +5 -1
  223. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  224. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +5 -3
  225. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts +2 -1
  226. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  227. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +1 -1
  228. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +1 -1
  229. package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +5 -4
  230. package/dist/commonjs/main_thread/decrypt/types.d.ts +1 -0
  231. package/dist/commonjs/main_thread/decrypt/types.d.ts.map +1 -1
  232. package/dist/commonjs/main_thread/decrypt/utils/are_init_values_compatible.js +1 -1
  233. package/dist/commonjs/main_thread/decrypt/utils/check_key_statuses.js +1 -1
  234. package/dist/commonjs/main_thread/decrypt/utils/clean_old_loaded_sessions.js +1 -1
  235. package/dist/commonjs/main_thread/decrypt/utils/clean_old_stored_persistent_info.js +1 -1
  236. package/dist/commonjs/main_thread/decrypt/utils/get_drm_system_id.js +1 -1
  237. package/dist/commonjs/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts +14 -0
  238. package/dist/commonjs/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts.map +1 -0
  239. package/dist/commonjs/main_thread/decrypt/utils/is_compatible_codec_supported.js +53 -0
  240. package/dist/commonjs/main_thread/decrypt/utils/is_session_usable.js +1 -1
  241. package/dist/commonjs/main_thread/decrypt/utils/key_id_comparison.js +2 -3
  242. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts +4 -3
  243. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +1 -1
  244. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts +6 -1
  245. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  246. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +2 -13
  247. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +62 -4
  248. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  249. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +163 -28
  250. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +46 -4
  251. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  252. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +78 -140
  253. package/dist/commonjs/main_thread/init/send_message.js +1 -1
  254. package/dist/commonjs/main_thread/init/types.d.ts +6 -1
  255. package/dist/commonjs/main_thread/init/types.d.ts.map +1 -1
  256. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +3 -4
  257. package/dist/commonjs/main_thread/init/utils/create_media_source.d.ts +3 -2
  258. package/dist/commonjs/main_thread/init/utils/create_media_source.d.ts.map +1 -1
  259. package/dist/commonjs/main_thread/init/utils/create_media_source.js +2 -3
  260. package/dist/commonjs/main_thread/init/utils/get_initial_time.js +1 -1
  261. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts +2 -1
  262. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts.map +1 -1
  263. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.js +1 -1
  264. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts +2 -1
  265. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  266. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +1 -1
  267. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.d.ts +17 -6
  268. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.d.ts.map +1 -1
  269. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.js +17 -22
  270. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +2 -1
  271. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  272. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.d.ts +2 -1
  273. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.d.ts.map +1 -1
  274. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.js +1 -1
  275. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +33 -0
  276. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -0
  277. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +224 -0
  278. package/dist/commonjs/main_thread/text_displayer/html/html_parsers.js +1 -1
  279. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.d.ts +2 -1
  280. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.d.ts.map +1 -1
  281. package/dist/commonjs/main_thread/text_displayer/html/update_proportional_elements.js +1 -1
  282. package/dist/commonjs/main_thread/text_displayer/html/utils.js +5 -6
  283. package/dist/commonjs/main_thread/text_displayer/native/native_parsers.js +1 -1
  284. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +2 -1
  285. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  286. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts +6 -1
  287. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  288. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts +5 -2
  289. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  290. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.js +7 -26
  291. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +49 -25
  292. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  293. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +263 -103
  294. package/dist/commonjs/manifest/classes/adaptation.d.ts +9 -9
  295. package/dist/commonjs/manifest/classes/adaptation.d.ts.map +1 -1
  296. package/dist/commonjs/manifest/classes/adaptation.js +50 -24
  297. package/dist/commonjs/manifest/classes/codec_support_cache.d.ts +45 -0
  298. package/dist/commonjs/manifest/classes/codec_support_cache.d.ts.map +1 -0
  299. package/dist/commonjs/manifest/classes/codec_support_cache.js +84 -0
  300. package/dist/commonjs/manifest/classes/index.d.ts +2 -2
  301. package/dist/commonjs/manifest/classes/index.d.ts.map +1 -1
  302. package/dist/commonjs/manifest/classes/manifest.d.ts +28 -6
  303. package/dist/commonjs/manifest/classes/manifest.d.ts.map +1 -1
  304. package/dist/commonjs/manifest/classes/manifest.js +46 -7
  305. package/dist/commonjs/manifest/classes/period.d.ts +6 -7
  306. package/dist/commonjs/manifest/classes/period.d.ts.map +1 -1
  307. package/dist/commonjs/manifest/classes/period.js +23 -14
  308. package/dist/commonjs/manifest/classes/representation.d.ts +10 -11
  309. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  310. package/dist/commonjs/manifest/classes/representation.js +64 -68
  311. package/dist/commonjs/manifest/classes/update_period_in_place.js +1 -1
  312. package/dist/commonjs/manifest/classes/update_periods.js +2 -3
  313. package/dist/commonjs/manifest/classes/utils.js +2 -3
  314. package/dist/commonjs/manifest/index.d.ts +2 -2
  315. package/dist/commonjs/manifest/types.d.ts +32 -5
  316. package/dist/commonjs/manifest/types.d.ts.map +1 -1
  317. package/dist/commonjs/manifest/utils.d.ts +1 -1
  318. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  319. package/dist/commonjs/manifest/utils.js +36 -20
  320. package/dist/commonjs/minimal.d.ts.map +1 -1
  321. package/dist/commonjs/minimal.js +2 -8
  322. package/dist/commonjs/mse/index.d.ts +1 -1
  323. package/dist/commonjs/mse/index.d.ts.map +1 -1
  324. package/dist/commonjs/mse/main_media_source_interface.d.ts +2 -1
  325. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  326. package/dist/commonjs/mse/main_media_source_interface.js +5 -4
  327. package/dist/commonjs/mse/types.d.ts +0 -29
  328. package/dist/commonjs/mse/types.d.ts.map +1 -1
  329. package/dist/commonjs/mse/utils/end_of_stream.d.ts +3 -2
  330. package/dist/commonjs/mse/utils/end_of_stream.d.ts.map +1 -1
  331. package/dist/commonjs/mse/utils/end_of_stream.js +2 -3
  332. package/dist/commonjs/mse/utils/media_source_duration_updater.d.ts +2 -1
  333. package/dist/commonjs/mse/utils/media_source_duration_updater.d.ts.map +1 -1
  334. package/dist/commonjs/multithread_types.d.ts +26 -14
  335. package/dist/commonjs/multithread_types.d.ts.map +1 -1
  336. package/dist/commonjs/parsers/containers/isobmff/create_box.js +2 -3
  337. package/dist/commonjs/parsers/containers/isobmff/drm/playready.js +1 -2
  338. package/dist/commonjs/parsers/containers/isobmff/extract_complete_chunks.js +1 -1
  339. package/dist/commonjs/parsers/containers/isobmff/find_complete_box.js +1 -1
  340. package/dist/commonjs/parsers/containers/isobmff/get_box.js +7 -8
  341. package/dist/commonjs/parsers/containers/isobmff/read.js +5 -6
  342. package/dist/commonjs/parsers/containers/isobmff/take_pssh_out.js +2 -3
  343. package/dist/commonjs/parsers/containers/isobmff/utils.js +9 -9
  344. package/dist/commonjs/parsers/containers/matroska/utils.js +2 -3
  345. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -2
  346. package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
  347. package/dist/commonjs/parsers/manifest/dash/common/get_clock_offset.js +1 -1
  348. package/dist/commonjs/parsers/manifest/dash/common/get_hdr_information.js +1 -2
  349. package/dist/commonjs/parsers/manifest/dash/common/get_http_utc-timing_url.js +1 -1
  350. package/dist/commonjs/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +1 -1
  351. package/dist/commonjs/parsers/manifest/dash/common/get_periods_time_infos.js +1 -1
  352. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_init_segment.js +1 -1
  353. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +1 -1
  354. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts.map +1 -1
  355. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +1 -1
  356. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +1 -1
  357. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +1 -1
  358. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +1 -1
  359. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +1 -1
  360. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +2 -3
  361. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts.map +1 -1
  362. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +4 -4
  363. package/dist/commonjs/parsers/manifest/dash/common/indexes/tokens.js +3 -4
  364. package/dist/commonjs/parsers/manifest/dash/common/indexes/utils.js +1 -2
  365. package/dist/commonjs/parsers/manifest/dash/common/infer_adaptation_type.js +1 -1
  366. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +6 -2
  367. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts.map +1 -1
  368. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -3
  369. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +1 -1
  370. package/dist/commonjs/parsers/manifest/dash/common/parse_availability_start_time.js +1 -1
  371. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +16 -2
  372. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +1 -1
  373. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +1 -1
  374. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +1 -1
  375. package/dist/commonjs/parsers/manifest/dash/common/resolve_base_urls.js +1 -1
  376. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.js +1 -2
  377. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/BaseURL.js +1 -1
  378. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentComponent.js +1 -1
  379. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentProtection.js +1 -1
  380. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/EventStream.js +1 -2
  381. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Initialization.js +1 -1
  382. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.js +1 -2
  383. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Period.js +1 -2
  384. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.js +1 -2
  385. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentBase.js +1 -1
  386. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentList.js +1 -1
  387. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTemplate.js +1 -1
  388. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTimeline.js +1 -1
  389. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentURL.js +1 -1
  390. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts.map +1 -1
  391. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.js +13 -13
  392. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/parse_from_xml_string.js +1 -1
  393. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.js +1 -2
  394. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/BaseURL.js +1 -1
  395. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/ContentComponent.js +1 -1
  396. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/ContentProtection.js +1 -1
  397. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/EventStream.js +1 -1
  398. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Initialization.js +1 -1
  399. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/MPD.js +1 -2
  400. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Period.js +1 -2
  401. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Representation.js +1 -2
  402. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentBase.js +1 -1
  403. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentList.js +1 -1
  404. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTemplate.js +1 -1
  405. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTimeline.js +1 -1
  406. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentURL.js +1 -1
  407. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts.map +1 -1
  408. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.js +12 -12
  409. package/dist/commonjs/parsers/manifest/dash/native-parser/parse_from_document.js +1 -1
  410. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +2 -3
  411. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +1 -2
  412. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +1 -2
  413. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +1 -2
  414. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -3
  415. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +2 -3
  416. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +2 -3
  417. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +2 -3
  418. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +1 -2
  419. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +1 -2
  420. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +1 -2
  421. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +1 -2
  422. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +1 -2
  423. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +1 -2
  424. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/root.js +1 -2
  425. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/utils.js +2 -3
  426. package/dist/commonjs/parsers/manifest/local/parse_local_manifest.js +1 -1
  427. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +1 -1
  428. package/dist/commonjs/parsers/manifest/smooth/get_codecs.js +2 -3
  429. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +1 -1
  430. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +1 -1
  431. package/dist/commonjs/parsers/manifest/smooth/utils/add_segment_infos.js +1 -1
  432. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.js +1 -1
  433. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +1 -1
  434. package/dist/commonjs/parsers/manifest/smooth/utils/tokens.js +2 -3
  435. package/dist/commonjs/parsers/manifest/utils/check_manifest_ids.js +1 -1
  436. package/dist/commonjs/parsers/manifest/utils/clear_timeline_from_position.js +1 -1
  437. package/dist/commonjs/parsers/manifest/utils/get_first_time_from_adaptation.js +1 -1
  438. package/dist/commonjs/parsers/manifest/utils/get_last_time_from_adaptation.js +1 -1
  439. package/dist/commonjs/parsers/manifest/utils/get_maximum_positions.js +1 -1
  440. package/dist/commonjs/parsers/manifest/utils/get_minimum_position.js +1 -1
  441. package/dist/commonjs/parsers/manifest/utils/index_helpers.js +6 -7
  442. package/dist/commonjs/parsers/manifest/utils/update_segment_timeline.js +1 -1
  443. package/dist/commonjs/parsers/texttracks/srt/find_end_of_cue_block.js +1 -1
  444. package/dist/commonjs/parsers/texttracks/srt/get_cue_blocks.js +1 -1
  445. package/dist/commonjs/parsers/texttracks/srt/html.js +1 -1
  446. package/dist/commonjs/parsers/texttracks/srt/native.js +1 -1
  447. package/dist/commonjs/parsers/texttracks/srt/parse_cue.js +1 -1
  448. package/dist/commonjs/parsers/texttracks/srt/parse_timestamp.js +1 -1
  449. package/dist/commonjs/parsers/texttracks/ttml/get_parameters.js +1 -1
  450. package/dist/commonjs/parsers/texttracks/ttml/get_styling.js +2 -3
  451. package/dist/commonjs/parsers/texttracks/ttml/get_time_delimiters.js +1 -1
  452. package/dist/commonjs/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -3
  453. package/dist/commonjs/parsers/texttracks/ttml/html/apply_extent.js +1 -1
  454. package/dist/commonjs/parsers/texttracks/ttml/html/apply_font_size.js +1 -1
  455. package/dist/commonjs/parsers/texttracks/ttml/html/apply_line_height.js +1 -1
  456. package/dist/commonjs/parsers/texttracks/ttml/html/apply_origin.js +1 -1
  457. package/dist/commonjs/parsers/texttracks/ttml/html/apply_padding.js +1 -1
  458. package/dist/commonjs/parsers/texttracks/ttml/html/create_element.js +1 -1
  459. package/dist/commonjs/parsers/texttracks/ttml/html/generate_css_test_outline.js +1 -1
  460. package/dist/commonjs/parsers/texttracks/ttml/html/parse_cue.js +1 -1
  461. package/dist/commonjs/parsers/texttracks/ttml/html/parse_ttml_to_div.js +1 -1
  462. package/dist/commonjs/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +1 -1
  463. package/dist/commonjs/parsers/texttracks/ttml/native/parse_cue.js +1 -1
  464. package/dist/commonjs/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +1 -1
  465. package/dist/commonjs/parsers/texttracks/ttml/parse_ttml.js +1 -1
  466. package/dist/commonjs/parsers/texttracks/ttml/resolve_styles_inheritance.js +1 -1
  467. package/dist/commonjs/parsers/texttracks/ttml/xml_utils.js +9 -10
  468. package/dist/commonjs/parsers/texttracks/webvtt/get_cue_blocks.js +1 -1
  469. package/dist/commonjs/parsers/texttracks/webvtt/get_style_blocks.js +1 -1
  470. package/dist/commonjs/parsers/texttracks/webvtt/html/convert_payload_to_html.js +1 -1
  471. package/dist/commonjs/parsers/texttracks/webvtt/html/create_default_style_elements.js +1 -1
  472. package/dist/commonjs/parsers/texttracks/webvtt/html/create_style_attribute.js +1 -1
  473. package/dist/commonjs/parsers/texttracks/webvtt/html/create_styled_element.js +1 -1
  474. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_style_block.js +1 -1
  475. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +1 -1
  476. package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.js +1 -1
  477. package/dist/commonjs/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +1 -1
  478. package/dist/commonjs/parsers/texttracks/webvtt/native/set_settings_on_cue.js +1 -1
  479. package/dist/commonjs/parsers/texttracks/webvtt/native/to_native_cue.js +1 -1
  480. package/dist/commonjs/parsers/texttracks/webvtt/parse_cue_block.js +1 -1
  481. package/dist/commonjs/parsers/texttracks/webvtt/parse_timestamp.js +1 -1
  482. package/dist/commonjs/parsers/texttracks/webvtt/utils.js +6 -7
  483. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +2 -1
  484. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  485. package/dist/commonjs/playback_observer/media_element_playback_observer.js +3 -5
  486. package/dist/commonjs/playback_observer/utils/generate_read_only_observer.js +1 -1
  487. package/dist/commonjs/public_types.d.ts +77 -0
  488. package/dist/commonjs/public_types.d.ts.map +1 -1
  489. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.d.ts.map +1 -1
  490. package/dist/commonjs/tools/parseBIFThumbnails/index.js +1 -1
  491. package/dist/commonjs/transports/dash/construct_segment_url.js +1 -1
  492. package/dist/commonjs/transports/dash/get_events_out_of_emsgs.js +1 -1
  493. package/dist/commonjs/transports/dash/init_segment_loader.d.ts +2 -2
  494. package/dist/commonjs/transports/dash/init_segment_loader.d.ts.map +1 -1
  495. package/dist/commonjs/transports/dash/init_segment_loader.js +26 -7
  496. package/dist/commonjs/transports/dash/integrity_checks.d.ts +18 -0
  497. package/dist/commonjs/transports/dash/integrity_checks.d.ts.map +1 -0
  498. package/dist/commonjs/transports/dash/integrity_checks.js +209 -0
  499. package/dist/commonjs/transports/dash/{low_latency_segment_loader.d.ts → load_chunked_segment_data.d.ts} +14 -5
  500. package/dist/commonjs/transports/dash/load_chunked_segment_data.d.ts.map +1 -0
  501. package/dist/commonjs/transports/dash/load_chunked_segment_data.js +126 -0
  502. package/dist/commonjs/transports/dash/manifest_parser.js +1 -1
  503. package/dist/commonjs/transports/dash/pipelines.d.ts.map +1 -1
  504. package/dist/commonjs/transports/dash/pipelines.js +4 -2
  505. package/dist/commonjs/transports/dash/segment_loader.d.ts +2 -2
  506. package/dist/commonjs/transports/dash/segment_loader.d.ts.map +1 -1
  507. package/dist/commonjs/transports/dash/segment_loader.js +105 -31
  508. package/dist/commonjs/transports/dash/segment_parser.js +1 -1
  509. package/dist/commonjs/transports/dash/text_loader.d.ts.map +1 -1
  510. package/dist/commonjs/transports/dash/text_loader.js +122 -46
  511. package/dist/commonjs/transports/dash/text_parser.js +1 -1
  512. package/dist/commonjs/transports/local/pipelines.d.ts.map +1 -1
  513. package/dist/commonjs/transports/local/pipelines.js +2 -1
  514. package/dist/commonjs/transports/local/segment_loader.js +1 -1
  515. package/dist/commonjs/transports/local/segment_parser.js +1 -1
  516. package/dist/commonjs/transports/local/text_parser.js +1 -1
  517. package/dist/commonjs/transports/metaplaylist/manifest_loader.d.ts.map +1 -1
  518. package/dist/commonjs/transports/metaplaylist/manifest_loader.js +12 -4
  519. package/dist/commonjs/transports/metaplaylist/pipelines.d.ts.map +1 -1
  520. package/dist/commonjs/transports/metaplaylist/pipelines.js +3 -1
  521. package/dist/commonjs/transports/smooth/extract_timings_infos.js +1 -1
  522. package/dist/commonjs/transports/smooth/is_mp4_embedded_track.js +1 -1
  523. package/dist/commonjs/transports/smooth/isobmff/create_audio_init_segment.js +1 -1
  524. package/dist/commonjs/transports/smooth/isobmff/create_boxes.js +23 -24
  525. package/dist/commonjs/transports/smooth/isobmff/create_init_segment.js +1 -1
  526. package/dist/commonjs/transports/smooth/isobmff/create_traf_box.js +1 -1
  527. package/dist/commonjs/transports/smooth/isobmff/create_video_init_segment.js +1 -1
  528. package/dist/commonjs/transports/smooth/isobmff/get_aaces_header.js +1 -1
  529. package/dist/commonjs/transports/smooth/isobmff/parse_tfrf.js +1 -1
  530. package/dist/commonjs/transports/smooth/isobmff/parse_tfxd.js +1 -1
  531. package/dist/commonjs/transports/smooth/isobmff/patch_segment.js +1 -1
  532. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  533. package/dist/commonjs/transports/smooth/pipelines.js +17 -4
  534. package/dist/commonjs/transports/smooth/segment_loader.d.ts.map +1 -1
  535. package/dist/commonjs/transports/smooth/segment_loader.js +82 -26
  536. package/dist/commonjs/transports/smooth/utils.js +2 -3
  537. package/dist/commonjs/transports/types.d.ts +17 -1
  538. package/dist/commonjs/transports/types.d.ts.map +1 -1
  539. package/dist/commonjs/transports/utils/add_query_string.d.ts +13 -0
  540. package/dist/commonjs/transports/utils/add_query_string.d.ts.map +1 -0
  541. package/dist/commonjs/transports/utils/add_query_string.js +54 -0
  542. package/dist/commonjs/transports/utils/byte_range.js +1 -1
  543. package/dist/commonjs/transports/utils/call_custom_manifest_loader.js +3 -3
  544. package/dist/commonjs/transports/utils/check_isobmff_integrity.js +1 -1
  545. package/dist/commonjs/transports/utils/generate_manifest_loader.d.ts +4 -4
  546. package/dist/commonjs/transports/utils/generate_manifest_loader.d.ts.map +1 -1
  547. package/dist/commonjs/transports/utils/generate_manifest_loader.js +20 -8
  548. package/dist/commonjs/transports/utils/get_isobmff_timing_infos.js +1 -1
  549. package/dist/commonjs/transports/utils/infer_segment_container.js +1 -1
  550. package/dist/commonjs/transports/utils/parse_text_track.js +5 -6
  551. package/dist/commonjs/utils/are_arrays_of_numbers_equal.js +1 -1
  552. package/dist/commonjs/utils/are_codecs_compatible.d.ts +4 -0
  553. package/dist/commonjs/utils/are_codecs_compatible.d.ts.map +1 -1
  554. package/dist/commonjs/utils/are_codecs_compatible.js +18 -8
  555. package/dist/commonjs/utils/array_find.js +1 -1
  556. package/dist/commonjs/utils/array_find_index.js +1 -1
  557. package/dist/commonjs/utils/array_includes.js +1 -1
  558. package/dist/commonjs/utils/assert.js +4 -4
  559. package/dist/commonjs/utils/base64.js +2 -3
  560. package/dist/commonjs/utils/byte_parsing.js +15 -16
  561. package/dist/commonjs/utils/cancellable_sleep.js +1 -1
  562. package/dist/commonjs/utils/create_cancellable_promise.js +1 -1
  563. package/dist/commonjs/utils/create_uuid.d.ts +9 -0
  564. package/dist/commonjs/utils/create_uuid.d.ts.map +1 -0
  565. package/dist/commonjs/utils/create_uuid.js +32 -0
  566. package/dist/commonjs/utils/deep_merge.js +1 -1
  567. package/dist/commonjs/utils/flat_map.js +1 -1
  568. package/dist/commonjs/utils/get_fuzzed_delay.js +1 -1
  569. package/dist/commonjs/utils/hash_buffer.js +1 -1
  570. package/dist/commonjs/utils/id_generator.js +1 -1
  571. package/dist/commonjs/utils/is_non_empty_string.js +1 -1
  572. package/dist/commonjs/utils/is_null_or_undefined.js +1 -1
  573. package/dist/commonjs/utils/languages/normalize.js +2 -3
  574. package/dist/commonjs/utils/logger.d.ts +21 -4
  575. package/dist/commonjs/utils/logger.d.ts.map +1 -1
  576. package/dist/commonjs/utils/logger.js +106 -36
  577. package/dist/commonjs/utils/monotonic_timestamp.js +1 -2
  578. package/dist/commonjs/utils/noop.js +1 -1
  579. package/dist/commonjs/utils/object_values.js +1 -2
  580. package/dist/commonjs/utils/ranges.js +22 -23
  581. package/dist/commonjs/utils/reference.js +1 -2
  582. package/dist/commonjs/utils/request/fetch.d.ts +2 -4
  583. package/dist/commonjs/utils/request/fetch.d.ts.map +1 -1
  584. package/dist/commonjs/utils/request/fetch.js +2 -3
  585. package/dist/commonjs/utils/request/xhr.d.ts +1 -3
  586. package/dist/commonjs/utils/request/xhr.d.ts.map +1 -1
  587. package/dist/commonjs/utils/request/xhr.js +1 -1
  588. package/dist/commonjs/utils/resolve_url.js +2 -3
  589. package/dist/commonjs/utils/retry_promise_with_backoff.js +2 -3
  590. package/dist/commonjs/utils/sleep.js +1 -1
  591. package/dist/commonjs/utils/starts_with.js +1 -1
  592. package/dist/commonjs/utils/string_parsing.js +10 -11
  593. package/dist/commonjs/utils/sync_or_async.d.ts +1 -1
  594. package/dist/commonjs/utils/sync_or_async.d.ts.map +1 -1
  595. package/dist/commonjs/utils/warn_once.js +1 -1
  596. package/dist/commonjs/utils/weak_map_memory.js +1 -1
  597. package/dist/commonjs/utils/wrapInPromise.js +1 -1
  598. package/dist/commonjs/utils/xml-parser.js +5 -6
  599. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  600. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  601. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  602. package/dist/es2017/compat/add_text_track.d.ts +2 -2
  603. package/dist/es2017/compat/add_text_track.d.ts.map +1 -1
  604. package/dist/es2017/compat/browser_compatibility_types.d.ts +196 -13
  605. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  606. package/dist/es2017/compat/browser_compatibility_types.js +29 -0
  607. package/dist/es2017/compat/clear_element_src.d.ts +2 -1
  608. package/dist/es2017/compat/clear_element_src.d.ts.map +1 -1
  609. package/dist/es2017/compat/eme/custom_media_keys/ie11_media_keys.d.ts +3 -2
  610. package/dist/es2017/compat/eme/custom_media_keys/ie11_media_keys.d.ts.map +1 -1
  611. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +2 -1
  612. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts.map +1 -1
  613. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.js +1 -2
  614. package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +3 -2
  615. package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts.map +1 -1
  616. package/dist/es2017/compat/eme/custom_media_keys/types.d.ts +5 -1
  617. package/dist/es2017/compat/eme/custom_media_keys/types.d.ts.map +1 -1
  618. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts +4 -3
  619. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
  620. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.js +2 -3
  621. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts.map +1 -1
  622. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +1 -2
  623. package/dist/es2017/compat/eme/eme-api-implementation.d.ts +4 -3
  624. package/dist/es2017/compat/eme/eme-api-implementation.d.ts.map +1 -1
  625. package/dist/es2017/compat/eme/eme-api-implementation.js +19 -5
  626. package/dist/es2017/compat/eme/get_init_data.d.ts +3 -1
  627. package/dist/es2017/compat/eme/get_init_data.d.ts.map +1 -1
  628. package/dist/es2017/compat/eme/get_init_data.js +2 -2
  629. package/dist/es2017/compat/eme/set_media_keys.d.ts +2 -1
  630. package/dist/es2017/compat/eme/set_media_keys.d.ts.map +1 -1
  631. package/dist/es2017/compat/event_listeners.d.ts +26 -24
  632. package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
  633. package/dist/es2017/compat/event_listeners.js +2 -14
  634. package/dist/es2017/compat/get_start_date.d.ts +2 -1
  635. package/dist/es2017/compat/get_start_date.d.ts.map +1 -1
  636. package/dist/es2017/config.d.ts +1 -1
  637. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts +121 -0
  638. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -0
  639. package/dist/es2017/core/cmcd/cmcd_data_builder.js +313 -0
  640. package/dist/es2017/core/cmcd/index.d.ts +4 -0
  641. package/dist/es2017/core/cmcd/index.d.ts.map +1 -0
  642. package/dist/es2017/core/cmcd/index.js +2 -0
  643. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +8 -0
  644. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  645. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +7 -2
  646. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +43 -23
  647. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  648. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +21 -33
  649. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -3
  650. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts.map +1 -1
  651. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.js +14 -6
  652. package/dist/es2017/core/main/worker/content_preparer.d.ts +7 -0
  653. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -1
  654. package/dist/es2017/core/main/worker/content_preparer.js +5 -2
  655. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  656. package/dist/es2017/core/main/worker/worker_main.js +19 -18
  657. package/dist/es2017/default_config.d.ts +1 -1
  658. package/dist/es2017/default_config.d.ts.map +1 -1
  659. package/dist/es2017/default_config.js +1 -0
  660. package/dist/es2017/experimental/features/local.d.ts.map +1 -1
  661. package/dist/es2017/experimental/features/local.js +0 -2
  662. package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
  663. package/dist/es2017/experimental/features/metaplaylist.js +0 -2
  664. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +2 -1
  665. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  666. package/dist/es2017/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -1
  667. package/dist/es2017/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts.map +1 -1
  668. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
  669. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +14 -8
  670. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  671. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.js +1 -1
  672. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  673. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +1 -0
  674. package/dist/es2017/features/features_object.d.ts.map +1 -1
  675. package/dist/es2017/features/features_object.js +0 -1
  676. package/dist/es2017/features/list/dash.d.ts.map +1 -1
  677. package/dist/es2017/features/list/dash.js +0 -2
  678. package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
  679. package/dist/es2017/features/list/dash_wasm.js +0 -2
  680. package/dist/es2017/features/list/smooth.d.ts.map +1 -1
  681. package/dist/es2017/features/list/smooth.js +0 -2
  682. package/dist/es2017/features/types.d.ts +3 -11
  683. package/dist/es2017/features/types.d.ts.map +1 -1
  684. package/dist/es2017/index.js +2 -2
  685. package/dist/es2017/main_thread/api/option_utils.d.ts +9 -2
  686. package/dist/es2017/main_thread/api/option_utils.d.ts.map +1 -1
  687. package/dist/es2017/main_thread/api/option_utils.js +4 -5
  688. package/dist/es2017/main_thread/api/public_api.d.ts +23 -2
  689. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  690. package/dist/es2017/main_thread/api/public_api.js +43 -11
  691. package/dist/es2017/main_thread/api/utils.d.ts +5 -4
  692. package/dist/es2017/main_thread/api/utils.d.ts.map +1 -1
  693. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts +3 -2
  694. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts.map +1 -1
  695. package/dist/es2017/main_thread/decrypt/clear_on_stop.d.ts +2 -1
  696. package/dist/es2017/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  697. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts +26 -1
  698. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  699. package/dist/es2017/main_thread/decrypt/content_decryptor.js +70 -0
  700. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.d.ts +2 -1
  701. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  702. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts +17 -2
  703. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  704. package/dist/es2017/main_thread/decrypt/find_key_system.js +48 -0
  705. package/dist/es2017/main_thread/decrypt/get_key_system_configuration.d.ts +2 -1
  706. package/dist/es2017/main_thread/decrypt/get_key_system_configuration.d.ts.map +1 -1
  707. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts +5 -1
  708. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  709. package/dist/es2017/main_thread/decrypt/get_media_keys.js +3 -1
  710. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts +2 -1
  711. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  712. package/dist/es2017/main_thread/decrypt/types.d.ts +1 -0
  713. package/dist/es2017/main_thread/decrypt/types.d.ts.map +1 -1
  714. package/dist/es2017/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts +14 -0
  715. package/dist/es2017/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts.map +1 -0
  716. package/dist/es2017/main_thread/decrypt/utils/is_compatible_codec_supported.js +28 -0
  717. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts +4 -3
  718. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +1 -1
  719. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts +6 -1
  720. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  721. package/dist/es2017/main_thread/init/directfile_content_initializer.js +1 -12
  722. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +62 -4
  723. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  724. package/dist/es2017/main_thread/init/media_source_content_initializer.js +142 -19
  725. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +46 -4
  726. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  727. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +67 -133
  728. package/dist/es2017/main_thread/init/types.d.ts +6 -1
  729. package/dist/es2017/main_thread/init/types.d.ts.map +1 -1
  730. package/dist/es2017/main_thread/init/utils/create_media_source.d.ts +3 -2
  731. package/dist/es2017/main_thread/init/utils/create_media_source.d.ts.map +1 -1
  732. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts +2 -1
  733. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts.map +1 -1
  734. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts +2 -1
  735. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  736. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.d.ts +17 -6
  737. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.d.ts.map +1 -1
  738. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.js +16 -21
  739. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +2 -1
  740. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  741. package/dist/es2017/main_thread/init/utils/throw_on_media_error.d.ts +2 -1
  742. package/dist/es2017/main_thread/init/utils/throw_on_media_error.d.ts.map +1 -1
  743. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +33 -0
  744. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -0
  745. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +149 -0
  746. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.d.ts +2 -1
  747. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.d.ts.map +1 -1
  748. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +2 -1
  749. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  750. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts +6 -1
  751. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  752. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts +5 -2
  753. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  754. package/dist/es2017/main_thread/tracks_store/track_dispatcher.js +7 -26
  755. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +49 -25
  756. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  757. package/dist/es2017/main_thread/tracks_store/tracks_store.js +221 -98
  758. package/dist/es2017/manifest/classes/adaptation.d.ts +9 -9
  759. package/dist/es2017/manifest/classes/adaptation.d.ts.map +1 -1
  760. package/dist/es2017/manifest/classes/adaptation.js +50 -24
  761. package/dist/es2017/manifest/classes/codec_support_cache.d.ts +45 -0
  762. package/dist/es2017/manifest/classes/codec_support_cache.d.ts.map +1 -0
  763. package/dist/es2017/manifest/classes/codec_support_cache.js +58 -0
  764. package/dist/es2017/manifest/classes/index.d.ts +2 -2
  765. package/dist/es2017/manifest/classes/index.d.ts.map +1 -1
  766. package/dist/es2017/manifest/classes/manifest.d.ts +28 -6
  767. package/dist/es2017/manifest/classes/manifest.d.ts.map +1 -1
  768. package/dist/es2017/manifest/classes/manifest.js +45 -7
  769. package/dist/es2017/manifest/classes/period.d.ts +6 -7
  770. package/dist/es2017/manifest/classes/period.d.ts.map +1 -1
  771. package/dist/es2017/manifest/classes/period.js +23 -14
  772. package/dist/es2017/manifest/classes/representation.d.ts +10 -11
  773. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  774. package/dist/es2017/manifest/classes/representation.js +56 -60
  775. package/dist/es2017/manifest/index.d.ts +2 -2
  776. package/dist/es2017/manifest/types.d.ts +32 -5
  777. package/dist/es2017/manifest/types.d.ts.map +1 -1
  778. package/dist/es2017/manifest/utils.d.ts +1 -1
  779. package/dist/es2017/manifest/utils.d.ts.map +1 -1
  780. package/dist/es2017/manifest/utils.js +19 -3
  781. package/dist/es2017/minimal.d.ts.map +1 -1
  782. package/dist/es2017/minimal.js +2 -8
  783. package/dist/es2017/mse/index.d.ts +1 -1
  784. package/dist/es2017/mse/index.d.ts.map +1 -1
  785. package/dist/es2017/mse/main_media_source_interface.d.ts +2 -1
  786. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  787. package/dist/es2017/mse/main_media_source_interface.js +5 -4
  788. package/dist/es2017/mse/types.d.ts +0 -29
  789. package/dist/es2017/mse/types.d.ts.map +1 -1
  790. package/dist/es2017/mse/utils/end_of_stream.d.ts +3 -2
  791. package/dist/es2017/mse/utils/end_of_stream.d.ts.map +1 -1
  792. package/dist/es2017/mse/utils/media_source_duration_updater.d.ts +2 -1
  793. package/dist/es2017/mse/utils/media_source_duration_updater.d.ts.map +1 -1
  794. package/dist/es2017/multithread_types.d.ts +26 -14
  795. package/dist/es2017/multithread_types.d.ts.map +1 -1
  796. package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts.map +1 -1
  797. package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +1 -1
  798. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts.map +1 -1
  799. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +2 -1
  800. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +6 -2
  801. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts.map +1 -1
  802. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -3
  803. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +15 -1
  804. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts.map +1 -1
  805. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts.map +1 -1
  806. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +2 -1
  807. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  808. package/dist/es2017/playback_observer/media_element_playback_observer.js +3 -5
  809. package/dist/es2017/public_types.d.ts +77 -0
  810. package/dist/es2017/public_types.d.ts.map +1 -1
  811. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.d.ts.map +1 -1
  812. package/dist/es2017/transports/dash/init_segment_loader.d.ts +2 -2
  813. package/dist/es2017/transports/dash/init_segment_loader.d.ts.map +1 -1
  814. package/dist/es2017/transports/dash/init_segment_loader.js +14 -6
  815. package/dist/es2017/transports/dash/integrity_checks.d.ts +18 -0
  816. package/dist/es2017/transports/dash/integrity_checks.d.ts.map +1 -0
  817. package/dist/es2017/transports/dash/integrity_checks.js +150 -0
  818. package/dist/es2017/transports/dash/{low_latency_segment_loader.d.ts → load_chunked_segment_data.d.ts} +14 -5
  819. package/dist/es2017/transports/dash/load_chunked_segment_data.d.ts.map +1 -0
  820. package/dist/es2017/transports/dash/{low_latency_segment_loader.js → load_chunked_segment_data.js} +15 -12
  821. package/dist/es2017/transports/dash/pipelines.d.ts.map +1 -1
  822. package/dist/es2017/transports/dash/pipelines.js +3 -1
  823. package/dist/es2017/transports/dash/segment_loader.d.ts +2 -2
  824. package/dist/es2017/transports/dash/segment_loader.d.ts.map +1 -1
  825. package/dist/es2017/transports/dash/segment_loader.js +29 -10
  826. package/dist/es2017/transports/dash/text_loader.d.ts.map +1 -1
  827. package/dist/es2017/transports/dash/text_loader.js +40 -20
  828. package/dist/es2017/transports/local/pipelines.d.ts.map +1 -1
  829. package/dist/es2017/transports/local/pipelines.js +1 -0
  830. package/dist/es2017/transports/metaplaylist/manifest_loader.d.ts.map +1 -1
  831. package/dist/es2017/transports/metaplaylist/manifest_loader.js +11 -3
  832. package/dist/es2017/transports/metaplaylist/pipelines.d.ts.map +1 -1
  833. package/dist/es2017/transports/metaplaylist/pipelines.js +2 -0
  834. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  835. package/dist/es2017/transports/smooth/pipelines.js +16 -3
  836. package/dist/es2017/transports/smooth/segment_loader.d.ts.map +1 -1
  837. package/dist/es2017/transports/smooth/segment_loader.js +27 -16
  838. package/dist/es2017/transports/types.d.ts +17 -1
  839. package/dist/es2017/transports/types.d.ts.map +1 -1
  840. package/dist/es2017/transports/utils/add_query_string.d.ts +13 -0
  841. package/dist/es2017/transports/utils/add_query_string.d.ts.map +1 -0
  842. package/dist/es2017/transports/utils/add_query_string.js +51 -0
  843. package/dist/es2017/transports/utils/call_custom_manifest_loader.js +2 -2
  844. package/dist/es2017/transports/utils/generate_manifest_loader.d.ts +4 -4
  845. package/dist/es2017/transports/utils/generate_manifest_loader.d.ts.map +1 -1
  846. package/dist/es2017/transports/utils/generate_manifest_loader.js +19 -7
  847. package/dist/es2017/utils/are_codecs_compatible.d.ts +4 -0
  848. package/dist/es2017/utils/are_codecs_compatible.d.ts.map +1 -1
  849. package/dist/es2017/utils/are_codecs_compatible.js +17 -8
  850. package/dist/es2017/utils/create_uuid.d.ts +9 -0
  851. package/dist/es2017/utils/create_uuid.d.ts.map +1 -0
  852. package/dist/es2017/utils/create_uuid.js +29 -0
  853. package/dist/es2017/utils/logger.d.ts +21 -4
  854. package/dist/es2017/utils/logger.d.ts.map +1 -1
  855. package/dist/es2017/utils/logger.js +73 -13
  856. package/dist/es2017/utils/request/fetch.d.ts +2 -4
  857. package/dist/es2017/utils/request/fetch.d.ts.map +1 -1
  858. package/dist/es2017/utils/request/xhr.d.ts +1 -3
  859. package/dist/es2017/utils/request/xhr.d.ts.map +1 -1
  860. package/dist/es2017/utils/sync_or_async.d.ts +1 -1
  861. package/dist/es2017/utils/sync_or_async.d.ts.map +1 -1
  862. package/dist/es2017/utils/weak_map_memory.js +1 -1
  863. package/dist/mpd-parser.wasm +0 -0
  864. package/dist/rx-player.js +18 -17
  865. package/dist/worker.js +6 -5
  866. package/package.json +31 -35
  867. package/src/README.md +23 -20
  868. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  869. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  870. package/src/compat/__tests__/add_text_track.test.ts +4 -3
  871. package/src/compat/__tests__/change_source_buffer_type.test.ts +4 -3
  872. package/src/compat/add_text_track.ts +2 -2
  873. package/src/compat/browser_compatibility_types.ts +247 -13
  874. package/src/compat/clear_element_src.ts +2 -1
  875. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +6 -6
  876. package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +3 -4
  877. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +4 -5
  878. package/src/compat/eme/custom_media_keys/types.ts +6 -1
  879. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +11 -15
  880. package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +2 -3
  881. package/src/compat/eme/eme-api-implementation.ts +40 -9
  882. package/src/compat/eme/get_init_data.ts +5 -3
  883. package/src/compat/eme/set_media_keys.ts +2 -1
  884. package/src/compat/event_listeners.ts +37 -12
  885. package/src/compat/get_start_date.ts +4 -2
  886. package/src/core/README.md +5 -0
  887. package/src/core/cmcd/cmcd_data_builder.ts +597 -0
  888. package/src/core/cmcd/index.ts +7 -0
  889. package/src/core/fetchers/manifest/manifest_fetcher.ts +18 -9
  890. package/src/core/fetchers/segment/segment_fetcher.ts +76 -42
  891. package/src/core/fetchers/segment/segment_fetcher_creator.ts +16 -10
  892. package/src/core/main/README.md +2 -2
  893. package/src/core/main/worker/content_preparer.ts +16 -1
  894. package/src/core/main/worker/worker_main.ts +34 -18
  895. package/src/core/segment_sinks/README.md +1 -1
  896. package/src/core/segment_sinks/inventory/segment_inventory.ts +1 -1
  897. package/src/default_config.ts +1 -0
  898. package/src/experimental/features/__tests__/local.test.ts +0 -3
  899. package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -3
  900. package/src/experimental/features/local.ts +0 -2
  901. package/src/experimental/features/metaplaylist.ts +0 -2
  902. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +2 -1
  903. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +2 -1
  904. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +9 -8
  905. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +1 -1
  906. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +1 -1
  907. package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +1 -0
  908. package/src/features/features_object.ts +0 -1
  909. package/src/features/list/__tests__/dash.test.ts +0 -3
  910. package/src/features/list/__tests__/smooth.test.ts +0 -3
  911. package/src/features/list/dash.ts +0 -2
  912. package/src/features/list/dash_wasm.ts +0 -2
  913. package/src/features/list/smooth.ts +0 -2
  914. package/src/features/types.ts +3 -11
  915. package/src/index.ts +2 -2
  916. package/src/main_thread/README.md +1 -1
  917. package/src/main_thread/api/__tests__/option_utils.test.ts +1 -0
  918. package/src/main_thread/api/__tests__/utils.test.ts +12 -11
  919. package/src/main_thread/api/option_utils.ts +12 -3
  920. package/src/main_thread/api/public_api.ts +55 -13
  921. package/src/main_thread/api/utils.ts +5 -4
  922. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +10 -5
  923. package/src/main_thread/decrypt/attach_media_keys.ts +3 -2
  924. package/src/main_thread/decrypt/clear_on_stop.ts +2 -1
  925. package/src/main_thread/decrypt/content_decryptor.ts +98 -5
  926. package/src/main_thread/decrypt/dispose_decryption_resources.ts +2 -1
  927. package/src/main_thread/decrypt/find_key_system.ts +85 -2
  928. package/src/main_thread/decrypt/get_key_system_configuration.ts +2 -1
  929. package/src/main_thread/decrypt/get_media_keys.ts +8 -2
  930. package/src/main_thread/decrypt/init_media_keys.ts +2 -1
  931. package/src/main_thread/decrypt/types.ts +2 -0
  932. package/src/main_thread/decrypt/utils/__tests__/is_compatible_codec_supported.test.ts +38 -0
  933. package/src/main_thread/decrypt/utils/is_compatible_codec_supported.ts +39 -0
  934. package/src/main_thread/decrypt/utils/media_keys_infos_store.ts +5 -7
  935. package/src/main_thread/init/directfile_content_initializer.ts +5 -13
  936. package/src/main_thread/init/media_source_content_initializer.ts +221 -42
  937. package/src/main_thread/init/multi_thread_content_initializer.ts +144 -151
  938. package/src/main_thread/init/types.ts +6 -1
  939. package/src/main_thread/init/utils/create_media_source.ts +4 -3
  940. package/src/main_thread/init/utils/get_loaded_reference.ts +2 -1
  941. package/src/main_thread/init/utils/initial_seek_and_play.ts +2 -1
  942. package/src/main_thread/init/utils/initialize_content_decryption.ts +40 -33
  943. package/src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts +3 -2
  944. package/src/main_thread/init/utils/throw_on_media_error.ts +2 -2
  945. package/src/main_thread/init/utils/update_manifest_codec_support.ts +193 -0
  946. package/src/main_thread/text_displayer/html/html_text_displayer.ts +3 -2
  947. package/src/main_thread/text_displayer/native/native_text_displayer.ts +6 -3
  948. package/src/main_thread/tracks_store/media_element_tracks_store.ts +4 -4
  949. package/src/main_thread/tracks_store/track_dispatcher.ts +7 -26
  950. package/src/main_thread/tracks_store/tracks_store.ts +314 -184
  951. package/src/manifest/classes/__tests__/adaptation.test.ts +50 -19
  952. package/src/manifest/classes/__tests__/manifest.test.ts +37 -6
  953. package/src/manifest/classes/__tests__/period.test.ts +212 -99
  954. package/src/manifest/classes/__tests__/representation.test.ts +96 -103
  955. package/src/manifest/classes/__tests__/update_period_in_place.test.ts +20 -20
  956. package/src/manifest/classes/adaptation.ts +61 -28
  957. package/src/manifest/classes/codec_support_cache.ts +82 -0
  958. package/src/manifest/classes/index.ts +2 -2
  959. package/src/manifest/classes/manifest.ts +61 -7
  960. package/src/manifest/classes/period.ts +30 -14
  961. package/src/manifest/classes/representation.ts +73 -70
  962. package/src/manifest/index.ts +2 -2
  963. package/src/manifest/types.ts +33 -5
  964. package/src/manifest/utils.ts +25 -4
  965. package/src/minimal.ts +2 -9
  966. package/src/mse/index.ts +0 -1
  967. package/src/mse/main_media_source_interface.ts +11 -8
  968. package/src/mse/types.ts +1 -30
  969. package/src/mse/utils/end_of_stream.ts +9 -4
  970. package/src/mse/utils/media_source_duration_updater.ts +10 -6
  971. package/src/multithread_types.ts +27 -14
  972. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +29 -17
  973. package/src/parsers/manifest/dash/common/indexes/template.ts +3 -1
  974. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +3 -1
  975. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +7 -3
  976. package/src/parsers/manifest/dash/common/parse_mpd.ts +15 -1
  977. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +1 -1
  978. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.ts +6 -2
  979. package/src/playback_observer/media_element_playback_observer.ts +11 -11
  980. package/src/public_types.ts +86 -0
  981. package/src/tools/TextTrackRenderer/text_track_renderer.ts +1 -0
  982. package/src/transports/dash/init_segment_loader.ts +26 -6
  983. package/src/transports/dash/integrity_checks.ts +170 -0
  984. package/src/transports/dash/{low_latency_segment_loader.ts → load_chunked_segment_data.ts} +20 -17
  985. package/src/transports/dash/pipelines.ts +3 -0
  986. package/src/transports/dash/segment_loader.ts +47 -12
  987. package/src/transports/dash/text_loader.ts +50 -21
  988. package/src/transports/local/pipelines.ts +1 -0
  989. package/src/transports/metaplaylist/manifest_loader.ts +14 -3
  990. package/src/transports/metaplaylist/pipelines.ts +2 -0
  991. package/src/transports/smooth/pipelines.ts +19 -3
  992. package/src/transports/smooth/segment_loader.ts +33 -17
  993. package/src/transports/types.ts +19 -0
  994. package/src/transports/utils/__tests__/add_query_string.test.ts +108 -0
  995. package/src/transports/utils/add_query_string.ts +54 -0
  996. package/src/transports/utils/call_custom_manifest_loader.ts +2 -2
  997. package/src/transports/utils/generate_manifest_loader.ts +34 -13
  998. package/src/utils/__tests__/array_find.test.ts +3 -3
  999. package/src/utils/__tests__/array_find_index.test.ts +3 -3
  1000. package/src/utils/__tests__/logger.test.ts +174 -17
  1001. package/src/utils/are_codecs_compatible.ts +19 -11
  1002. package/src/utils/create_uuid.ts +28 -0
  1003. package/src/utils/logger.ts +83 -13
  1004. package/src/utils/request/fetch.ts +3 -3
  1005. package/src/utils/request/xhr.ts +2 -2
  1006. package/src/utils/weak_map_memory.ts +1 -1
  1007. package/dist/commonjs/mse/main_codec_support_prober.d.ts +0 -27
  1008. package/dist/commonjs/mse/main_codec_support_prober.d.ts.map +0 -1
  1009. package/dist/commonjs/mse/main_codec_support_prober.js +0 -44
  1010. package/dist/commonjs/mse/worker_codec_support_prober.d.ts +0 -43
  1011. package/dist/commonjs/mse/worker_codec_support_prober.d.ts.map +0 -1
  1012. package/dist/commonjs/mse/worker_codec_support_prober.js +0 -61
  1013. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.d.ts +0 -25
  1014. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.d.ts.map +0 -1
  1015. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.js +0 -95
  1016. package/dist/commonjs/transports/dash/low_latency_segment_loader.d.ts.map +0 -1
  1017. package/dist/commonjs/transports/dash/low_latency_segment_loader.js +0 -77
  1018. package/dist/es2017/mse/main_codec_support_prober.d.ts +0 -27
  1019. package/dist/es2017/mse/main_codec_support_prober.d.ts.map +0 -1
  1020. package/dist/es2017/mse/main_codec_support_prober.js +0 -41
  1021. package/dist/es2017/mse/worker_codec_support_prober.d.ts +0 -43
  1022. package/dist/es2017/mse/worker_codec_support_prober.d.ts.map +0 -1
  1023. package/dist/es2017/mse/worker_codec_support_prober.js +0 -58
  1024. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.d.ts +0 -25
  1025. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.d.ts.map +0 -1
  1026. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.js +0 -81
  1027. package/dist/es2017/transports/dash/low_latency_segment_loader.d.ts.map +0 -1
  1028. package/src/mse/main_codec_support_prober.ts +0 -52
  1029. package/src/mse/worker_codec_support_prober.ts +0 -75
  1030. package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -97
package/dist/rx-player.js CHANGED
@@ -1,17 +1,18 @@
1
- "use strict";(()=>{var Hm=Object.defineProperty,Wm=Object.defineProperties;var Gm=Object.getOwnPropertyDescriptors;var vl=Object.getOwnPropertySymbols;var qm=Object.prototype.hasOwnProperty,jm=Object.prototype.propertyIsEnumerable;var Rl=(n,e,t)=>e in n?Hm(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ce=(n,e)=>{for(var t in e||(e={}))qm.call(e,t)&&Rl(n,t,e[t]);if(vl)for(var t of vl(e))jm.call(e,t)&&Rl(n,t,e[t]);return n},Se=(n,e)=>Wm(n,Gm(e));var h={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var b={CURRENT_LEVEL:"NONE"};function Mn(){return typeof __RX_PLAYER_DEBUG_MODE__=="boolean"&&__RX_PLAYER_DEBUG_MODE__}function _(n){return n==null}var ie=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(_(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(_(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(h.CURRENT_ENV===h.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Bt=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var Qm=typeof window=="undefined"&&!Bt,Ft=Qm;var ao;Bt?ao=self:Ft?ao=global:ao=window;var re=ao;var Tt=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function Pa(){if(!Ft&&!_(re.WebKitSourceBuffer)&&re.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=re.WebKitSourceBuffer.prototype;for(let t in ie.prototype)ie.prototype.hasOwnProperty(t)&&(e[t]=ie.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){Tt(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend")})},e.appendBuffer=function(t){if(this.updating)throw new Error("updating");this.trigger("updatestart"),this.updating=!0;try{this.append(t)}catch(r){this._emitUpdate("error",r);return}this._emitUpdate("update")}}}var ir=!1,rn=!1,Kt=!1,on=!1,Aa=!1,an=!1,Ca=!1,or=!1,ar=!1,Xm=!1,Zm=!1,Ma=!1,xa=!1,sn=!1,Jm=!1;(function(){var e,t,r;Ft||(typeof re.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?(rn=!0,Kt=!0):navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?Kt=!0:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?ir=!0:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?on=!0:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?an=!0:(Object.prototype.toString.call(re.HTMLElement).indexOf("Constructor")>=0||((t=(e=re.safari)==null?void 0:e.pushNotification)==null?void 0:t.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((r=navigator.vendor)==null?void 0:r.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Aa=!0),/SamsungBrowser/.test(navigator.userAgent)&&(Ca=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?xa=!0:navigator.userAgent.indexOf("PlayStation 5")!==-1?sn=!0:/Tizen/.test(navigator.userAgent)?or=!0:/[Ww]eb[O0]S/.test(navigator.userAgent)?(ar=!0,/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?Zm=!0:(/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent))&&(Xm=!0)):/[Pp]anasonic/.test(navigator.userAgent)?Ma=!0:navigator.userAgent.indexOf("Xbox")!==-1&&(Jm=!0))})();var ep=sn,kl=ep;function wa(n){return n===void 0||n.indexOf("widevine")<0}var tp={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"',"audio/webm;codecs=opus"],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless"},Pl=tp;function np(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r=0;r<e.length;r++){let i=e[r];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&(t[o]=i[o])}return t}var Y=typeof Object.assign=="function"?Object.assign:np;function Oa(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function sr(n,...e){if(e.length===0)return n;let t=e.shift();if(Oa(n)&&Oa(t))for(let r in t)if(Oa(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),sr(i,t[r])}else Y(n,{[r]:t[r]});return sr(n,...e)}var Da=class{constructor(){this._config=Pl}update(e){let t=sr(this._config,e);this._config=t}getCurrent(){return this._config}},rp=new Da,B=rp;function Q(){}var ip="NONE",dr=class extends ie{constructor(){super(),this.error=Q,this.warn=Q,this.info=Q,this.debug=Q,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentLevel=ip}setLevel(e,t){let r,i=this._levels[e];typeof i=="number"?(r=i,this._currentLevel=e):(r=0,this._currentLevel="NONE"),t===void 0?(this.error=r>=this._levels.ERROR?console.error.bind(console):Q,this.warn=r>=this._levels.WARNING?console.warn.bind(console):Q,this.info=r>=this._levels.INFO?console.info.bind(console):Q,this.debug=r>=this._levels.DEBUG?console.log.bind(console):Q):(this.error=r>=this._levels.ERROR?(...o)=>t("ERROR",o):Q,this.warn=r>=this._levels.WARNING?(...o)=>t("WARNING",o):Q,this.info=r>=this._levels.INFO?(...o)=>t("INFO",o):Q,this.debug=r>=this._levels.DEBUG?(...o)=>t("DEBUG",o):Q),this.trigger("onLogLevelChange",this._currentLevel)}getLevel(){return this._currentLevel}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};var op=new dr,m=op;var ap=.016666666666666666;function Al(n,e){return Math.abs(n-e)<ap}function Ml(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function sp(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function dp(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(wl(t,r)){let i=Ml(t,r);n.splice(--e,2,i)}}return n}function La(n,e){return n.end<=e.start}function Cl({start:n,end:e},t){return n<=t&&t<e}function xl(n,e){return Cl(n,e.start)||n.start<e.end&&e.end<n.end||Cl(e,n.start)}function wl(n,e){return Al(e.start,n.end)||Al(e.end,n.start)}function Pe(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function Na(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function up(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function Ol(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function Dl(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function Ll(n,e){let t=Na(n,e);return t!==null?t.end-e:1/0}function so(n,e){let t=up(n,e);return t!==null?t.end-e:1/0}function Vt(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=xl(t,i),a=wl(t,i);if(o||a)t=Ml(t,i),n.splice(r--,1);else if(r===0){if(La(t,n[0]))break}else if(La(n[r-1],t)&&La(t,i))break}return n.splice(r,0,t),dp(sp(n))}function Nl(n,e){let t=[];for(let r=0;r<e.length;r++)xl(n,e[r])&&t.push(e[r]);return t}function Ul(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=Nl(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function uo(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=Nl(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}function pe(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}var lo=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){h.CURRENT_ENV===h.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if((t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),(t==null?void 0:t.emitCurrentValue)===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}(t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return Q;let r=()=>{let a=pe(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function dn(n,e,t){let r=new lo(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var W=lo;var co=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function J(n,e){if(h.DEV===h.CURRENT_ENV&&!n)throw new co(e===void 0?"invalid assertion":e)}function Bl(n,e,t="object"){J(!_(n),`${t} should be an object`);for(let r in e)e.hasOwnProperty(r)&&J(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function Xe(n){throw new co("Unreachable path taken")}var F=class{constructor(){let[e,t]=lp();this._isUsed=!1,this._trigger=e,this.signal=new ur(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new Ae;this._trigger(t)}static isCancellationError(e){return e instanceof Ae}},ur=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("Error while calling clean up listener",r instanceof Error?r.toString():"Unknown error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(J(this.cancellationError!==null),e(this.cancellationError),Q):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},Ae=class n extends Error{constructor(){let e="This task was cancelled.";super(e),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function lp(){let n=Q;return[function(t){n(t)},function(t){n=t}]}var Fl=new W(0);var cp=typeof performance!="undefined"?()=>performance.now()+Fl.getValue():()=>Date.now()+Fl.getValue(),V=cp;function Ua(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var tt=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var lr=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new tt(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR: New last stable representation",e.bitrate),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var Kl=6e3,fp=15e3,mp=3e3,pp=1e3,gp=9e3,cr=class{constructor(e){this._levelsMap=Ua(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=Kl,m.debug("ABR: Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(_(o)){this._currentEstimate=r[0];return}let d=-1;for(let g=0;g<r.length;g++){let S=r[g];if(S===o)d=g;else if(S>o)break}if(d<0||r.length!==t.length){m.info("ABR: Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let c=isFinite(i)?i:0,l=V();if(c<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:l-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+gp){let I=this._blockRaiseDelay+mp;this._blockRaiseDelay=Math.min(I,fp),m.debug("ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality",this._blockRaiseDelay)}else{let I=this._blockRaiseDelay-pp;this._blockRaiseDelay=Math.max(Kl,I),m.debug("ABR: Lowering quality in BufferBasedChooser",this._blockRaiseDelay)}this._lastUnsuitableQualityTimestamp=l;let S=pe(r,I=>I===o);for(let I=S-1;I>=0;I--)if(c>=t[I]){this._currentEstimate=r[I];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&l-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],p=(()=>{for(let g=d+1;g<t.length;g++)if(t[g]>f)return g})();if(p!==void 0){let g=t[p];if(i>=g){m.debug("ABR: Raising quality in BufferBasedChooser",r[p]),this._currentEstimate=r[p];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function X(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function hp(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function fo(n){if(n.progress.length<5)return;let e=new tt(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function Vl(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function Ip(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,c=hp(n,u);if(c.length!==1)return;let l=c[0],f=V(),p=l.content.segment.duration*1.5;if(p=Math.min(p,3e3),p=Math.max(p,12e3),f-l.requestTimestamp<p)return;let g=l.progress.length>0?l.progress[l.progress.length-1]:void 0,S=fo(l);if(g!==void 0&&S!==void 0){let R=Vl(g,S);if((f-g.timestamp)/1e3<=R&&R-d/a>2500)return S}if(!l.content.segment.complete)return;let I=l.content.segment.duration,y=(f-l.requestTimestamp)/1e3,T=y<=(I*1.5+2)/a;if(_(t)||T)return;let v=I/y,E=t.bitrate*Math.min(.7,v);if(i===void 0||E<i)return E}function yp(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=X(e,({content:l})=>l.segment.duration>0&&l.segment.time+l.segment.duration>i);if(o===void 0)return!0;let a=V(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=fo(o);if(s===void 0||d===void 0)return!0;let u=Vl(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var fr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=B.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:c,duration:l}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:p}=B.getCurrent();return isNaN(l)||f+c.getWanted()<l-p?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR: enter starvation mode."),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1),this._inStarvationMode&&(s=Ip(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR: starvation mode emergency estimate:",s),t.reset(),a=_(r)?s:Math.min(s,r.bitrate))),_(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:yp(i,r,this._lowLatencyMode)}};var mr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var pr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let l=zl(e,r);if(l!==null)return l}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR: Guessed Representation validated",d.bitrate),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=V()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),Sp(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let l=zl(e,r);if(l!==null)return l}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&V()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=V();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=fo(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function zl(n,e){let t=n.length,r=pe(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR: Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function Sp(n,e){let t=pe(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR: Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var gr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=B.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=B.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=B.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=B.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}};function Ba(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=pe(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function Fa(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,c;return((u=s.width)!=null?u:0)-((c=d.width)!=null?c:0)}),o=X(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function hr(n){return Object.keys(n).map(e=>n[e])}var xn=typeof Object.values=="function"?Object.values:hr;var Ir=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(_(t)){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR: progress for a request not added");return}t.progress.push(e)}remove(e){if(_(this._currentRequests[e])){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR: can't remove unknown request")}delete this._currentRequests[e]}getRequests(){return xn(this._currentRequests).filter(e=>!_(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function mo(n,e){let t=pe(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var Hl=new W(void 0);Hl.finish();var Wl=new W(1/0);Wl.finish();function Ka(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,c,l){var I,y,T;let{type:f}=s.adaptation,p=o(f),g=(I=t[f])!=null?I:0,S={limitResolution:(y=r.limitResolution[f])!=null?y:Hl,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:Wl};return bp({bandwidthEstimator:p,context:s,currentRepresentation:d,filters:S,initialBitrate:g,playbackObserver:c,representations:u,lowLatencyMode:i},l)};function o(a){let s=e[a];if(_(s)){m.debug("ABR: Creating new BandwidthEstimator for ",a);let d=new gr;return e[a]=d,d}return s}}function bp({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new lr,c=new fr(i!=null?i:0,o),l=new Ir,f=Q,p={metrics:T,requestBegin:v,requestProgress:E,requestEnd:R,addedSegment(k){f(k)}},g=new F;g.linkToSignal(d);let S=I(s.getValue(),g.signal);return s.onUpdate(y,{clearSignal:d}),{estimates:S,callbacks:p};function I(k,A){if(k.length<=1)return new W({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let C=!1,x=k.sort((H,q)=>H.bitrate-q.bitrate),N=new cr(x.map(H=>H.bitrate)),D=new mr,L=new pr(u,D),P=a.getReference().getValue(),M=new W(U());return a.listen(H=>{P=H,O()},{includeLastObservation:!1,clearSignal:A}),f=function(H){if(P===null)return;let{position:q,speed:G}=P,K=H.buffered,ne=so(K,q.getWanted()),{representation:j}=H.content,se=u.getEstimate(j),oe=j.bitrate,z={bufferGap:ne,currentBitrate:oe,currentScore:se,speed:G};N.onAddedSegment(z),O()},A.register(()=>{f=Q}),r.throttleBitrate.onUpdate(O,{clearSignal:A}),r.limitResolution.onUpdate(O,{clearSignal:A}),M;function O(){M.setValue(U())}function U(){let{bufferGap:H,position:q,maximumPosition:G}=P,K=r.limitResolution.getValue(),ne=r.throttleBitrate.getValue(),j=t.getValue(),se=Tp(x,K,ne),oe=l.getRequests(),{bandwidthEstimate:z,bitrateChosen:ae}=c.getBandwidthEstimate(P,n,j,oe,D.bandwidth),$e=u.getLastStableRepresentation(),ye=$e===null?void 0:$e.bitrate/(P.speed>0?P.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:Re,ABR_EXIT_BUFFER_BASED_ALGO:Ut}=B.getCurrent();C&&H<=Ut?C=!1:!C&&isFinite(H)&&H>=Re&&(C=!0);let Qe=mo(se,ae),Fe=N.getLastEstimate(),Ke=Qe.bitrate,gt=null;C&&Fe!==void 0&&Fe>Ke&&(gt=mo(se,Fe),Ke=gt.bitrate);let ht=null;return o&&j!==null&&e.manifest.isDynamic&&G-q.getWanted()<40&&(ht=L.getGuess(x,P,j,Ke,oe)),ht!==null&&ht.bitrate>Ke?(m.debug("ABR: Choosing representation with guess-based estimation.",ht.bitrate,ht.id),D.update(ht,z,2),{bitrate:z,representation:ht,urgent:j===null||ht.bitrate<j.bitrate,knownStableBitrate:ye}):gt!==null?(m.debug("ABR: Choosing representation with buffer-based estimation.",gt.bitrate,gt.id),D.update(gt,z,0),{bitrate:z,representation:gt,urgent:c.isUrgent(gt.bitrate,j,oe,P),knownStableBitrate:ye}):(m.debug("ABR: Choosing representation with bandwidth estimation.",Qe.bitrate,Qe.id),D.update(Qe,z,1),{bitrate:z,representation:Qe,urgent:c.isUrgent(Qe.bitrate,j,oe,P),knownStableBitrate:ye})}}function y(){let k=s.getValue();g.cancel(),g=new F,g.linkToSignal(d),I(k,g.signal).onUpdate(function(x){S.setValue(x)},{clearSignal:g.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:A,segmentDuration:C,size:x,content:N}=k;if(n.addSample(A,x),!N.segment.isInit){let{segment:D,representation:L}=N;if(C===void 0&&!D.complete)return;let P=C!=null?C:D.duration;u.addSample(L,A/1e3,P)}}function v(k){l.add(k)}function E(k){l.addProgress(k)}function R(k){l.remove(k.id)}}function Tp(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=Ba(r,t)),e!==void 0&&(r=Fa(r,e)),r}var Gl=Ka;var nt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Te=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},De={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var Va=typeof Headers=="function"?Headers:null,za=typeof AbortController=="function"?AbortController:null;function po(n){var f,p;let e;if(!_(n.headers))if(_(Va))e=n.headers;else{e=new Va;let g=Object.keys(n.headers);for(let S=0;S<g.length;S++){let I=g[S];e.append(I,n.headers[I])}}m.debug("Fetch: Called with URL",n.url);let t=null,r=!1,i=!1,o=V(),a=_(za)?null:new za;function s(){if(_(a)){m.warn("Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let c=n.cancelSignal.register(function(S){t=S,s()}),l={method:"GET"};if(e!==void 0&&(l.headers=e),l.signal=_(a)?null:a.signal,m.hasLevel("DEBUG")){let g="FETCH: Sending GET "+n.url;n.timeout!==void 0&&(g+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(g+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(g+=" Range="+((p=n.headers)==null?void 0:p.Range)),m.debug(g)}return fetch(n.url,l).then(g=>{if(u!==void 0&&clearTimeout(u),g.status>=300)throw m.warn("Fetch: Request HTTP Error",g.status,g.url),new Te(g.url,g.status,De.ERROR_HTTP_CODE);if(_(g.body))throw new Te(g.url,g.status,De.PARSE_ERROR);let S=g.headers.get("Content-Length"),I=!_(S)&&!isNaN(+S)?+S:void 0,y=g.body.getReader(),T=0;return v();async function v(){let E=await y.read();if(!E.done&&!_(E.value)){T+=E.value.byteLength;let R=V(),k={url:g.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:E.value.byteLength,chunk:E.value.buffer,size:T,totalSize:I};return n.onData(k),v()}else if(E.done){d!==void 0&&clearTimeout(d),c();let R=V();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:g.status,url:g.url}}return v()}}).catch(g=>{throw t!==null?t:(c(),r?(m.warn("Fetch: Request timed out."),new Te(n.url,0,De.TIMEOUT)):i?(m.warn("Fetch: Request connection timed out."),new Te(n.url,0,De.TIMEOUT)):g instanceof Te?g:(m.warn("Fetch: Request Error",g instanceof Error?g.toString():""),new Te(n.url,0,De.ERROR_EVENT)))})}function yr(){return typeof re.fetch=="function"&&!_(za)&&!_(Va)}function w(n){return typeof n=="string"&&n.length>0}var _p="json";function Ha(n){let e={url:n.url,headers:n.headers,responseType:_(n.responseType)?_p:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:c}=e,l=new XMLHttpRequest;l.open("GET",a,!0);let f;u!==void 0&&(l.timeout=u,f=setTimeout(()=>{I(),r(new Te(a,l.status,De.TIMEOUT))},u+3e3));let p;if(c!==void 0&&(p=setTimeout(()=>{I(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(new Te(a,l.status,De.TIMEOUT))},c)),l.responseType=d,l.responseType==="document"&&l.overrideMimeType("text/xml"),!_(s)){let y=s;for(let T in y)y.hasOwnProperty(T)&&l.setRequestHeader(T,y[T])}let g=V(),S=null;if(o!==void 0&&(S=o.register(function(T){I(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(T)}),o.isCancelled()))return;if(l.onerror=function(){I(),r(new Te(a,l.status,De.ERROR_EVENT))},l.ontimeout=function(){I(),r(new Te(a,l.status,De.TIMEOUT))},c!==void 0&&(l.onreadystatechange=function(){l.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(p)}),i!==void 0&&(l.onprogress=function(T){let v=V();i({url:a,duration:v-g,sendingTime:g,currentTime:v,size:T.loaded,totalSize:T.total})}),l.onload=function(T){if(l.readyState===XMLHttpRequest.DONE)if(I(),l.status>=200&&l.status<300){let v=V(),E=l.response instanceof ArrayBuffer?l.response.byteLength:T.total,R=l.status,k=l.responseType,A=w(l.responseURL)?l.responseURL:a,C;if(k==="json"?C=typeof l.response=="object"?l.response:Ep(l.responseText):C=l.response,_(C)){r(new Te(a,l.status,De.PARSE_ERROR));return}t({status:R,url:A,responseType:k,sendingTime:g,receivedTime:v,requestDuration:v-g,size:E,responseData:C})}else r(new Te(a,l.status,De.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let y="XHR: Sending GET "+a;n.responseType!==void 0&&(y+=" type="+n.responseType),u!==void 0&&(y+=" to="+String(u/1e3)),c!==void 0&&(y+=" cto="+String(c/1e3)),(s==null?void 0:s.Range)!==void 0&&(y+=" Range="+(s==null?void 0:s.Range)),m.debug(y)}l.send();function I(){f!==void 0&&clearTimeout(f),p!==void 0&&clearTimeout(p),S!==null&&S()}})}function Ep(n){try{return JSON.parse(n)}catch(e){return null}}var be=Ha;var un=De,Ze={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},Wa={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE"};function ut(n,e){return`${n}: ${e}`}var fe=class n extends Error{constructor(e,t,r){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=Ze.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,typeof(r==null?void 0:r.keyStatuses)=="string"&&(this.keyStatuses=r.keyStatuses)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses}}};var Z=class n extends Error{constructor(e,t,r){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=Ze.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var rt=class n extends Error{constructor(e,t){super(ut(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=Ze.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===un.ERROR_HTTP_CODE&&this.status===e}serialize(){return{name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var Ve=class n extends Error{constructor(e,t){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=Ze.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage}}};function zt(n){return(n instanceof fe||n instanceof Z||n instanceof Ve||n instanceof rt)&&Object.keys(Ze).indexOf(n.type)>=0}function xe(n,{defaultCode:e,defaultReason:t}){if(zt(n))return n;let r=n instanceof Error?n.toString():t;return new Ve(e,r)}var it=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var vp={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},ql=vp;var Rp={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},jl=Rp;function kp(n){if(_(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=Pp(t);return w(r)?r:n}function Pp(n){let e;switch(n.length){case 2:e=ql[n];break;case 3:e=jl[n];break}return e}var Yl=kp;var Sr=Yl;var Ap={dashParsers:{wasm:null,native:null,fastJs:null},codecSupportProber:null,createDebugElement:null,directfile:null,decrypt:null,htmlTextDisplayer:null,htmlTextTracksParsers:{},mainThreadMediaSourceInit:null,multithread:null,nativeTextDisplayer:null,nativeTextTracksParsers:{},transports:{}},br=Ap;function go(n){for(let e=0;e<n.length;e++){let t=n[e];if(typeof t=="function")t(br);else if(!_(t)&&typeof t._addFeature=="function")t._addFeature(br);else throw new Error("Unrecognized feature")}}var ue=br;function me(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}function Je(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var Cp=Je(),Ga=class{constructor(e,t){var r,i,o,a,s;if(this.id=e.id,this.uniqueId=Cp(),this.bitrate=e.bitrate,this.codecs=[],e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index,t==="audio"||t==="video")if(ue.codecSupportProber!==null){if(e.supplementalCodecs!==void 0){let d=ue.codecSupportProber.isSupported((r=this.mimeType)!=null?r:"",(i=e.supplementalCodecs)!=null?i:"");d!==!1&&(this.codecs=[e.supplementalCodecs],d===!0&&(this.isSupported=!0))}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((o=e.codecs)!=null?o:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=ue.codecSupportProber.isSupported((a=this.mimeType)!=null?a:"",(s=e.codecs)!=null?s:"")))}else e.supplementalCodecs!==void 0&&this.codecs.push(e.supplementalCodecs),e.codecs!==void 0&&this.codecs.push(e.codecs);else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var i;let t=(i=this.mimeType)!=null?i:"",r=this.codecs;r.length===0&&(r=[""]);for(let o=0;o<r.length;o++)for(let a of e){let s=r[o];if(a.codec===s&&a.mimeType===t){if(a.result){this.isSupported=!0,this.codecs=[s];return}else if(o===r.length){this.isSupported=!1,this.codecs=[s];return}}}}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i,o;let t=this.getAllEncryptionData(),r=[];for(let a=0;a<t.length;a++){let s=!1,d=t[a];for(let u=0;u<d.values.length;u++)if(d.values[u].systemId.toLowerCase()===e.toLowerCase())if(s)r[r.length-1].values.push(d.values[u]);else{let c=(o=(i=this.contentProtections)==null?void 0:i.keyIds)==null?void 0:o.map(l=>l.keyId);r.push({type:d.type,keyIds:c,values:[d.values[u]]}),s=!0}}return r}getAllEncryptionData(){var t,r;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(r=(t=this.contentProtections)==null?void 0:t.keyIds)==null?void 0:r.map(i=>i.keyId);return this.contentProtections.initData.map(i=>({type:i.type,keyIds:e,values:i.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[{keyId:t}]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[{keyId:t}];else{let s=!1;for(let d of a)me(d.keyId,t)&&(s=!0);s||(m.warn("Manifest: found unanounced key id."),a.push({keyId:t}))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],c;for(c=0;c<s.length;c++)if(u.systemId===s[c].systemId){if(me(u.data,s[c].data))break;m.warn("Manifest: different init data for the same system ID")}c===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable}}},$l=Ga;var Tr=class n{constructor(e,t={}){let{trickModeTracks:r}=e,{representationFilter:i,isManuallyAdded:o}=t;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=Sr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),r!==void 0&&r.length>0&&(this.trickModeTracks=r.map(u=>new n(u)));let a=e.representations,s=[],d;for(let u=0;u<a.length;u++){let c=new $l(a[u],this.type),l=!0;if(!_(i)){let f={id:c.id,bitrate:c.bitrate,codecs:c.codecs,height:c.height,width:c.width,frameRate:c.frameRate,hdrInfo:c.hdrInfo};if(c.contentProtections!==void 0&&(f.contentProtections={},c.contentProtections.keyIds!==void 0)){let p=c.contentProtections.keyIds.map(({keyId:g})=>g);f.contentProtections.keyIds=p}l=i(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}l?(s.push(c),d===void 0&&(c.isSupported===!0?d=!0:c.isSupported===!1&&(d=!1))):m.debug("Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${c.id}`,`(${c.bitrate})`)}s.sort((u,c)=>u.bitrate-c.bitrate),this.representations=s,this.isSupported=d,this.manuallyAdded=o===!0}refreshCodecSupport(e){for(let t of this.representations)t.isSupported===void 0&&(t.refreshCodecSupport(e),this.isSupported!==!0&&t.isSupported===!0?this.isSupported=!0:this.isSupported===void 0&&t.isSupported===!1&&(this.isSupported=!1))}getRepresentation(e){return X(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,isSupported:this.isSupported,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function $(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}var Ql=[];function _t(n){$(Ql,n)||(console.warn(n),Ql.push(n))}var Ht=["audio","video","text"];function ln(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=V()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function cn(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=V()-e.time;return e.livePosition+t/1e3}function It(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=V()-e.time;return e.maximumSafePosition+t/1e3}function lt(n,e){if(e===void 0)return ja(n).filter(r=>r.isSupported===!0);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.isSupported===!0)}function Zl(n,e){let t=null;for(let r=n.periods.length-1;r>=0;r--){let i=n.periods[r];if(qa(i,e,t))return i;t=i}}function ho(n,e){let t=e.end;if(t===void 0)return null;let r=X(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function qa(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function ja(n){let e=n.adaptations;return hr(e).reduce((t,r)=>_(r)?t:t.concat(r),[])}function Io(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>o.isSupported===!0&&o.decipherable!==!1):n.representations).map(Mp),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function yo(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function So(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>s.isSupported===!0&&s.decipherable!==!1):i.representations).map(Xl),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>i.isSupported===!0&&i.decipherable!==!1):n.representations).map(Xl),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Mp(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function Xl(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u}}function Wt(n){switch(n.type){case"audio":return{type:"audio",track:Io(n,!1)};case"video":return{type:"video",track:So(n,!1)};case"text":return{type:"text",track:yo(n)}}}function Jl(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}var _r=class{constructor(e,t,r){if(this.id=e.id,this.adaptations=Object.keys(e.adaptations).reduce((i,o)=>{let a=e.adaptations[o];if(_(a))return i;let s=a.map(d=>{let u=new Tr(d,{representationFilter:r});return u.representations.length>0&&u.isSupported===!1&&t.push(u),u}).filter(d=>d.representations.length>0);if(s.every(d=>d.isSupported===!1)&&a.length>0&&(o==="video"||o==="audio"))throw new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+o+" adaptations",{tracks:void 0});return s.length>0&&(i[o]=s),i},{}),!Array.isArray(this.adaptations.video)&&!Array.isArray(this.adaptations.audio))throw new Z("MANIFEST_PARSE_ERROR","No supported audio and video tracks.");this.duration=e.duration,this.start=e.start,!_(this.duration)&&!_(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i===void 0)return;let o=!1;for(let a of i){let s=a.isSupported;a.refreshCodecSupport(e),s!==!1&&a.isSupported===!1&&t.push(a),o===!1?o=a.isSupported:o===void 0&&a.isSupported===!0&&(o=!0)}if((r==="video"||r==="audio")&&o===!1)throw new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+r+" adaptations",{tracks:void 0})},{})}getAdaptations(){return ja(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return X(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return lt(this,e)}containsTime(e,t){return qa(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e}}};function Er(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.getAdaptations(),o=e.getAdaptations();for(let a=0;a<i.length;a++){let s=i[a],d=pe(o,u=>u.id===s.id);if(d===-1){m.warn('Manifest: Adaptation "'+i[a].id+'" not found when merging.');let[u]=i.splice(a,1);a--,r.removedAdaptations.push({id:u.id,trackType:u.type})}else{let[u]=o.splice(d,1),c=[],l=[],f=[];r.updatedAdaptations.push({adaptation:s.id,trackType:s.type,updatedRepresentations:c,addedRepresentations:l,removedRepresentations:f});let p=s.representations,g=u.representations.slice();for(let S=0;S<p.length;S++){let I=p[S],y=pe(g,T=>T.id===I.id);if(y===-1){m.warn(`Manifest: Representation "${p[S].id}" not found when merging.`);let[T]=p.splice(S,1);S--,f.push(T.id)}else{let[T]=g.splice(y,1);c.push(I.getMetadataSnapshot()),I.cdnMetadata=T.cdnMetadata,t===0?I.index._replace(T.index):I.index._update(T.index)}}g.length>0&&(m.warn(`Manifest: ${g.length} new Representations found when merging.`),s.representations.push(...g),l.push(...g.map(S=>S.getMetadataSnapshot())))}}if(o.length>0){m.warn(`Manifest: ${o.length} new Adaptations found when merging.`);for(let a of o){let s=n.adaptations[a.type];s===void 0?n.adaptations[a.type]=[a]:s.push(a),r.addedAdaptations.push(a.getMetadataSnapshot())}}return r}function ec(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=Er(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let c=e.slice(r,o),l=s-r,f=n.splice(r,l,...c);t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end}))),t.addedPeriods.push(...c.map(p=>p.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("Manifest: error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function tc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new Z("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=pe(n,({id:s})=>s===e[0].id);if(i<0)throw new Z("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=Er(n[i],e[0],1);t.updatedPeriods.push({period:Y(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let c=a;c<n.length;c++)if(d.id===n[c].id){u=c;break}if(u<0){let c=-1;for(let p=a;p<n.length;p++)if(d.start<n[p].start){c=p;break}let l=c-a,f=n.splice(a,l,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end})))}else{if(u>a){m.warn("Manifest: old Periods not found in new when updating, removing");let l=n.splice(a,u-a);t.removedPeriods.push(...l.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let c=Er(n[u],d,0);t.updatedPeriods.push({period:Y(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:c})}a++}if(a<n.length){m.warn("Manifest: Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var xp=Je(),vr=class extends ie{constructor(e,t,r){var s;super();let{representationFilter:i,manifestUpdateUrl:o}=t;this.manifestFormat=0,this.id=xp(),this.expired=(s=e.expired)!=null?s:null,this.transport=e.transportType,this.clockOffset=e.clockOffset;let a=[];if(this.periods=e.periods.map(d=>new _r(d,a,i)).sort((d,u)=>d.start-u.start),a.length>0){let d=new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:a.map(Wt)});r.push(d)}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=o,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}refreshCodecSupport(e){let t=[];for(let r of this.periods)r.refreshCodecSupport(e,t);return t.length>0?new Z("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Wt)}):null}getPeriod(e){return X(this.periods,t=>e===t.id)}getPeriodForTime(e){return Zl(this,e)}getNextPeriod(e){return X(this.periods,t=>t.start>e)}getPeriodAfter(e){return ho(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return ln(this)}getLivePosition(){return cn(this)}getMaximumSafePosition(){return It(this)}updateRepresentationsDeciperability(e){let t=wp(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}getAdaptations(){_t("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){_t("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return _t("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),X(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=ec(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=tc(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function wp(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations())for(let o of i.representations){let a={manifest:n,period:r,adaptation:i,representation:o},s=e(a);s!==o.decipherable&&(t.push(a),o.decipherable=s,m.debug(`Decipherability changed for "${o.id}"`,`(${o.bitrate})`,String(o.decipherable)))}return t}function Et(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function fn(n){if(_(n))return"";let{period:e,adaptation:t,representation:r,segment:i}=n,o;return i.isInit?o="init":i.complete?o=`${i.time}-${i.duration}`:o=`${i.time}`,`${t.type} P: ${e.id} A: ${t.id} R: ${r.id} S: ${o}`}var wn=vr;function vt(n){return n instanceof Te?new rt("PIPELINE_LOAD_ERROR",n):xe(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function ot(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function Gt(n,e){return ot(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function Rr(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function Op(n){return n instanceof Te?n.type===un.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===un.TIMEOUT||n.type===un.ERROR_EVENT:n instanceof nt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:zt(n)&&n.code==="INTEGRITY_ERROR"}async function Ya(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("Fetchers: no CDN given to `scheduleRequestWithCdns`.");let u=new Map,c=l();if(c===void 0)throw new Error("No CDN to request");return f(c);function l(){if(n===null){let I=u.get(null);return I!==void 0&&I.isBlacklisted?void 0:null}else{if(e===null)return S(n);{let I=e.getCdnPreferenceForResource(n);return S(I)}}}async function f(I){try{return await t(I,i)}catch(y){if(F.isCancellationError(y))throw y;I!==null&&e!==null&&e.downgradeCdn(I);let T=u.get(I);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(I,T)):T.errorCounter++,!Op(y))return T.blockedUntil=void 0,T.isBlacklisted=!0,p(y);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,E=Math.min(o*Math.pow(2,v-1),a),R=Rr(E);T.blockedUntil=V()+R}return p(y)}}async function p(I){let y=l();if(i.isCancelled())throw i.cancellationError;if(y===void 0)throw I;if(d(I),i.isCancelled())throw i.cancellationError;return g(y,I)}function g(I,y){let T=u.get(I);if(T===void 0||T.blockedUntil===void 0)return f(I);let v=V(),E=T.blockedUntil-v;if(E<=0)return f(I);let R=new F,k=R.linkToSignal(i);return new Promise((A,C)=>{e==null||e.addEventListener("priorityChange",()=>{let D=l();if(i.isCancelled())throw i.cancellationError;if(D===void 0)return N(y);D!==I&&(R.cancel(),g(D,y).then(x,N))},R.signal),Gt(E,R.signal).then(()=>f(I).then(x,N),Q);function x(D){k(),A(D)}function N(D){k(),C(D)}})}function S(I){var T;if(u.size===0)return I[0];let y=V();return(T=I.filter(v=>{var E;return((E=u.get(v))==null?void 0:E.isBlacklisted)!==!0}).reduce((v,E)=>{var k;let R=(k=u.get(E))==null?void 0:k.blockedUntil;return R!==void 0&&R<=y&&(R=void 0),v===void 0?[E,R]:v[1]===void 0?v:R===void 0?[E,void 0]:R<v[1]?[E,R]:v},void 0))==null?void 0:T[0]}}function $a(n,e,t){return Ya(null,null,n,e,t)}var kr=class extends ie{constructor(e,t,r){super(),this.scheduleManualRefresh=Q,this._manifestUrls=e,this._pipelines=t.manifest,this._settings=r,this._canceller=new F,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof wn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var d;let t=this._canceller.signal,r=this._settings,i=this._pipelines,o=e!=null?e:(d=this._manifestUrls)==null?void 0:d[0],a=this._getBackoffSetting(u=>{this.trigger("warning",vt(u))});try{let u=await s(o);return{parse:c=>this._parseLoadedManifest(u,c,o)}}catch(u){throw vt(u)}function s(u){let{loadManifest:c}=i,l=r.requestTimeout===void 0?B.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,f=r.connectionTimeout===void 0?B.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;return l<0&&(l=void 0),f<0&&(f=void 0),$a(()=>c(u,{timeout:l,connectionTimeout:f},t),a,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var S;let i=V(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(I=>{this.trigger("warning",vt(I))}),c=r!=null?r:(S=this._manifestUrls)==null?void 0:S[0],l={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:c};try{let I=this._pipelines.parseManifest(e,l,p,o,f);if(Dp(I)){let{manifest:y,warnings:T}=await I;return g(y,T)}else return g(I.manifest,I.warnings)}catch(I){throw xe(I,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(I){try{return await $a(I,u,o)}catch(y){throw vt(y)}}function p(I){for(let y of I){if(o.isCancelled())return;let T=xe(y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function g(I,y){p(y);let T=V()-i;return m.info(`MF: Manifest parsed in ${T}ms`),{manifest:I,sendingTime:s,receivedTime:d,parsingTime:T}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=B.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=B.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:V()-t,c=Math.max(this._settings.minimumManifestUpdateInterval-u,0),l=new F;if(l.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:p,delay:g,canUseUnsafeMode:S}=f,I=S&&d,y=t===void 0?0:V()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-y,0),v=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:p,unsafeMode:I})},Math.max((g!=null?g:0)-y,T));l.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var p;(p=e.expired)==null||p.then(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Q)},c);l.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,p;s===void 0?p=f:e.lifetime<3&&s>=100?(p=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MUS: Manifest update rythm is too frequent. Postponing next request.",f,p)):s>=e.lifetime*1e3/10?(p=Math.min(Math.max(f,0)+s,f*6),m.info("MUS: Manifest took too long to parse. Postponing next request",p,p)):p=f;let g=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(p,c));l.signal.register(()=>{clearTimeout(g)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info('Init: Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info('Init: Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:c,parsingTime:l}=d,f=V();if(o)e.replace(u);else try{e.update(u)}catch(g){let S=g instanceof Error?g.message:"unknown error";m.warn(`MUS: Attempt to update Manifest failed: ${S}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:I}=B.getCurrent(),y=c===void 0?0:V()-c,T=Math.max(this._settings.minimumManifestUpdateInterval-y,0),v=Q,E=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(I-y,T));v=this._canceller.signal.register(()=>{clearTimeout(E)});return}let p=V()-f;this._recursivelyRefreshManifest(e,{sendingTime:c,parsingTime:l,updatingTime:p})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function Dp(n){return n instanceof Promise}var Qa=kr;var Pr=class extends ie{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=nc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=B.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=nc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function nc(n,e){return n.length===0?-1:e.id!==void 0?pe(n,t=>t.id===e.id):pe(n,t=>t.baseUrl===e.baseUrl)}function Xa(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("Fetchers: Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var Za=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},rc=Za;var Lp=Je();function Ja(n,e,t,r,i){let o;i.connectionTimeout===void 0||i.connectionTimeout<0?o=void 0:o=i.connectionTimeout;let a={timeout:i.requestTimeout<0?void 0:i.requestTimeout,connectionTimeout:o},s=$(["audio","video"],n)?new rc:void 0,{loadSegment:d,parseSegment:u}=e;return async function(l,f,p){var H,q,G;let{segment:g,adaptation:S,representation:I,manifest:y,period:T}=l,v=fn(l),E=Lp(),R,k=[],A=0,C=!1,x={segment:g,type:S.type,language:S.language,isLive:y.isLive,periodStart:T.start,periodEnd:T.end,mimeType:I.mimeType,codecs:I.codecs[0],manifestPublishTime:y.publishTime},N={onProgress(K){var ne;R===void 0&&K.totalSize!==void 0&&K.size<K.totalSize&&((ne=r.onProgress)==null||ne.call(r,{duration:K.duration,size:K.size,totalSize:K.totalSize,timestamp:V(),id:E}))},onNewChunk(K){f.onChunk(M(K,!0))}},D=s!==void 0?s.get(l):null;if(D!==null)return m.debug("SF: Found wanted segment in cache",v),f.onChunk(M(D,!1)),Promise.resolve();m.debug("SF: Beginning request",v),(H=r.onRequestBegin)==null||H.call(r,{requestTimestamp:V(),id:E,content:l}),p.register(L);try{let K=await Ya(l.representation.cdnMetadata,t,P,Y({onRetry:O},i),p);if(K.resultType==="segment-loaded"){let ne=K.resultData.responseData;s!==void 0&&s.add(l,K.resultData.responseData),f.onChunk(M(ne,!1))}else K.resultType==="segment-created"&&f.onChunk(M(K.resultData,!1));m.debug("SF: Segment request ended with success",v),f.onAllChunksReceived(),K.resultType!=="segment-created"?(R=K.resultData,U()):R=null,p.isCancelled()||(q=r.onRequestEnd)==null||q.call(r,{id:E}),p.deregister(L)}catch(K){throw p.deregister(L),R=null,K instanceof Ae?(m.debug("SF: Segment request aborted",v),K):(m.debug("SF: Segment request failed",v),(G=r.onRequestEnd)==null||G.call(r,{id:E}),vt(K))}function L(){var K;R===void 0&&(m.debug("SF: Segment request cancelled",v),R=null,(K=r.onRequestEnd)==null||K.call(r,{id:E}))}function P(K){return d(K,x,a,p,N)}function M(K,ne){k.push(!1);let j=k.length-1;return function(oe){let z={data:K,isChunked:ne};try{let ae=u(z,x,oe);return k[j]||(A=A!==void 0&&ae.segmentType==="media"&&ae.chunkInfos!==null&&ae.chunkInfos.duration!==void 0?A+ae.chunkInfos.duration:void 0,k[j]=!0,U()),ae}catch(ae){throw xe(ae,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function O(K){f.onRetry(vt(K))}function U(){var K;C||!_(R)&&R.size!==void 0&&R.requestDuration!==void 0&&k.length>0&&k.every(ne=>ne)&&(C=!0,(K=r.onMetrics)==null||K.call(r,{size:R.size,requestDuration:R.requestDuration,content:l,segmentDuration:A}))}}}function ic({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=B.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var Cr=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("TP: the max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ot(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{p(),this._endTask(o)},c=g=>{r.beforeEnded(),u(),a(g)},l=g=>{u(),s(g)},f=new F,p=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(c).catch(g=>{!i.isCancelled()&&f.isUsed()&&g instanceof Ae||l(g)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=Ar(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=Ar(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=Ar(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=Ar(e,this._pendingTasks);if(i<0){m.warn("TP: request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e=0;e<this._pendingTasks.length;e++){let t=this._pendingTasks[e];if(t.priority>=this._prioritySteps.low)return this._interruptPendingTask(t),this._interruptCancellableTasks()}}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("TP : Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=Ar(e.taskFn,this._pendingTasks);if(t<0){m.warn("TP: Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function Ar(n,e){return pe(e,t=>t.taskFn===n)}var Mr=class{constructor(e,t,r){let i=new Pr(r),{MIN_CANCELABLE_PRIORITY:o,MAX_HIGH_PRIORITY_LEVEL:a}=B.getCurrent();this._transport=e,this._prioritizer=new Cr({prioritySteps:{high:a,low:o}}),this._cdnPrioritizer=i,this._backoffOptions=t}createSegmentFetcher(e,t){let r=ic(this._backoffOptions),i=this._transport[e],o=Ja(e,i,this._cdnPrioritizer,t,r);return Xa(this._prioritizer,o)}};var es=Mr;var mn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return X(this._array,e)}has(e){return $(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var xr=class extends ie{constructor(e,t,r){super(),this._canceller=new F,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new ts(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new Z("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new Z("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!0,clearSignal:o}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new mn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},ts=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=bo(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=bo(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=bo(this._lastAudioAdaptation),t=bo(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=To(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=To(this._lastAudioAdaptation))!=null?t:void 0;{let r=To(this._lastAudioAdaptation),i=To(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function bo(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function To(n){let{representations:e}=n,t=null,r;for(let i=0;i<e.length;i++)if(e[i].index!==r){r=e[i].index;let o=e[i].index.getEnd();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function ns(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new xr(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("Init: end-of-stream order received."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var wr=class{constructor(e){this._segmentSinksStore=e,this._currentFreezeTimestamp=null}needToReload(e){let{readyState:t,rebuffering:r,freezing:i}=e;if((e.bufferGap!==void 0&&isFinite(e.bufferGap)?e.bufferGap:0)<6||r===null&&i===null||t>1)return this._currentFreezeTimestamp=null,!1;let a=V();this._currentFreezeTimestamp===null&&(this._currentFreezeTimestamp=a);let s=r!==null&&a-r.timestamp>4e3,d=i!==null&&a-i.timestamp>4e3;if((s||d)&&V()-this._currentFreezeTimestamp>4e3){let u=this._segmentSinksStore.getStatus("audio"),c=this._segmentSinksStore.getStatus("video"),l=!0,f=!0;for(let p of[u,c])if(p.type==="initialized")for(let g of p.value.getLastKnownInventory()){let{representation:S}=g.infos;if(S.decipherable===!1)return m.warn("Init: we have undecipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0;S.contentProtections!==void 0&&(f=!1,S.decipherable!==!0&&(l=!1))}if(!f&&l)return m.warn("Init: we are frozen despite only having decipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0}return!1}};function _o({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Np(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{let u=d instanceof Error?d.message:"Unknown error";m.error("Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Np(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=Dl(t,e),u=()=>{if(isFinite(r)){for(let l of d)e-r>=l.end?a.push(l):e>=l.end&&e-r>l.start&&e-r<l.end&&a.push({start:l.start,end:e-r});_(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},c=()=>{if(isFinite(i)){for(let l of d)e+i<=l.start?a.push(l):e<=l.start&&e+i<l.end&&e+i>l.start&&a.push({start:e+i,end:l.end});_(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),c();for(let l of a)if(l.start<l.end){if(m.debug("GC: cleaning range from SegmentSink",l.start,l.end),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(l.start,l.end)}}var Or=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=V();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Et(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var Dr=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=B.getCurrent();this._inventory=[],this._bufferedHistory=new Or(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,c,l,f,p,g;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=B.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let S=e.map(I=>`${I.start}-${I.end}`).join(",");m.debug(`SI: synchronizing ${a!=null?a:"unknown"} buffered ranges:`,S)}let s=e.length;for(let S=0;S<s;S++){if(i===void 0)return;let I=e[S].start,y=e[S].end;if(y-I<o){m.warn("SI: skipped range when synchronizing because it was too small",a,I,y);continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-I<o;)i=t[++r];let v=null,E=r-T;if(E>0){let k=t[T+E-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug(`SI: ${E} segments GCed.`,a);let A=t.splice(T,E);for(let C of A)C.bufferedStart===void 0&&C.bufferedEnd===void 0&&C.status!==2&&this._bufferedHistory.addBufferedSegment(C.infos,null);r=T}if(i===void 0)return;if(y-((c=i.bufferedStart)!=null?c:i.start)>=o){if(Up(i,I,v,a),r===t.length-1){ac(i,y,a);return}i=t[++r];let k=(l=i.bufferedStart)!=null?l:i.start,A=(f=i.bufferedEnd)!=null?f:i.end,C=S<s-1?e[S+1].start:void 0;for(;i!==void 0&&!(y<k||y-k<o&&A-y>=o||C!==void 0&&y-k<A-C);){let x=t[r-1];x.bufferedEnd===void 0&&(i.precizeStart?x.bufferedEnd=i.start:x.infos.segment.complete?x.bufferedEnd=x.end:x.bufferedEnd=i.start,m.debug("SI: calculating buffered end of contiguous segment",a,x.bufferedEnd,x.end)),i.bufferedStart=x.bufferedEnd,i=t[++r],i!==void 0&&(k=(p=i.bufferedStart)!=null?p:i.start,A=(g=i.bufferedEnd)!=null?g:i.end)}}let R=t[r-1];R!==void 0&&ac(R,y,a)}if(!_(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:S}=B.getCurrent(),I=V();for(let y=r;y<t.length;y++){let T=t[y];I-T.insertionTs>=S&&(m.debug("SI: A segment at the end has been completely GCed",a,`${T.start}-${T.end}`),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(y,1),y--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug(`SI: current ${a} inventory timeline:
2
- `+Bp(this._inventory))}insertChunk({period:e,adaptation:t,representation:r,segment:i,chunkSize:o,start:a,end:s},d,u){if(i.isInit)return;let c=t.type;if(a>=s){m.warn("SI: Invalid chunked inserted: starts before it ends",c,a,s);return}let l=this._inventory,f={status:d?0:2,insertionTs:u,chunkSize:o,splitted:!1,start:a,end:s,precizeStart:!1,precizeEnd:!1,bufferedStart:void 0,bufferedEnd:void 0,infos:{segment:i,period:e,adaptation:t,representation:r}};for(let g=l.length-1;g>=0;g--){let S=l[g];if(S.start<=a)if(S.end<=a){for(m.debug("SI: Pushing segment strictly after previous one.",c,a,S.end),this._inventory.splice(g+1,0,f),g+=2;g<l.length&&l[g].start<f.end;){if(l[g].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[g].start),l[g].start=f.end,l[g].bufferedStart=void 0,l[g].precizeStart=l[g].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[g].start,l[g].end),l.splice(g,1)}return}else if(S.start===a)if(S.end<=s){for(m.debug("SI: Segment pushed replace another one",c,a,s,S.end),this._inventory.splice(g,1,f),g+=1;g<l.length&&l[g].start<f.end;){if(l[g].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[g].start),l[g].start=f.end,l[g].bufferedStart=void 0,l[g].precizeStart=l[g].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[g].start,l[g].end),l.splice(g,1)}return}else{m.debug("SI: Segment pushed ends before another with the same start",c,a,s,S.end),l.splice(g,0,f),S.start=f.end,S.bufferedStart=void 0,S.precizeStart=S.precizeStart&&f.precizeEnd;return}else if(S.end<=f.end){for(m.debug("SI: Segment pushed updates end of previous one",c,a,s,S.start,S.end),this._inventory.splice(g+1,0,f),S.end=f.start,S.bufferedEnd=void 0,S.precizeEnd=S.precizeEnd&&f.precizeStart,g+=2;g<l.length&&l[g].start<f.end;){if(l[g].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[g].start),l[g].start=f.end,l[g].bufferedStart=void 0,l[g].precizeStart=l[g].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[g].start,l[g].end),l.splice(g,1)}return}else{m.warn("SI: Segment pushed is contained in a previous one",c,a,s,S.start,S.end);let I={status:S.status,insertionTs:S.insertionTs,chunkSize:S.chunkSize,splitted:!0,start:f.end,end:S.end,precizeStart:S.precizeStart&&S.precizeEnd&&f.precizeEnd,precizeEnd:S.precizeEnd,bufferedStart:void 0,bufferedEnd:S.end,infos:S.infos};S.end=f.start,S.splitted=!0,S.bufferedEnd=void 0,S.precizeEnd=S.precizeEnd&&f.precizeStart,l.splice(g+1,0,f),l.splice(g+2,0,I);return}}let p=this._inventory[0];if(p===void 0){m.debug("SI: first segment pushed",c,a,s),this._inventory.push(f);return}if(p.start>=s)m.debug("SI: Segment pushed comes before all previous ones",c,a,s,p.start),this._inventory.splice(0,0,f);else if(p.end<=s){for(m.debug("SI: Segment pushed starts before and completely recovers the previous first one",c,a,s,p.start,p.end),this._inventory.splice(0,1,f);l.length>1&&l[1].start<f.end;){if(l[1].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[1].start),l[1].start=f.end,l[1].bufferedStart=void 0,l[1].precizeStart=f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[1].start,l[1].end),l.splice(1,1)}return}else{m.debug("SI: Segment pushed start of the next one",c,a,s,p.start,p.end),p.start=s,p.bufferedStart=void 0,p.precizeStart=f.precizeEnd,this._inventory.splice(0,0,f);return}}completeSegment(e){if(e.segment.isInit)return;let t=this._inventory,r=[];for(let i=0;i<t.length;i++)if(Et(t[i].infos,e)){let o=!1;r.length>0&&(o=!0,r.length===1&&(m.warn("SI: Completed Segment is splitted.",e.segment.id,e.segment.time,e.segment.end),r[0].splitted=!0));let a=i,s=t[i].chunkSize;for(i+=1;i<t.length&&Et(t[i].infos,e);){let f=t[i].chunkSize;s!==void 0&&f!==void 0&&(s+=f),i++}let d=i-1,u=d-a,c=t[d].end,l=t[d].bufferedEnd;u>0&&(this._inventory.splice(a+1,u),i-=u),this._inventory[a].status===0&&(this._inventory[a].status=1),this._inventory[a].chunkSize=s,this._inventory[a].end=c,this._inventory[a].bufferedEnd=l,this._inventory[a].splitted=o,r.push(this._inventory[a])}if(r.length===0)m.warn("SI: Completed Segment not found",e.segment.id,e.segment.time);else for(let i of r)i.bufferedStart!==void 0&&i.bufferedEnd!==void 0?i.status!==2&&this._bufferedHistory.addBufferedSegment(i.infos,{start:i.bufferedStart,end:i.bufferedEnd}):m.debug("SI: buffered range not known after sync. Skipping history.",i.start,i.end)}getInventory(){return this._inventory}getHistoryFor(e){return this._bufferedHistory.getHistoryFor(e)}};function rs(n){if(n.bufferedStart===void 0||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=B.getCurrent();return Math.abs(e-n.bufferedStart)<=i&&(n.bufferedEnd===void 0||n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3))}function oc(n){if(n.bufferedEnd===void 0||!n.infos.segment.complete||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=B.getCurrent();return Math.abs(t-n.bufferedEnd)<=i&&n.bufferedStart!==void 0&&n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3)}function Up(n,e,t,r){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MISSING_DATA_TRIGGER_SYNC_DELAY:o,SEGMENT_SYNCHRONIZATION_DELAY:a}=B.getCurrent();if(n.bufferedStart!==void 0)n.bufferedStart<e&&(m.debug("SI: Segment partially GCed at the start",r,n.bufferedStart,e),n.bufferedStart=e),!n.precizeStart&&rs(n)&&(n.start=n.bufferedStart,n.precizeStart=!0);else if(n.precizeStart)m.debug("SI: buffered start is precize start",r,n.start),n.bufferedStart=n.start;else if(t!==null&&t.end>e&&(t.precizeEnd||n.start-t.end<=i))m.debug("SI: buffered start is end of previous segment",r,e,n.start,t.end),n.bufferedStart=t.end,rs(n)&&(n.start=t.end,n.precizeStart=!0);else if(n.start-e<=i){let s=V();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: found true buffered start",r,e,n.start),n.bufferedStart=e,rs(n)&&(n.start=e,n.precizeStart=!0)}else if(e<n.start)m.debug("SI: range start too far from expected start",r,e,n.start),n.bufferedStart=n.start;else{let s=V();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the start",r,e,n.start),n.bufferedStart=e}}function ac(n,e,t){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:r,MISSING_DATA_TRIGGER_SYNC_DELAY:i,SEGMENT_SYNCHRONIZATION_DELAY:o}=B.getCurrent();if(n.bufferedEnd!==void 0)n.bufferedEnd>e&&(m.debug("SI: Segment partially GCed at the end",t,n.bufferedEnd,e),n.bufferedEnd=e),!n.precizeEnd&&e-n.end<=r&&oc(n)&&(n.precizeEnd=!0,n.end=e);else if(n.precizeEnd)m.debug("SI: buffered end is precize end",t,n.end),n.bufferedEnd=n.end;else if(e-n.end<=r||!n.infos.segment.complete){let a=V();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: found true buffered end",t,e,n.end),n.bufferedEnd=e,oc(n)&&(n.end=e,n.precizeEnd=!0)}else if(e>n.end)m.debug("SI: range end too far from expected end",t,e,n.end),n.bufferedEnd=n.end;else{let a=V();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the end",t,n.bufferedEnd,e),n.bufferedEnd=e}}function Bp(n){let e=.016666666666666666,t={},r=[],i=null,o=null;function a(d){let u=String.fromCharCode(r.length+65);return r.push({letter:u,periodId:d.period.id,representationId:d.representation.id,bitrate:d.representation.bitrate}),u}let s="";for(let d=0;d<n.length;d++){let u=n[d];if(u.bufferedStart!==void 0&&u.bufferedEnd!==void 0){let c=u.infos.period.id,l=u.infos.representation.id,f=t[c],p;f===void 0?(p=a(u.infos),t[c]={[l]:p}):f[l]===void 0?(p=a(u.infos),f[l]=p):p=f[l],i===null?s+=`${u.bufferedStart.toFixed(2)}|${p}|`:o===p?i.bufferedEnd+e<u.bufferedStart&&(s+=`${i.bufferedEnd.toFixed(2)} ~ ${u.bufferedStart.toFixed(2)}|${p}|`):s+=`${i.bufferedEnd.toFixed(2)} ~ ${u.bufferedStart.toFixed(2)}|${p}|`,i=u,o=p}}return i!==null&&(s+=String(i.end.toFixed(2))),r.forEach(d=>{var u;s+=`
3
- [${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function On(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function Dn(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var sc=Dr;var Ln=class{constructor(){this._segmentInventory=new sc}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var Lr=class extends Ln{constructor(e,t,r){super(),m.info("AVSB: calling `mediaSource.addSourceBuffer`",t);let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){dc(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){dc(e.data.chunk),m.debug("AVSB: receiving order to push data to the SourceBuffer",this.bufferType,fn(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("AVSB: pushing segment",this.bufferType,fn(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,V()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,V());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("AVSB: receiving order to remove data from the SourceBuffer",this.bufferType,e,t);let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("AVSB: Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug(`AVSB: Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function dc(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var vo=Lr;var Nr=class extends Ln{constructor(e){m.debug("HTSB: Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("HTSB: Declaring initialization segment for Text SegmentSink",e)}freeInitSegment(e){m.warn("HTSB: Freeing initialization segment for Text SegmentSink",e)}async pushChunk(e){let{data:t}=e;Kp(t.chunk);let r=this._sender.pushTextData(Se(ce({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,V()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("HTSB: Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Kp(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n===null||typeof n.data!="string"||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number"))throw new Error("Invalid format given to a TextSegmentSink")}h.CURRENT_ENV===h.DEV&&(Vp=function(e){function t(r){}});var Vp;var uc=Nr;var zp=["audio","video","text"],Ur=class n{static isNative(e){return lc(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ot(e,t=>{let r,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn(`SBS: The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&this._onNativeBufferAddedOrDisabled.forEach(r=>r())}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(lc(e)){if(!_(r))return r instanceof vo&&r.codec!==t?m.warn("SB: Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("SB: Reusing native SegmentSink with codec",t),r;m.info("SB: Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new vo(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.forEach(s=>s()),a}if(!_(r))return m.info("SB: Reusing a previous custom SegmentSink for the type",e),r;let i;if(e==="text"){if(m.info("SB: Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new uc(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("SB: Unknown buffer type:",e),new Z("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(_(t)){m.warn("SB: Trying to dispose a SegmentSink that does not exist");return}m.info("SB: Aborting SegmentSink",e),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){zp.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var t,r;return{bufferType:e,codec:(t=this._initializedSegmentSinks[e])==null?void 0:t.codec,segmentInventory:(r=this._initializedSegmentSinks[e])==null?void 0:r.getLastKnownInventory().map(i=>Se(ce({},i),{infos:Hp(i.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function lc(n){return n==="audio"||n==="video"}function Hp(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var qt=Ur;var Br=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};var Fr=class extends ie{constructor(e,t,r,i){super(),this._content=e,this._currentCanceller=null,this._downloadQueue=t,this._initSegmentRequest=null,this._mediaSegmentRequest=null,this._segmentFetcher=r,this._initSegmentInfoRef=new W(void 0),this._mediaSegmentAwaitingInitMetadata=null,i||this._initSegmentInfoRef.setValue(null)}getRequestedInitSegment(){return this._initSegmentRequest===null?null:this._initSegmentRequest.segment}getRequestedMediaSegment(){return this._mediaSegmentRequest===null?null:this._mediaSegmentRequest.segment}start(){this._currentCanceller===null&&(this._currentCanceller=new F,this._downloadQueue.onUpdate(e=>{let{segmentQueue:t}=e;if(t.length>0&&t[0].segment.id===this._mediaSegmentAwaitingInitMetadata)return;let r=this._mediaSegmentRequest;if(t.length===0){if(r===null)return;m.debug("Stream: no more media segment to request. Cancelling queue.",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}else if(r===null){m.debug("Stream: Media segments now need to be requested. Starting queue.",this._content.adaptation.type,t.length),this._restartMediaSegmentDownloadingQueue();return}else{let i=t[0];if(r.segment.id!==i.segment.id){m.debug("Stream: Next media segment changed, cancelling previous",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}r.priority!==i.priority&&(m.debug("Stream: Priority of next media segment changed, updating",this._content.adaptation.type,r.priority,i.priority),this._segmentFetcher.updatePriority(r.request,i.priority));return}},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}),this._downloadQueue.onUpdate(e=>{var r;let t=this._initSegmentRequest;if(e.initSegment!==null&&t!==null){e.initSegment.priority!==t.priority&&this._segmentFetcher.updatePriority(t.request,e.initSegment.priority);return}else if(((r=e.initSegment)==null?void 0:r.segment.id)===(t==null?void 0:t.segment.id))return;e.initSegment===null&&m.debug("Stream: no more init segment to request. Cancelling queue.",this._content.adaptation.type),this._restartInitSegmentDownloadingQueue(e.initSegment)},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}))}stop(){var e;(e=this._currentCanceller)==null||e.cancel(),this._currentCanceller=null}_restartMediaSegmentDownloadingQueue(){this._mediaSegmentRequest!==null&&this._mediaSegmentRequest.canceller.cancel();let{segmentQueue:e}=this._downloadQueue.getValue(),t=e[0],r=i=>{if(this._currentCanceller!==null&&this._currentCanceller.isUsed()){this._mediaSegmentRequest=null;return}if(i===void 0){this._mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let o=new F,a=this._currentCanceller===null?Q:o.linkToSignal(this._currentCanceller.signal),{segment:s,priority:d}=i,u=Y({segment:s},this._content),c=!1,l=!1;o.signal.register(()=>{this._mediaSegmentRequest=null,!c&&(this._mediaSegmentAwaitingInitMetadata===s.id&&(this._mediaSegmentAwaitingInitMetadata=null),c=!0,l=!1)});let f=S=>{J(S.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",Y({},S,{segment:s}))},p=()=>{let S=this._downloadQueue.getValue().segmentQueue;if(S.length===0){c=!0,this.trigger("emptyQueue",null);return}else S[0].segment.id===s.id&&S.shift();c=!0,r(S[0])},g=this._segmentFetcher.createRequest(u,d,{onRetry:S=>{this.trigger("requestRetry",{segment:s,error:S})},beforeInterrupted(){m.info("Stream: segment request interrupted temporarly.",s.id,s.time)},onChunk:S=>{let I=this._initSegmentInfoRef.getValue();I!==void 0?f(S(I!=null?I:void 0)):(l=!0,this._initSegmentInfoRef.waitUntilDefined(y=>{f(S(y!=null?y:void 0))},{clearSignal:o.signal}))},onAllChunksReceived:()=>{l?(this._mediaSegmentAwaitingInitMetadata=s.id,this._initSegmentInfoRef.waitUntilDefined(()=>{this._mediaSegmentAwaitingInitMetadata=null,l=!1,this.trigger("fullyLoadedSegment",s)},{clearSignal:o.signal})):this.trigger("fullyLoadedSegment",s)},beforeEnded:()=>{a(),this._mediaSegmentRequest=null,l?this._initSegmentInfoRef.waitUntilDefined(p,{clearSignal:o.signal}):p()}},o.signal);g.catch(S=>{a(),c||(c=!0,this.stop(),this.trigger("error",S))}),this._mediaSegmentRequest={segment:s,priority:d,request:g,canceller:o}};r(t)}_restartInitSegmentDownloadingQueue(e){if(this._currentCanceller!==null&&this._currentCanceller.isUsed()||(this._initSegmentRequest!==null&&this._initSegmentRequest.canceller.cancel(),e===null))return;let t=new F,r=this._currentCanceller===null?Q:t.linkToSignal(this._currentCanceller.signal),{segment:i,priority:o}=e,a=Y({segment:i},this._content),s=!1,d=this._segmentFetcher.createRequest(a,o,{onRetry:u=>{this.trigger("requestRetry",{segment:i,error:u})},beforeInterrupted:()=>{m.info("Stream: init segment request interrupted temporarly.",i.id)},beforeEnded:()=>{r(),this._initSegmentRequest=null,s=!0},onChunk:u=>{var l;let c=u(void 0);J(c.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",Y({},c,{segment:i})),c.segmentType==="init"&&this._initSegmentInfoRef.setValue((l=c.initTimescale)!=null?l:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",i)}},t.signal);d.catch(u=>{r(),s||(s=!0,this.stop(),this.trigger("error",u))}),t.signal.register(()=>{this._initSegmentRequest=null,!s&&(s=!0)}),this._initSegmentRequest={segment:i,priority:o,request:d,canceller:t}}};function is(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=Wp(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let l=s.index.checkDiscontinuity(e.start);if(l!==null)return{start:void 0,end:l}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let l=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,l)!==!1?null:(m.debug("RS: current discontinuity encountered",a.type,u.bufferedStart),{start:void 0,end:l})}let c=Gp(i,e,d+1);if(c!==null){let l=i[c-1],f=i[c];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(l.infos.segment.end,f.infos.segment.time)!==!1)return null;let p=l.bufferedEnd,g=f.bufferedStart;return m.debug("RS: future discontinuity encountered",a.type,p,g),{start:p,end:g}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let l=qp(i,o.end);if(l!==null){let f=i[l];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("RS: discontinuity encountered at the end of the current period",a.type,f.bufferedEnd,o.end),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let l=i.length-1;l>=0;l--){let f=i[l];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let p=s.index.checkDiscontinuity(e.end);if(p!==null)return{start:f.bufferedEnd,end:p}}return null}}}return null}function Wp(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function Gp(n,e,t){if(t<=0)return m.error("RS: Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function qp(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function os({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,c=jp(n,a,s),l=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!cc(R.infos,e,t,r)),p=eg(f,o,i),{MINIMUM_SEGMENT_SIZE:g,MIN_BUFFER_AHEAD:S}=B.getCurrent(),I=!1,y=Math.min(1/60,g),T=!1,v=[];return{segmentsToLoad:l.filter(R=>{let k=Y({segment:R},e);if(a.length>0&&a.some(P=>Et(k,P)))return!1;let{duration:A,time:C,end:x}=R;if(R.isInit)return!0;if(I)return v.push(R),!1;if(R.complete&&A<g||a.length>0&&a.some(P=>{if(P.period.id!==e.period.id||P.adaptation.id!==e.adaptation.id)return!1;let{segment:M}=P;if(M.time-y>C)return!1;if(M.complete){if(M.end+y<x)return!1}else if(Math.abs(C-M.time)>C)return!1;return!cc(P,k,t,r)}))return!1;for(let L=0;L<p.length;L++){let P=p[L],M=P.infos.period.id===e.period.id;if(P.status===1&&M){let O=P.infos.segment;if(C-O.time>-y){if(O.complete){if(O.end-x>-y)return!1}else if(Math.abs(C-O.time)<y)return!1}}}let N=A*e.representation.bitrate;if(c-N<0&&(T=!0,C>o.start+S))return I=!0,v.push(R),!1;let D=i(k);if(D.length>1){let L=D[D.length-1],P=D[D.length-2];if(L.buffered===null&&P.buffered===null)return m.warn("Stream: Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering."+d.type,u.id,R.time),!1}for(let L=0;L<p.length;L++){let P=p[L];if(P.end+y>C){let M=P.start>C+y||Yp(p,L).end<x-y;return M&&(c-=N),M}}return c-=N,!0}),segmentsOnHold:v,isBufferFull:T}}function jp(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function Yp(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=B.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function cc(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=B.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:$p(n.representation,e.representation,r)}function $p(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=B.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function Qp(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=B.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream: The start of the wanted segment has been garbage collected",n.start,n.bufferedStart),!0):!1}function Xp(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=B.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream: The end of the wanted segment has been garbage collected",n.end,n.bufferedEnd),!0):!1}function Zp(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Jp(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function eg(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if(Qp(r,a,e.start)){if(d=t(r.infos),Zp(d,r.bufferedStart))return!1;m.debug("Stream: skipping segment gc-ed at the start",r.start,r.bufferedStart)}if(Xp(r,s,e.end)){if(d=d!=null?d:t(r.infos),Jp(d,r.bufferedEnd))return!1;m.debug("Stream: skipping segment gc-ed at the end",r.end,r.bufferedEnd)}return!0})}function Kr(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=B.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function as(n,e,t,r,i,o,a){var C,x,N;let{representation:s}=n,d=(x=(C=t.getIsPaused())!=null?C:t.getReference().getValue().paused.pending)!=null?x:t.getReference().getValue().paused.last,u=(N=t.getPlaybackRate())!=null?N:t.getReference().getValue().speed,c=e;(d===void 0||u===void 0||d||u<=0)&&(c-=.1);let l=tg(n,c,i),f=s.index.shouldRefresh(l.start,l.end),p=a.getPendingOperations().filter(D=>D.type===2).map(D=>D.value),g=a.getLastKnownInventory(),S=t.getCurrentTime();S===void 0&&(S=t.getReference().getValue().position.getWanted());let I=a.getSegmentHistory.bind(a),{segmentsToLoad:y,segmentsOnHold:T,isBufferFull:v}=os({content:n,bufferedSegments:g,currentPlaybackTime:S,fastSwitchThreshold:r,getBufferedHistory:I,neededRange:l,segmentsBeingPushed:p,maxBufferSize:o}),E=y.map(D=>({priority:Kr(D.time,c),segment:D})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&l.hasReachedPeriodEnd&&E.length===0&&T.length===0,k=null;return p.length>0&&(k=Math.min(...p.map(D=>D.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),E.length>0&&(k=k!==null?Math.min(k,E[0].segment.time):E[0].segment.time),{imminentDiscontinuity:is(n,l,k,R,g),hasFinishedLoading:R,neededSegments:E,isBufferFull:v,shouldRefreshManifest:f}}function tg(n,e,t){var l;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!_(s)&&qt.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&ng(i,o,e)?r=s-1:r=e-.1;let u=r+t,c;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?c=!1:s===void 0?c=u>=o.end:s===null?c=!0:c=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(l=o.end)!=null?l:1/0),hasReachedPeriodEnd:c}}function ng(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}function pn(n){return new Promise(e=>{setTimeout(e,n)})}async function Vr(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof Ae)throw o;if(!(o instanceof it)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new Z("BUFFER_APPEND_ERROR",d,{tracks:[Wt(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream: Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(await e.removeBuffer(0,d),await e.removeBuffer(u,Number.MAX_VALUE),await pn(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof Ae)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new Z("BUFFER_FULL_ERROR",u,{tracks:[Wt(t.inventoryInfos.adaptation)]})}}}async function ss({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){if(a.cancellationError!==null)throw a.cancellationError;let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=Y({segment:r,chunkSize:void 0,start:0,end:0},e),c=await Vr(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:c}}async function ds({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,A;if(i.chunkData===null)return null;if(s.cancellationError!==null)throw s.cancellationError;let{chunkData:d,chunkInfos:u,chunkOffset:c,chunkSize:l,appendWindow:f}=i,p=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:g}=B.getCurrent(),S=[f[0]!==void 0?Math.max(0,f[0]-g.START):void 0,f[1]!==void 0?f[1]+g.END:void 0],I={initSegmentUniqueId:r,chunk:d,timestampOffset:c,appendWindow:S,codec:p},y=(k=u==null?void 0:u.time)!=null?k:o.time,T=(A=u==null?void 0:u.duration)!=null?A:o.duration,v=y+T;S[0]!==void 0&&(y=Math.max(y,S[0])),S[1]!==void 0&&(v=Math.min(v,S[1]));let E=Y({segment:o,chunkSize:l,start:y,end:v},t),R=await Vr(n,a,{data:I,inventoryInfos:E},e,s);return{content:t,segment:o,buffered:R}}function us({content:n,options:e,playbackObserver:t,segmentSink:r,segmentFetcher:i,terminate:o},a,s){let{period:d,adaptation:u,representation:c}=n,{bufferGoal:l,maxBufferSize:f,drmSystemId:p,fastSwitchThreshold:g}=e,S=u.type,I=new F;I.linkToSignal(s);let y=new F;y.linkToSignal(I.signal);let T={segment:c.index.getInitSegment(),uniqueId:null,isLoaded:!1};I.signal.register(()=>{T.uniqueId!==null&&r.freeInitSegment(T.uniqueId)});let v=new W({initSegment:null,segmentQueue:[]},y.signal),E=T.segment!==null;E||(T.isLoaded=!0);let R=!1;if(p!==void 0){let N=c.getEncryptionData(p);if(N.length>0&&N.every(D=>D.keyIds!==void 0)&&(R=!0,a.encryptionDataEncountered(N.map(D=>Y({content:n},D))),I.isUsed()))return}let k=new Fr(n,v,i,E);k.addEventListener("error",N=>{y.signal.isCancelled()||(I.cancel(),a.error(N))}),k.addEventListener("parsedInitSegment",C),k.addEventListener("parsedMediaSegment",C),k.addEventListener("emptyQueue",A),k.addEventListener("requestRetry",N=>{if(a.warning(N.error),y.signal.isCancelled())return;let D=N.segment,{index:L}=c;L.isSegmentStillAvailable(D)===!1?A():L.canBeOutOfSyncError(N.error,D)&&a.manifestMightBeOufOfSync()}),k.addEventListener("fullyLoadedSegment",N=>{r.signalSegmentComplete(Y({segment:N},n)).catch(x)}),k.start(),y.signal.register(()=>{k.removeEventListener(),k.stop()}),t.listen(A,{includeLastObservation:!1,clearSignal:y.signal}),n.manifest.addEventListener("manifestUpdate",A,y.signal),l.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),f.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),o.onUpdate(A,{emitCurrentValue:!1,clearSignal:y.signal}),A();return;function A(){if(y.isUsed())return;let N=t.getReference().getValue(),D=N.position.getWanted(),L=as(n,D,t,g.getValue(),l.getValue(),f.getValue(),r),{neededSegments:P}=L,M=null;if(c.index.isInitialized()){if(P.length>0&&!T.isLoaded&&T.segment!==null){let H=P[0].priority;M={segment:T.segment,priority:H}}}else if(T.segment===null)m.warn("Stream: Uninitialized index without an initialization segment");else if(T.isLoaded)m.warn("Stream: Uninitialized index with an already loaded initialization segment");else{let H=N.position.getWanted();M={segment:T.segment,priority:Kr(d.start,H)}}let O=o.getValue();if(O===null)v.setValue({initSegment:M,segmentQueue:P});else if(O.urgent){m.debug("Stream: Urgent switch, terminate now.",S),v.setValue({initSegment:null,segmentQueue:[]}),v.finish(),y.cancel(),a.terminating();return}else{let H=P[0],q=k.getRequestedInitSegment(),G=k.getRequestedMediaSegment(),K=G===null||H===void 0||G.id!==H.segment.id?[]:[H],ne=q===null?null:M;if(v.setValue({initSegment:ne,segmentQueue:K}),K.length===0&&ne===null){m.debug("Stream: No request left, terminate",S),v.finish(),y.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:N.position.getWanted(),bufferType:S,imminentDiscontinuity:L.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:L.hasFinishedLoading,neededSegments:L.neededSegments}),y.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:U}=B.getCurrent();if(L.isBufferFull){let H=Math.max(0,D-U);H>0&&r.removeBuffer(0,H).catch(x)}L.shouldRefreshManifest&&a.needsManifestRefresh()}function C(N){if(!I.isUsed()){for(let D of N.protectionData)c.addProtectionData(D.initDataType,D.keyId,D.initData);if(!R){let D=c.getAllEncryptionData();if(D.length>0&&(a.encryptionDataEncountered(D.map(L=>Y({content:n},L))),R=!0,I.isUsed()))return}if(N.segmentType==="init"){if(!c.index.isInitialized()&&N.segmentList!==void 0&&c.index.initialize(N.segmentList),T.isLoaded=!0,N.initializationData!==null){let D=c.uniqueId;T.uniqueId=D,r.declareInitSegment(D,N.initializationData),ss({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:D,segment:N.segment,segmentData:N.initializationData,segmentSink:r},I.signal).then(L=>{L!==null&&a.addedSegment(L)}).catch(x)}A();return}else{let{inbandEvents:D,predictedSegments:L,needsManifestRefresh:P}=N;if(L!==void 0&&c.index.addPredictedSegments(L,N.segment),P===!0&&(a.needsManifestRefresh(),I.isUsed())||D!==void 0&&D.length>0&&(a.inbandEvent(D),I.isUsed()))return;let M=T.uniqueId;ds({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:M,parsedSegment:N,segment:N.segment,segmentSink:r},I.signal).then(O=>{O!==null&&a.addedSegment(O)}).catch(x)}}}function x(N){I.isUsed()&&N instanceof Ae||(I.cancel(),a.error(N))}}var fc=us;function ls(n,e,t,r,i){var f,p,g,S;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let I of o)I.infos.period.id===n.id&&(I.infos.adaptation.id!==e.id||!$(t.representationIds,I.infos.representation.id))&&Vt(a,{start:(f=I.bufferedStart)!=null?f:I.start,end:(p=I.bufferedEnd)!=null?p:I.end});let s=r.getPendingOperations();for(let I of s)if(I.type===0){let y=I.value.inventoryInfos;if(y.period.id===n.id&&(y.adaptation.id!==e.id||!$(t.representationIds,y.representation.id))){let T=y.segment.time,v=T+y.segment.duration;Vt(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let I=i.getReadyState();if(I===void 0||I>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],c=On(o,n);if(c!==null&&(c.bufferedEnd===void 0||n.start-c.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:I}=B.getCurrent(),y=e.type,T=(g=I[y].before)!=null?g:0,v=(S=I[y].after)!=null?S:0,E=i.getCurrentTime();E===void 0&&(E=i.getReference().getValue().position.getPolled()),u.push({start:E-T,end:E+v})}if(n.end!==void 0){let I=Dn(o,n);I!==null&&(I.bufferedStart===void 0||I.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let l=uo(a,u);return l.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:l}:{type:"clean-buffer",value:l}}function cs({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentFetcherCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:c,period:l,adaptation:f}=e,p=new F;p.linkToSignal(u);let g=new Map,S=new W(null,p.signal),I,y=e.representations.getValue().representationIds,T=e.adaptation.representations.filter(P=>$(y,P.id)&&P.decipherable!==!1&&P.isSupported!==!1),v=new W(T,p.signal),{estimates:E,callbacks:R}=r({manifest:c,period:l,adaptation:f},S,v,n,p.signal),k=o.createSegmentFetcher(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics}),A=new W(0);E.onUpdate(({bitrate:P,knownStableBitrate:M})=>{t.enableFastSwitching&&A.setValueIfChanged(M),!(P===void 0||P===I)&&(I=P,m.debug(`Stream: new ${f.type} bitrate estimate`,P),d.bitrateEstimateChange({type:f.type,bitrate:P}))},{emitCurrentValue:!0,clearSignal:p.signal});let C;e.representations.onUpdate(P=>{C!==void 0&&C.cancel();let M=e.representations.getValue().representationIds,O=e.adaptation.representations.filter(U=>$(M,U.id));v.setValueIfChanged(O),C=new F,C.linkToSignal(p.signal),x(P,C.signal).catch(U=>{(C==null?void 0:C.isUsed())===!0&&F.isCancellationError(U)||(p.cancel(),d.error(U))})},{clearSignal:p.signal,emitCurrentValue:!0});return;async function x(P,M){let O=ls(l,f,P,i,n);switch(O.type){case"continue":break;case"needs-reload":return Tt(()=>{n.listen(()=>{if(M.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:U}=B.getCurrent(),H=U.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:H,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:M})});case"flush-buffer":case"clean-buffer":for(let U of O.value)if(await i.removeBuffer(U.start,U.end),M.isCancelled())return;if(O.type==="flush-buffer"&&(d.needsBufferFlush(),M.isCancelled()))return;break;default:Xe(O)}N(M)}function N(P){let M=new F;M.linkToSignal(P);let{representation:O}=E.getValue();if(O===null)return;let U=new W(null,M.signal);E.onUpdate(G=>{if(!(G.representation===null||G.representation.id===O.id))return G.urgent?(m.info("Stream: urgent Representation switch",f.type),U.setValue({urgent:!0})):(m.info("Stream: slow Representation switch",f.type),U.setValue({urgent:!1}))},{clearSignal:M.signal,emitCurrentValue:!0});let H={type:f.type,adaptation:f,period:l,representation:O};if(S.setValue(O),p.isUsed()||(d.representationChange(H),p.isUsed()))return;let q={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(G){p.cancel(),d.error(G)},addedSegment(G){R.addedSegment(G)},terminating(){if(!M.isUsed())return M.cancel(),N(P)}};D(O,U,q,P)}function D(P,M,O,U){let H=new F;H.linkToSignal(U);let q=dn(a,ne=>ne*L(P),H.signal),G=f.type==="video"?s:new W(1/0);m.info("Stream: changing representation",f.type,P.id,P.bitrate);let K=Y({},O,{error(ne){var se;let j=xe(ne,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(j.code!=="BUFFER_FULL_ERROR")O.error(ne);else{let oe=a.getValue(),ae=((se=g.get(P.id))!=null?se:1)*.7;if(ae<=.05||oe*ae<=2)throw j;g.set(P.id,ae),Gt(4e3,p.signal).then(()=>D(P,M,O,U)).catch(Q)}},terminating(){H.cancel(),O.terminating()}});fc({playbackObserver:n,content:{representation:P,adaptation:f,period:l,manifest:c},segmentSink:i,segmentFetcher:k,terminate:M,options:{bufferGoal:q,maxBufferSize:G,drmSystemId:t.drmSystemId,fastSwitchThreshold:A}},K,U),c.addEventListener("manifestUpdate",ne=>{for(let j of ne.updatedPeriods)if(j.period.id===l.id){for(let se of j.result.updatedAdaptations)if(se.adaptation===f.id){for(let oe of se.removedRepresentations)if(oe===P.id)return U.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:0,stayInPeriod:!0})}}else if(j.period.start>l.start)break},U)}function L(P){let M=g.get(P.id),O=M!==void 0?M:1;return M===void 0&&g.set(P.id,O),O}}var mc=cs;function qe(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}function rg(n,e){let[t,...r]=n.split(";"),[i,...o]=e.split(";");if(t!==i)return!1;let a=X(r,c=>qe(c,"codecs=")),s=X(o,c=>qe(c,"codecs="));if(a===void 0||s===void 0)return!1;let d=a.substring(7),u=s.substring(7);return d.split(".")[0]===u.split(".")[0]}var pc=rg;function fs(n,e,t,r,i,o){var p,g,S,I;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!ig(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let y of a)y.infos.period.id===e.id&&y.infos.adaptation.id!==t.id&&Vt(s,{start:(p=y.bufferedStart)!=null?p:y.start,end:(g=y.bufferedEnd)!=null?g:y.end});let d=n.getPendingOperations();for(let y of d)if(y.type===0){let T=y.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,E=v+T.segment.duration;Vt(s,{start:v,end:E})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let y=i.getReadyState();if(y===void 0||y>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",c=[],l=On(a,e);if(l!==null&&(l.bufferedEnd===void 0||e.start-l.bufferedEnd<1)&&c.push({start:0,end:e.start+1}),!u){let y=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=B.getCurrent(),v=(S=T[y].before)!=null?S:0,E=(I=T[y].after)!=null?I:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),c.push({start:R-v,end:R+E})}if(e.end!==void 0){let y=Dn(a,e);y!==null&&(y.bufferedStart===void 0||y.bufferedStart-e.end<1)&&c.push({start:e.end-1,end:Number.MAX_VALUE})}let f=uo(s,c);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function ig(n,e){return n.representations.some(t=>t.isSupported===!0&&t.decipherable!==!1&&pc(t.getMimeTypeString(),e))}function ms({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentFetcherCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},c,l){let{manifest:f,period:p}=e,g=new W(void 0,l);if(c.periodStreamReady({type:n,manifest:f,period:p,adaptationRef:g}),l.isCancelled())return;let S,I=!0;g.onUpdate(v=>{(async()=>{var P;if(v===void 0)return;let E=new F;if(E.linkToSignal(l),S==null||S.cancel(),S=E,v===null){m.info(`Stream: Set no ${n} Adaptation. P:`,p.start);let M=a.getStatus(n);if(M.type==="initialized"){if(m.info(`Stream: Clearing previous ${n} SegmentSink`),qt.isNative(n))return T(0,!0,E.signal);{let O=(P=p.end)!=null?P:1/0;if(p.start>O)m.warn("Stream: Can't free buffer: period's start is after its end");else if(await M.value.removeBuffer(p.start,O),E.isUsed())return}}else if(M.type==="uninitialized"&&(a.disableSegmentSink(n),E.isUsed()))return;return c.adaptationChange({type:n,adaptation:null,period:p}),E.isUsed()?void 0:gc(r,d,n,{period:p},c,E.signal)}let R=p.adaptations[n],k=X(R!=null?R:[],M=>M.id===v.adaptationId);if(k===void 0){S.cancel(),m.warn("Stream: Unfound chosen Adaptation choice",v.adaptationId);return}let{DELTA_POSITION_AFTER_RELOAD:A}=B.getCurrent(),C=!1,x;if(I)x=0;else if(v.relativeResumingPosition!==void 0)x=v.relativeResumingPosition;else switch(C=!0,n){case"audio":x=A.trackSwitch.audio;break;case"video":x=A.trackSwitch.video;break;default:x=A.trackSwitch.other;break}if(I=!1,qt.isNative(n)&&a.getStatus(n).type==="disabled")return T(x,!0,E.signal);f.addEventListener("manifestUpdate",M=>{for(let O of M.updatedPeriods)if(O.period.id===p.id){for(let U of O.result.removedAdaptations)if(U.id===k.id)return T(x,!0,E.signal)}else if(O.period.start>p.start)break},S.signal);let{representations:N}=v;if(m.info(`Stream: Updating ${n} adaptation`,`A: ${k.id}`,`P: ${p.start}`),c.adaptationChange({type:n,adaptation:k,period:p}),E.isUsed())return;let D=og(a,n,k),L=fs(D,p,k,v.switchingMode,r,s);if(L.type==="needs-reload")return T(x,!0,E.signal);if(await a.waitForUsableBuffers(E.signal),!E.isUsed()){if(L.type==="flush-buffer"||L.type==="clean-buffer"){for(let{start:M,end:O}of L.value)if(await D.removeBuffer(M,O),E.isUsed())return;if(L.type==="flush-buffer"&&(c.needsBufferFlush({relativeResumingPosition:x,relativePosHasBeenDefaulted:C}),E.isUsed()))return}t.get(D)(E.signal),y(k,N,D,E.signal)}})().catch(E=>{E instanceof Ae||(S==null||S.cancel(),c.error(E))})},{clearSignal:l,emitCurrentValue:!0});function y(v,E,R,k){let A=sg(r,v.type);mc({content:{manifest:f,period:p,adaptation:v,representations:E},options:s,playbackObserver:A,representationEstimator:i,segmentSink:R,segmentFetcherCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},Se(ce({},c),{error:C}),k);function C(x){if(!qt.isNative(n)){m.error(`Stream: ${n} Stream crashed. Aborting it.`,x instanceof Error?x:""),a.disposeSegmentSink(n);let N=xe(x,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return c.warning(N),k.isCancelled()?void 0:gc(r,d,n,{period:p},c,k)}m.error(`Stream: ${n} Stream crashed. Stopping playback.`,x instanceof Error?x:""),c.error(x)}}function T(v,E,R){Tt(()=>{r.listen(()=>{R.isCancelled()||c.waitingMediaSourceReload({bufferType:n,period:p,timeOffset:v,stayInPeriod:E})},{includeLastObservation:!0,clearSignal:R})})}}function og(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream: Reusing a previous SegmentSink for the type",e),r.value;let i=ag(t);return n.createSegmentSink(e,i)}function ag(n){let e=n.representations.filter(t=>t.isSupported===!0&&t.decipherable!==!1);if(e.length===0)throw new Z("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Wt(n)]});return e[0].getMimeTypeString()}function sg(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new W(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],c=u!==null?so(u,d.position.getWanted()):0;return Y({},d,{bufferGap:c,buffered:u})}function s(){o.setValue(a())}})}function gc(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),c=e.getValue(),l=u.position.getWanted();a.end!==void 0&&l+c>=a.end&&(m.debug('Stream: full "empty" AdaptationStream',t),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:l,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var hc=ms;function Ro(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory();for(let i=0;i<r.length;i++){let o=r[i];if(e.some(s=>o.infos.period.id===s.period.id&&o.infos.adaptation.id===s.adaptation.id&&o.infos.representation.id===s.representation.id)){let{bufferedStart:s,bufferedEnd:d}=o;if(s===void 0||d===void 0)return m.warn("SO: No buffered start or end found from a segment."),[{start:0,end:Number.MAX_VALUE}];let u=t[t.length-1];u!==void 0&&u.end===s?u.end=d:t.push({start:s,end:d})}}return t}function ps(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:c,maxBufferBehind:l,wantedBufferAhead:f,maxVideoBufferSize:p}=o,{MINIMUM_MAX_BUFFER_AHEAD:g,MAXIMUM_MAX_BUFFER_AHEAD:S,MAXIMUM_MAX_BUFFER_BEHIND:I}=B.getCurrent(),y=new Br(E=>{var C,x;let{bufferType:R}=E,k=(C=I[R])!=null?C:1/0,A=(x=S[R])!=null?x:1/0;return N=>{_o({segmentSink:E,playbackObserver:e,maxBufferBehind:dn(l,D=>Math.min(D,k),N),maxBufferAhead:dn(c,D=>{var P;let L=Math.max(D,(P=g[R])!=null?P:0);return Math.min(L,A)},N)},N)}});for(let E of r.getBufferTypes())T(E,u);function T(E,R){let k=new mn((L,P)=>L.start-P.start),A=!1,C=new F;return C.linkToSignal(s),e.listen(({position:L})=>{var O;let P=L.getWanted();if(!A||!N(P))return;for(m.info("Stream: Destroying all PeriodStreams due to out of bounds situation",E,P),A=!1;k.length()>0;){let U=k.get(k.length()-1);k.removeElement(U),a.periodStreamCleared({type:E,manifest:d,period:U})}C.cancel(),C=new F,C.linkToSignal(s);let M=(O=d.getPeriodForTime(P))!=null?O:d.getNextPeriod(P);if(M===void 0){m.warn("Stream: The wanted position is not found in the Manifest."),A=!0;return}x(M)},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",L=>{s.isCancelled()||D(L).catch(P=>{s.isCancelled()||(C.cancel(),a.error(P))})},s),x(R);function x(L){let P=Se(ce({},a),{waitingMediaSourceReload(M){let O=k.head();O===void 0||O.id!==M.period.id?a.lockedStream({bufferType:M.bufferType,period:M.period}):a.needsMediaSourceReload({timeOffset:M.timeOffset,minimumPosition:M.stayInPeriod?M.period.start:void 0,maximumPosition:M.stayInPeriod?M.period.end:void 0})},periodStreamReady(M){A=!0,k.add(M.period),a.periodStreamReady(M)},periodStreamCleared(M){k.removeElement(M.period),a.periodStreamCleared(M)},error(M){C.cancel(),a.error(M)}});v(E,L,P,C.signal)}function N(L){let P=k.head(),M=k.last();return P===void 0||M===void 0?!0:P.start>L||(_(M.end)?1/0:M.end)<L}async function D(L){let P=r.getStatus(E),M=L.filter(K=>K.adaptation.type===E);if(M.length===0||P.type!=="initialized"||M.every(K=>K.representation.decipherable===!0))return;let O=P.value,U=M.filter(K=>K.representation.decipherable===void 0),H=M.filter(K=>K.representation.decipherable===!1),q=Ro(O,H),G=Ro(O,U);for(A=!1,m.info("Stream: Destroying all PeriodStreams for decipherability matters",E);k.length()>0;){let K=k.get(k.length()-1);k.removeElement(K),a.periodStreamCleared({type:E,manifest:d,period:K})}C.cancel(),C=new F,C.linkToSignal(s);for(let{start:K,end:ne}of[...q,...G]){if(s.isCancelled())return;if(K<ne){if(s.isCancelled())return;await O.removeBuffer(K,ne)}}Tt(()=>{if(s.isCancelled())return;let K=e.getReference().getValue();if(Ic(K,q)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(Ic(K,G)&&(a.needsBufferFlush(),s.isCancelled()))return;let ne=K.position.getWanted(),j=d.getPeriodForTime(ne);if(j===void 0){a.error(new Z("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}x(j)})}}function v(E,R,k,A){m.info("Stream: Creating new Stream for",E,R.start);let C=null,x=new F;x.linkToSignal(A),e.listen(({position:M},O)=>{if(R.end!==void 0&&M.getWanted()>=R.end){let U=d.getPeriodAfter(R);if(R.containsTime(M.getWanted(),U))return;m.info("Stream: Destroying PeriodStream as the current playhead moved above it",E,R.start,M.getWanted(),R.end),O(),k.periodStreamCleared({type:E,manifest:d,period:R}),x.cancel()}},{clearSignal:A,includeLastObservation:!0});let N={bufferType:E,content:{manifest:d,period:R},garbageCollectors:y,maxVideoBufferSize:p,segmentFetcherCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},D=Se(ce({},k),{streamStatusUpdate(M){if(M.hasFinishedLoading){let O=d.getPeriodAfter(R);O!==null&&L(O)}else C!==null&&(m.info("Stream: Destroying next PeriodStream due to current one being active",E,C.period.start),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel(),C=null);k.streamStatusUpdate(M)},error(M){C!==null&&(C.canceller.cancel(),C=null),x.cancel(),k.error(M)}});hc(N,D,x.signal),P(x.signal);function L(M){if(C!==null){if(C.period.id===M.id)return;m.warn("Stream: Creating next `PeriodStream` while one was already created.",E,M.id,C.period.id),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel()}let O=new F;O.linkToSignal(A),C={canceller:O,period:M},v(E,M,k,C.canceller.signal)}function P(M){d.addEventListener("manifestUpdate",O=>{for(let U of O.removedPeriods)if(U.id===R.id){if(d.periods.length>0&&d.periods[0].start<=U.start)return Tt(()=>{if(!M.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(U.start>R.start)break;if(O.addedPeriods.length>0&&C!==null){let U=d.getPeriodAfter(R);(U===null||C.period.id!==U.id)&&(m.warn("Stream: Destroying next PeriodStream due to new one being added",E,C.period.start),k.periodStreamCleared({type:E,manifest:d,period:C.period}),C.canceller.cancel(),C=null)}},M)}}}function Ic(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var yc=ps;var Sc=yc;var dg={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},Q),{syncValue:e,getValueAsAsync(){return n}}}},bc=dg;function gs(){return rn}function hs(){return ar}function zr(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("Compat: MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("Compat: Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("Compat: Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return hs()?r:Promise.race([r,pn(1e3)])}var Is=new WeakMap,Le={setState(n,e){Is.set(n,e)},getState(n){let e=Is.get(n);return e===void 0?null:e},clearState(n){Is.set(n,null)}};async function Nn(n){let e=Le.getState(n);if(e===null)return;m.info("DRM: Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e;return Le.clearState(n),await t.closeAllSessions(),zr(e.emeImplementation,n,null)}function ko(n){if(m.info("DRM: Clearing-up DRM session."),gs())return m.info("DRM: disposing current MediaKeys."),Nn(n);let e=Le.getState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM: closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM: Nothing to clear. Returning right away. No state =",e===null),Promise.resolve())}function Po(n){let e=new F;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await Gt(1e3,e.signal),await r()}catch(i){if(i instanceof Ae)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error(`DRM: ${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await Gt(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var ug=["","webkit","moz","ms"];function lg(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function cg(n,e){return e.filter(t=>lg(n,t))[0]}function fg(n,e){return n.reduce((t,r)=>t.concat((e===void 0?ug:e).map(i=>i+r)),[])}function Ie(n,e){let t,r=fg(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=cg(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{h.CURRENT_ENV===h.DEV&&m.warn(`compat: element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function mg(n){let e,t=document;_(t.hidden)?_(t.mozHidden)?_(t.msHidden)?_(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new W(!o,n);return gn(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function Tc(n,e){let t=n;if(t.webkitSupportsPresentationMode===!0&&typeof t.webkitSetPresentationMode=="function"){let o=t.webkitPresentationMode==="picture-in-picture",a=new W({isEnabled:o,pipWindow:null},e);return gn(t,"webkitpresentationmodechanged",()=>{let s=t.webkitPresentationMode==="picture-in-picture";a.setValue({isEnabled:s,pipWindow:null})},e),a}let r=document.pictureInPictureElement===t,i=new W({isEnabled:r,pipWindow:null},e);return gn(t,"enterpictureinpicture",o=>{var a;i.setValue({isEnabled:!0,pipWindow:(a=o.pictureInPictureWindow)!=null?a:null})},e),gn(t,"leavepictureinpicture",()=>{i.setValue({isEnabled:!1,pipWindow:null})},e),i}function _c(n,e){let t=mg(e),r,i=new W(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=B.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function Ec(n){var o,a;let e=_(re.devicePixelRatio)||re.devicePixelRatio===0?1:re.devicePixelRatio,t=new W({width:(o=re.screen)==null?void 0:o.width,height:(a=re.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function vc(n,e,t){let r=_(re.devicePixelRatio)||re.devicePixelRatio===0?1:re.devicePixelRatio,i=new W({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=Q;e.onUpdate(s,{clearSignal:t}),gn(re,"resize",s,t),gn(n,"enterpictureinpicture",s,t),gn(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(_(u)){let l=i.getValue();(l.width!==void 0||l.height!==void 0||l.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let l=()=>{c()};u.addEventListener("resize",l),o=()=>{u.removeEventListener("resize",l),o=Q},c()}else{let l=i.getValue();(l.width!==n.clientWidth||l.height!==n.clientHeight||l.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function c(){let l=i.getValue();(l.width!==(u==null?void 0:u.width)||l.height!==(u==null?void 0:u.height)||l.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var WO=Ie(["loadedmetadata"]),GO=Ie(["timeupdate"]),qO=Ie(["addtrack"]),jO=Ie(["removetrack"]),Un=Ie(["sourceopen","webkitsourceopen"]),Ao=Ie(["sourceclose","webkitsourceclose"]),Co=Ie(["sourceended","webkitsourceended"]),Rc=Ie(["update"]),kc=Ie(["removesourcebuffer"]),Mo=Ie(["keymessage","message"]),Pc=Ie(["keyadded","ready"]),xo=Ie(["keyerror","error"]),Ac=Ie(["keystatuseschange"]),Cc=Ie(["seeking"]),Mc=Ie(["seeked"]),xc=Ie(["ended"]);function gn(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}var ct,{WebKitMediaKeys:wo}=re;wo!==void 0&&typeof wo.isTypeSupported=="function"&&typeof wo.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function"&&(ct=wo);function ys(){return(Aa||an)&&ct!==void 0}var Hr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function Rt(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var kt,{MSMediaKeys:Wr}=re;Wr!==void 0&&Wr.prototype!==void 0&&typeof Wr.isTypeSupported=="function"&&typeof Wr.prototype.createSession=="function"&&(kt=Wr);var Ss=class extends ie{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new F,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t())}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Mo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),Pc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),xo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{_(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},Oo=class{constructor(e){if(kt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new kt(e)}_setVideo(e){return Rt(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new Ss(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function bs(){return{isTypeSupported:(r,i)=>{if(kt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?kt.isTypeSupported(r,i):kt.isTypeSupported(r)},createCustomMediaKeys:r=>new Oo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Oo))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var jt,{MozMediaKeys:Gr}=re;Gr!==void 0&&Gr.prototype!==void 0&&typeof Gr.isTypeSupported=="function"&&typeof Gr.prototype.createSession=="function"&&(jt=Gr);function Ts(){return{isTypeSupported:(r,i)=>{if(jt===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?jt.isTypeSupported(r,i):jt.isTypeSupported(r)},createCustomMediaKeys:r=>{if(jt===void 0)throw new Error("No MozMediaKeys API.");return new jt(r)},setMediaKeys:(r,i)=>Rt(()=>{let o=r;if(o.mozSetMediaKeys===void 0||typeof o.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return o.mozSetMediaKeys(i)})}}var Pt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],wc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Do(n){if(n>=wc.length)throw new Error("Unable to parse base64 string.");let e=wc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function Lo(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Pt[(n[t-1]&15)<<2|n[t]>>6],e+=Pt[n[t]&63];return t===r+1&&(e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Pt[n[t-2]>>2],e+=Pt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Pt[(n[t-1]&15)<<2],e+="="),e}function ft(n){let e=n.length%4,t=n;e!==0&&(m.warn("base64ToBytes: base64 given miss padding"),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Do(t.charCodeAt(d))<<18|Do(t.charCodeAt(d+1))<<12|Do(t.charCodeAt(d+2))<<6|Do(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}var Dc=typeof re=="object"&&typeof re.TextDecoder=="function",gg=typeof re=="object"&&typeof re.TextEncoder=="function";function No(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Uo(n){if(Dc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"";m.warn("Utils: could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function _e(n){if(gg)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function hg(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function Oc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function we(n){if(Dc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=hg(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_\+-\.\/]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+Oc(a,4):"%"+Oc(a,2)}}return decodeURIComponent(r)}function je(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Oe(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function Bo(n){J(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function _s(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:we(r)}}function vs(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var Es=class extends ie{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=Q,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i()}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=e instanceof ArrayBuffer?new Uint8Array(e):e,o=JSON.parse(we(i)),a=ft(o.keys[0].k),s=ft(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},Fo=class{constructor(e){this._keySystem=e}_setVideo(e){return Rt(()=>{if(!vs(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(_(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new Es(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function Rs(){return{isTypeSupported:function(r){let i=document.querySelector("video");return _(i)&&(i=document.createElement("video")),!_(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new Fo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Fo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function te(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Ko(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function ks(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function ee(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function Ne(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function le(n){return new Uint8Array([n>>>8&255,n&255])}function ge(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function Yt(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Lc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Nc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function Uc(n){return new Uint8Array([n&255,n>>>8&255])}function qr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function Ps(n,e){let t=n instanceof Uint8Array?n:new Uint8Array(n),r=e instanceof Uint8Array?e:new Uint8Array(e);if(Nc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Uo(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=No(s),u=0,c=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return c.set(t),u+=t.length,c.set(qr(d.byteLength),u),u+=4,c.set(d,u),u+=d.byteLength,c.set(qr(r.byteLength),u),u+=4,c.set(r,u),c}function Ig(n){return qe(n,"com.apple.fps")}function Bc(n,e){let t=n;return Rt(()=>{if(t.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");t.webkitSetMediaKeys(e)})}var As=class extends ie{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=Q,this._closeSession=Q,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i;e instanceof ArrayBuffer?i=new Uint8Array(e):e instanceof Uint8Array?i=e:i=new Uint8Array(e.buffer),t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Ig(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=Ps(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession(),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},Vo=class{constructor(e){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new ct(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Bc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new As(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve()}};function zo(){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:ct.isTypeSupported,createCustomMediaKeys:r=>new Vo(r),setMediaKeys:(r,i)=>{if(i===null)return Bc(r,i);if(!(i instanceof Vo))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return i._setVideo(r)}}}var yg=Sg("auto"),Fc=yg;function Sg(n){var o;let e,t,r=bg,i;if((n==="standard"||n==="auto"&&!ys())&&(Ft||!_(navigator.requestMediaKeySystemAccess)))e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=Ie(["encrypted"]),i="standard";else{let a,s;if(n==="webkit"&&ct!==void 0){t=Ie(["needkey"]);let d=zo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(vs((o=re.HTMLVideoElement)==null?void 0:o.prototype)){t=Ie(["needkey"]);let d=Rs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(ct!==void 0){t=Ie(["needkey"]);let d=zo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(rn&&kt!==void 0){t=Ie(["encrypted","needkey"]);let d=bs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(jt!==void 0){t=Ie(["encrypted","needkey"]);let d=Ts();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=Ie(["encrypted","needkey"]);let d=re.MediaKeys,u=()=>{if(d===void 0)throw new Z("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let c="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(c)}};a=c=>(u(),J(typeof d.isTypeSupported=="function"),d.isTypeSupported(c)),s=c=>(u(),new d(c)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let c=0;c<u.length;c++){let l=u[c],{videoCapabilities:f,audioCapabilities:p,initDataTypes:g,distinctiveIdentifier:S}=l,I=!0;if(I=I&&(_(g)||g.some(y=>y==="cenc")),I=I&&S!=="required",I){let y={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(y.videoCapabilities=f),p!==void 0&&(y.audioCapabilities=p);let T=s(d);return Promise.resolve(new Hr(d,T,y))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function bg(n,e){try{let t,r=n;return typeof r.setMediaKeys=="function"?t=r.setMediaKeys(e):typeof r.webkitSetMediaKeys=="function"?t=r.webkitSetMediaKeys(e):typeof r.mozSetMediaKeys=="function"?t=r.mozSetMediaKeys(e):typeof r.msSetMediaKeys=="function"&&e!==null&&(t=r.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function yt(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=ee(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=Ne(n,r+8)}if(isNaN(i)||i<=0)return-1;if(ee(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function Ho(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=yt(r,1836019558);if(i<0)break;let o=ee(n,i+e),a=e+i+o;if(a>n.length)break;let s=yt(r,1835295092);if(s<0)break;let d=ee(n,s+e),u=e+s+d;if(u>n.length)break;let c=Math.max(a,u),l=n.subarray(e,c);t.push(l),e=c}return t.length===0?[null,r]:[t,r]}function Tg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function _g(n,e,t){return n.slice(e,t)}var Cs=typeof Uint8Array.prototype.slice=="function"?_g:Tg;function Ms(n,e){let t=n;for(let r of e){let i=Ee(t,r);if(i===null)return null;t=i}return t}function Ee(n,e){let t=Ue(n,e);return t!==null?n.subarray(t[1],t[2]):null}function Kc(n,e){let t=[],r=n;for(;;){let i=Ue(r,e);if(i===null)return t;J(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function xs(n,e){let t=Ue(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ue(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=ee(n,a),a+=4,i=ee(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=Ne(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function hn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=ee(n,d),d+=4;let u=ee(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=Ne(n,d),d+=8}if(u===1970628964&&d+16<=o&&ee(n,d)===e&&ee(n,d+4)===t&&ee(n,d+8)===r&&ee(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function ws(n){let e=n.length;if(e<8)return m.warn("ISOBMFF: box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=ee(n,t);t+=4;let i=ee(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("ISOBMFF: box too short, cannot find offsets"),null;r=Ne(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function Wo(n){let e=0,t=Ee(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ue(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=Cs(t,i[0],i[2]),a=Go(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function Go(n,e){if(n[e]>1){m.warn("ISOBMFF: un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=Cs(n,t,t+16);return Oe(r)}var jr=Math.pow(2,32)-1;var Os={};function Vc(n){if(Os[n]!==void 0)return Os[n];let e=_e(n);return Os[n]=e,e}function de(n,e){let t=e.length+8;return t<=jr?te(ge(t),Vc(n),e):te(ge(1),Vc(n),Yt(t+8),e)}function Ce(n,e){return de(n,te(...e))}function Yr(n){let e=Ee(n,1836019558);return e===null?null:Ee(e,1953653094)}function zc(n){return Kc(n,1836019558).reduce((t,r)=>{let i=Ee(r,1953653094);return i!==null&&t.push(i),t},[])}function $r(n){return Ee(n,1835295092)}function Ds(n){let e=Ee(n,1836019574);if(e===null)return null;let t=Ee(e,1953653099);return t===null?null:Ee(t,1835297121)}function Hc(n,e=0){return Ee(n.subarray(e),1701671783)}function Qr(n){let e=Lc(n,8),t=Uo(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=Bo(ft(o));return Oe(a).toLowerCase()}function Xr(n,e){let t=Ue(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=ee(n,o);o+=4;let d;if(a===0)d=ee(n,o),o+=4,r+=ee(n,o)+i,o+=4;else if(a===1)d=Ne(n,o),o+=8,r+=Ne(n,o)+i,o+=8;else return null;let u=[];o+=2;let c=Ko(n,o);for(o+=2;--c>=0;){let l=ee(n,o);o+=4;let f=(l&2147483648)>>>31,p=l&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let g=ee(n,o);o+=4,o+=4,u.push({time:d,duration:g,timescale:s,range:[r,r+p-1]}),d+=g,r+=p}return u}function Ls(n){let e=Yr(n);if(e===null)return;let t=Ee(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return Ne(t,4);if(r===0)return ee(t,4)}function Eg(n){let e=Ee(n,1952868452);if(e===null)return;let t=1,r=ks(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),ee(e,t)):void 0}function Zr(n){let e=zc(n);if(e.length===0)return;let t=0;for(let r of e){let i=Ee(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=ks(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=Eg(r),u===void 0))return;let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,g=(s&2048)>0,S=ee(i,o);o+=4,c&&(o+=4),l&&(o+=4);let I=S,y=0;for(;I-- >0;)d?(y+=ee(i,o),o+=4):y+=u,f&&(o+=4),p&&(o+=4),g&&(o+=4);t+=y}return t}function Jr(n){let e=Ds(n);if(e===null)return;let t=Ee(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return ee(t,r+16);if(i===0)return ee(t,r+8)}function Ns(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=ee(n,0);if(t===0)if(e>jr){let r=new Uint8Array(e+8);return r.set(ge(1),0),r.set(n.subarray(4,8),4),r.set(Yt(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(ge(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(Yt(e),8),n}else{if(e<=jr)return n.set(ge(e),0),n;{let r=new Uint8Array(e+8);return r.set(ge(1),0),r.set(n.subarray(4,8),4),r.set(Yt(e+8),8),r.set(n.subarray(8,e),16),r}}}function Wc(n){let e=[],t=0;for(;t<n.length;){let r=Hc(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("ISOBMFF: EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=_s(r,a);a=s;let{end:u,string:c}=_s(r,a);a=u;let l=ee(r,a);a+=4;let f=ee(r,a);a+=4;let p=ee(r,a);a+=4;let g=ee(r,a);a+=4;let S=r.subarray(a,i),I={schemeIdUri:d,value:c,timescale:l,presentationTimeDelta:f,eventDuration:p,id:g,messageData:S};e.push(I)}}if(e.length!==0)return e}function Gc(n){let e=Ms(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Ee(t,1701733238),i=0;if(r===null?(i=28,r=Ee(t,1701733217)):i=78,r===null)return null;let o=Ms(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var qo=ee(_e("pssh"),0);function vg(n){m.info("Compat: Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||ee(n,i+4)!==qo)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=ee(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=ws(a),d=s===null?void 0:a[s[1]];m.info("Compat: CENC PSSH found with version",d),d===void 0?m.warn("Compat: could not read version of CENC PSSH"):e===(d===1)?t=te(t,a):d===1?(m.warn("Compat: cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("Compat: filtering out cenc pssh box with wrong version",d)}else r=te(r,a);i+=o}if(i!==n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return te(r,t)}function ei(n,e,t){m.debug("Compat: Calling generateRequest on the MediaKeySession");let r;try{r=vg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn('Compat: error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function Rg(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||ee(n,t+4)!==qo)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=ee(new Uint8Array(n),t);if(t+r>n.length)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:Go(i,8),data:i};kg(e,a)?m.warn("Compat: Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function kg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&me(e.data,r.data))return!0}return!1}function jo(n){let{initData:e,initDataType:t}=n;if(_(e))return m.warn("Compat: No init data found on media encrypted event."),null;let r=new Uint8Array(e),i=Rg(r);return{type:t,values:i}}var Pg=100;async function ti(n,e){m.info("DRM: Load persisted session",e);let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,Pg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var St=Fc;function qc(n){var t;let e=Le.getState(n);return Le.setState(n,null),zr((t=e==null?void 0:e.emeImplementation)!=null?t:St,n,null)}async function Us(n,{emeImplementation:e,keySystemOptions:t,loadedSessionsStore:r,mediaKeySystemAccess:i,mediaKeys:o},a){let s=Le.getState(n);if(await(s!==null&&s.loadedSessionsStore!==r?s.loadedSessionsStore.closeAllSessions():Promise.resolve()),a.isCancelled())throw a.cancellationError;if(Le.setState(n,{emeImplementation:e,keySystemOptions:t,mediaKeySystemAccess:i,mediaKeys:o,loadedSessionsStore:r}),n.mediaKeys!==o)return m.info("DRM: Attaching MediaKeys to the media element"),zr(e,n,o).then(()=>{m.info("DRM: MediaKeys attached with success")}).catch(u=>{let c=u instanceof Error?u.toString():"Unknown Error";throw new fe("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+c)})}function ni(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM: isSessionUsable: MediaKeySession given has an empty keyStatuses",n.sessionId),!1):$(t,"expired")?(m.debug("DRM: isSessionUsable: MediaKeySession given has an expired key",n.sessionId),!1):$(t,"internal-error")?(m.debug("DRM: isSessionUsable: MediaKeySession given has a key with an internal-error",n.sessionId),!1):(m.debug("DRM: isSessionUsable: MediaKeySession is usable",n.sessionId),!0)}function Bs(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?jc(i,e):o===null?(m.warn("DRM: Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),jc(i,e)):Ag(i,o,e,r)}function jc(n,e){m.info("DRM: Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function Ag(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM: No data stored for the loaded session"),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&ni(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM: Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM: Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM: Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function Fs(n,e){if(e<0||e>=n.getLength())return;m.info("DRM: LSS cache limit exceeded",e,n.getLength());let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Ks(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,ni(o))return m.info("DRM: Reuse loaded session",o.sessionId),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await Fs(a,r),i.cancellationError!==null))throw i.cancellationError;let u=await Bs(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Vs(){return!ar&&!Ma}function Yc(n){return!(ir&&n.indexOf("playready")!==-1)}var $c='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function Qc(n){let e=No(n),t=Uc(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=qr(e.length+6),a=te(o,i,r,t,e),s=je("9a04f07998404286ab92e65be0885f95");return Cg(a,s)}function Cg(n,e){let t=_e("pssh"),r=new Uint8Array([0,0,0,0]),i=ge(n.length),o=ge(32+n.length);return te(o,t,r,e,i,n)}function zs(){return rn}function Bn(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function Mg(n,e,t){let r=e.getConfiguration();if(zs()||_(r))return null;let i=n.filter(o=>!(o.type!==t.type||(!_(o.persistentLicenseConfig)||o.persistentState==="required")&&r.persistentState!=="required"||o.distinctiveIdentifier==="required"&&r.distinctiveIdentifier!=="required"))[0];return i!==void 0?{keySystemOptions:i,keySystemAccess:e}:null}function xg(n){let{EME_KEY_SYSTEMS:e}=B.getCurrent();for(let t of Object.keys(e))if($(e[t],n))return t}function wg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i=["temporary"],o="optional",a="optional";_(r.persistentLicenseConfig)||(o="required",i.push("persistent-license")),_(r.persistentState)||(o=r.persistentState),_(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:c}=B.getCurrent(),l,f,{audioCapabilitiesConfig:p,videoCapabilitiesConfig:g}=r;if((p==null?void 0:p.type)==="full")l=p.value;else{let I;(p==null?void 0:p.type)==="robustness"?I=p.value:e==="widevine"?I=u:t==="com.microsoft.playready.recommendation"?I=c:I=[],I.length===0&&I.push(void 0);let y=(p==null?void 0:p.type)==="contentType"?p.value:s;l=Bn(I,T=>y.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((g==null?void 0:g.type)==="full")f=g.value;else{let I;(g==null?void 0:g.type)==="robustness"?I=g.value:e==="widevine"?I=u:t==="com.microsoft.playready.recommendation"?I=c:I=[],I.length===0&&I.push(void 0);let y=(g==null?void 0:g.type)==="contentType"?g.value:d;f=Bn(I,T=>y.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let S={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:l,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return[S,Se(ce({},S),{audioCapabilities:void 0,videoCapabilities:void 0})]}function Hs(n,e,t){m.info("DRM: Searching for compatible MediaKeySystemAccess");let r=Le.getState(n);if(r!==null&&St.implementation===r.emeImplementation.implementation){let a=Mg(e,r.mediaKeySystemAccess,r.keySystemOptions);if(a!==null)return m.info("DRM: Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:a.keySystemAccess,options:a.keySystemOptions}})}let i=e.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=B.getCurrent(),u=d[s.type],c;if(!_(u))c=u.map(l=>({keyName:s.type,keyType:l,keySystemOptions:s}));else{let l=xg(s.type),f=s.type;c=[{keyName:l,keyType:f,keySystemOptions:s}]}return a.concat(c)},[]);return o(0);async function o(a){if(a>=i.length)throw new fe("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.");if(_(St.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,c=wg(s);m.debug(`DRM: Request keysystem access ${d},${a+1} of ${i.length}`);try{let l=await Og(d,c);return m.info("DRM: Found compatible keysystem",d,a+1),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:l}}}catch(l){if(m.debug("DRM: Rejected access to keysystem",d,a+1),t.cancellationError!==null)throw t.cancellationError;return o(a+1)}}}async function Og(n,e){let t=await St.requestMediaKeySystemAccess(n,e);if(!Yc(n))try{let i=(await t.createMediaKeys()).createSession(),o=Qc($c);await i.generateRequest("cenc",o)}catch(r){throw m.debug("DRM: KeySystemAccess was granted but it is not usable"),r}return t}function Fn(n,e){for(let t of n)if(!e.some(i=>me(i,t)))return!1;return!0}function Xc(n,e){for(let t of n)if(e.some(i=>me(i,t)))return!0;return!1}var ri=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(me(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Fn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Fn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Fn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var ii=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new ri(e);m.debug("DRM-LSS: calling `createSession`",t);let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return _(i.closed)||i.closed.then(()=>{m.info("DRM-LSS: session was closed, removing it.",i.sessionId);let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn(`DRM-LSS: MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ce({},o)),m.debug("DRM-LSS: MediaKeySession added",o.sessionType,this._storage.length),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM-LSS: Reusing session:",r.mediaKeySession.sessionId,r.sessionType),ce({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ce({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM-LSS: generateRequest error. No MediaKeySession found with the given initData and initDataType"),ei(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await ei(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),ti(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await ti(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM-LSS: No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM-LSS: Closing all current MediaKeySessions",e.length),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){J(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM-LSS: Removing session without closing it",e.sessionId),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),Dg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function Dg(n){m.debug("DRM: Trying to close a MediaKeySession",n.sessionId);try{await Po(n),m.debug("DRM: Succeeded to close MediaKeySession");return}catch(e){m.error("DRM: Could not close MediaKeySession: "+(e instanceof Error?e.toString():"Unknown error"));return}}function $t(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var at=class{constructor(e){this.initData=e}toJSON(){return Lo(this.initData)}static decode(e){return ft(e)}};function Kn(n,e){var t,r;return(r=(t=Zc(n,e))!=null?t:Zc(e,n))!=null?r:!1}function Zc(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=at.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=at.decode(o.data):s=o.data.initData,!me(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let c;d.data instanceof Uint8Array?c=d.data:typeof d.data=="string"?c=at.decode(d.data):c=d.data.initData;let l;if(u.data instanceof Uint8Array?l=u.data:typeof u.data=="string"?l=at.decode(u.data):l=u.data.initData,!me(c,l))return!1;break}if(r===e.length)return null}return!0}return null}function Lg(n){Bl(n,{save:"function",load:"function"},"persistentLicenseConfig")}var oi=class{constructor(e){Lg(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM-PSS: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(_(r)||!w(r.sessionId)){m.warn("DRM-PSS: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM-PSS: Updating session info.",i),this._entries.splice(o,1)}else m.info("DRM-PSS: Add new session",i);let a=Ng(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new at(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM-PSS: initData to delete not found.");return}let r=this._entries[t];m.warn("DRM-PSS: Delete session from store",r.sessionId),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info(`DRM-PSS: Deleting last ${e} sessions.`),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM-PSS: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:$t(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(e.keyIds!==void 0){if(e.keyIds.every(d=>{let u=Lo(d);for(let c of o.keyIds)if(typeof c=="string"){if(u===c)return!0}else if(me(c.initData,d))return!0;return!1}))return i}else{let s=e.values.getFormattedValues();if(Kn(s,o.values))return i}break;case 3:let a=e.values.getFormattedValues();if(Kn(a,o.values))return i;break;case 2:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d)try{let u=typeof o.initData=="string"?at.decode(o.initData):o.initData.initData;if(me(u,s))return i}catch(u){m.warn("DRM-PSS: Could not decode initialization data.",u instanceof Error?u:"")}break}case 1:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d){if(typeof o.initData.length=="undefined")return i;if(me(o.initData,s))return i}break}default:{let{initDataHash:s}=r();if(o.initData===s)return i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM-PSS: Could not save MediaKeySession information",t)}}};function Ng(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new at(t)}))}var Yo=new WeakMap,In={prepare(n){Yo.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=$t(t);Yo.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=Yo.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=Yo.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if($t(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function Ug(n){let{persistentLicenseConfig:e}=n;return _(e)?null:(m.debug("DRM: Set the given license storage"),new oi(e))}async function Ws(n,e,t){let r=await Hs(n,e,t);if(t.cancellationError!==null)throw t.cancellationError;let{options:i,mediaKeySystemAccess:o}=r.value,a=Le.getState(n),s=Ug(i);if(Vs()&&a!==null&&r.type==="reuse-media-key-system-access"){let{mediaKeys:c,loadedSessionsStore:l}=a;if(In.hasOne(c)===!1||!_(i.serverCertificate)&&In.has(c,i.serverCertificate))return{mediaKeys:c,mediaKeySystemAccess:o,stores:{loadedSessionsStore:l,persistentSessionsStore:s},options:i}}let d=await Bg(o);m.info("DRM: MediaKeys created with success");let u=new ii(d);return{mediaKeys:d,mediaKeySystemAccess:o,stores:{loadedSessionsStore:u,persistentSessionsStore:s},options:i}}async function Bg(n){m.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new fe("CREATE_MEDIA_KEYS_ERROR",t)}}async function Gs(n,e,t){let r=await Ws(n,e,t),{mediaKeys:i}=r;return n.mediaKeys!==null&&n.mediaKeys!==void 0&&i!==n.mediaKeys&&(m.debug("DRM: Disabling old MediaKeys"),await qc(n)),r}function qs(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(c){if(t.cancellationError!==null)throw t.cancellationError;if(!_(a)&&!a(c)||d++>=o)throw c;typeof s=="function"&&s(c,d);let l=Fg(r,d,i);return await pn(l),u()}}}function Fg(n,e,t){let r=n*Math.pow(2,e-1),i=Rr(r);return Math.min(i,t)}function js(n,e){return n.indexOf("playready")!==-1&&(Kt||ir)?Bo(e):e}var Vn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},Ys={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function $s(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((c,l)=>{let[f,p]=typeof c=="string"?[c,l]:[l,c],g=js(t,new Uint8Array(p)),S={keyId:g.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug(`DRM: key status update (${Oe(g)}): ${f}`),f){case Ys.EXPIRED:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Oe(g)})`,{keyStatuses:[S,...d]});if(o==="error"||o===void 0)throw I;switch(o){case"close-session":throw new Vn(I);case"fallback":a.push(g);break;default:o==="continue"||o===void 0?s.push(g):Xe(o);break}d.push(S);break}case Ys.INTERNAL_ERROR:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Oe(g)})`,{keyStatuses:[S,...d]});switch(r){case void 0:case"error":throw I;case"close-session":throw new Vn(I);case"fallback":a.push(g);break;case"continue":s.push(g);break;default:if(r!==void 0)Xe(r);else throw I}d.push(S);break}case Ys.OUTPUT_RESTRICTED:{let I=new fe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Oe(g)})`,{keyStatuses:[S,...d]});switch(i){case void 0:case"error":throw I;case"fallback":a.push(g);break;case"continue":s.push(g);break;default:if(i!==void 0)Xe(i);else throw I}d.push(S);break}default:s.push(g);break}});let u;return d.length>0&&(u=new fe("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Qs(n,e,t,r,i){m.info("DRM: Binding session events",n.sessionId);let{getLicenseConfig:o={}}=e,a=new F;a.linkToSignal(i),_(n.closed)||n.closed.then(()=>a.cancel()).catch(c=>{i.isCancelled()||(a.cancel(),r.onError(c))}),xo(n,c=>{a.cancel(),r.onError(new fe("KEY_ERROR",c.type))},a.signal),Ac(n,()=>{m.info("DRM: keystatuseschange event received",n.sessionId);try{s()}catch(c){if(i.isCancelled()||a.isUsed()&&c instanceof ur)return;a.cancel(),r.onError(c)}},a.signal),Mo(n,c=>{let l=c,f=new Uint8Array(l.message),p=w(l.messageType)?l.messageType:"license-request";m.info(`DRM: Received message event, type ${p}`,n.sessionId);let g=u(o.retry);qs(()=>d(f,p),g,a.signal).then(S=>{if(a.isUsed())return Promise.resolve();if(_(S))m.info("DRM: No license given, skipping session.update");else try{return Kg(n,S)}catch(I){a.cancel(),r.onError(I)}}).catch(S=>{if(a.isUsed())return;a.cancel();let I=Jc(S);if(!_(S)){let{fallbackOnLastTry:y}=S;if(y===!0){m.warn("DRM: Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new zn(I));return}}r.onError(I)})},a.signal),m.info("DRM: transmitting current keystatuses",n.sessionId),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:c,blacklistedKeyIds:l,whitelistedKeyIds:f}=$s(n,e,t);c!==void 0&&(r.onWarning(c),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:l})}function d(c,l){let f;return new Promise((p,g)=>{try{m.debug("DRM: Calling `getLicense`",l);let y=e.getLicense(c,l),T=_(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{g(new ai(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(y).then(S,I)}catch(y){I(y)}function S(y){f!==void 0&&clearTimeout(f),p(y)}function I(y){f!==void 0&&clearTimeout(f),g(y)}})}function u(c){return{totalRetry:c!=null?c:2,baseDelay:200,maxDelay:3e3,shouldRetry:l=>l instanceof ai||_(l)||l.noRetry!==!0,onRetry:l=>r.onWarning(Jc(l))}}}function Jc(n){if(n instanceof ai)return new fe("KEY_LOAD_TIMEOUT","The license server took too much time to respond.");let e=new fe("KEY_LOAD_ERROR","An error occured when calling `getLicense`.");return!_(n)&&w(n.message)&&(e.message=n.message),e}async function Kg(n,e){m.info("DRM: Updating MediaKeySession with message");try{await n.update(e)}catch(t){let r=t instanceof Error?t.toString():"`session.update` failed";throw new fe("KEY_UPDATE_ERROR",r)}m.info("DRM: MediaKeySession update succeeded.")}var zn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},ai=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,zn.prototype),this.message=e}};async function Vg(n,e){try{return await n.setServerCertificate(e)}catch(t){m.warn("DRM: mediaKeys.setServerCertificate returned an error",t instanceof Error?t:"");let r=t instanceof Error?t.toString():"`setServerCertificate` error";throw new fe("LICENSE_SERVER_CERTIFICATE_ERROR",r)}}async function Xs(n,e){if(In.hasOne(n)===!0)return m.info("DRM: The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM: Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM: Setting server certificate on the MediaKeys"),In.prepare(n);try{let t=await Vg(n,e);return In.set(n,e),{type:"success",value:t}}catch(t){return{type:"error",value:zt(t)?t:new fe("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.")}}}function Zs(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM: Too many stored persistent sessions, removing some.",t,r),n.deleteOldSessions(r)}function Js(n){if(qe(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(qe(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(qe(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var si=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return te(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Kn(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=zg(this._innerValues)),this._lazyFormattedValues}};function zg(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:$t(t)}))}var di=class extends ie{static hasEmeApis(){return!_(St.requestMediaKeySystemAccess)}constructor(e,t){super(),m.debug("DRM: Starting ContentDecryptor logic.");let r=new F;this._currentSessions=[],this._canceller=r,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this.error=null,St.onEncrypted(e,i=>{m.debug("DRM: Encrypted event received from media element.");let o=jo(i);o!==null&&this.onInitializationData(o)},r.signal),Gs(e,t,r.signal).then(i=>{let{options:o,mediaKeySystemAccess:a}=i,s;(_(o.persistentLicenseConfig)||o.persistentLicenseConfig.disableRetroCompatibility===!0)&&(s=Js(a.keySystem)),this.systemId=s,this._stateData.state===0&&(this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:i,mediaElement:e}},this.trigger("stateChange",this._stateData.state))}).catch(i=>{this._onFatalError(i)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM: ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a}=t;if(r.disableMediaKeysAttachmentLock===!0&&(this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let d={emeImplementation:St,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,keySystemOptions:r};m.debug("DRM: Attaching current MediaKeys"),Us(e,d,this._canceller.signal).then(async()=>{this._stateData.isMediaKeysAttached=2;let{serverCertificate:u}=r;if(!_(u)){let l=await Xs(i,u);l.type==="error"&&this.trigger("warning",l.value)}if(this._isStopped())return;let c=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},c!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(u=>{this._onFatalError(u)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=Se(ce({},e),{values:new si(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var S,I,y;m.hasLevel("DEBUG")&&m.debug("DRM: processing init data",(S=e.content)==null?void 0:S.adaptation.type,(I=e.content)==null?void 0:I.representation.bitrate,((y=e.keyIds)!=null?y:[]).map(T=>Oe(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=X(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM: Unable to fallback from a non-decipherable quality."):(m.debug("DRM: Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM: Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let E=v.reduce((R,k)=>`${R}, ${Oe(k)}`,"");m.debug("DRM: Blacklisting new key ids",E)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),E=new Set;td(E,T);for(let R of v){let k=Array.from(E);for(let A of k)if(R.record.isAssociatedWithKeyId(A)){R.record.associateKeyIds(E.values());for(let C of k)!R.keyStatuses.whitelisted.some(x=>me(x,C))&&!R.keyStatuses.blacklisted.some(x=>me(x,C))&&R.keyStatuses.blacklisted.push(C);m.hasLevel("DEBUG")&&m.debug("DRM: Session already created for",Oe(A),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;_(o.persistentLicenseConfig)?a="temporary":Hg(r)?a="persistent-license":(m.warn('DRM: Cannot create "persistent-license" session: not supported'),a="temporary");let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=B.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,c=await Ks(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let l={record:c.value.keySessionRecord,source:c.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(l);let{mediaKeySession:f,sessionType:p}=c.value,g=!1;if(Qs(f,o,r.keySystem,{onKeyUpdate:T=>{let v=qg(e,l.record,o.singleLicensePer,l.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(l.record.associateKeyIds(v.whitelisted),l.record.associateKeyIds(v.blacklisted),l.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},l.record.getAssociatedKeyIds().length!==0&&p==="persistent-license"&&i.persistentSessionsStore!==null&&!g){let{persistentSessionsStore:E}=i;Zs(E,d-1),E.add(e,l.record.getAssociatedKeyIds(),f),g=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof Vn){m.warn("DRM: A session's closing condition has been triggered"),this._lockInitDataQueue();let E=this._currentSessions.indexOf(l);E>=0&&this._currentSessions.splice(E),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:l.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM: failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof zn)){this._onFatalError(T);return}l.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM: blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),c.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let E=i.loadedSessionsStore.getEntryForSession(f);if(E===null||E.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(l);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new fe("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error")}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=X(this._currentSessions,u=>u.record.isCompatibleWith(e));if(o===void 0)return!1;let a=o.blacklistedSessionError;if(!_(a))return e.type===void 0||e.content===void 0?(m.error("DRM: This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM: This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let u;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:c}=o.keyStatuses;u=Xc(e.keyIds,c)}else{let{whitelisted:c}=o.keyStatuses;u=!Fn(e.keyIds,c)}if(u)return e.content===void 0?(m.error("DRM: Cannot forbid key id, the content is unknown."),!0):(m.info("DRM: Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM: Init data already processed. Skipping it."),!0;let d=this._currentSessions.indexOf(o);return d===-1?m.error("DRM: Unable to remove processed init data: not found."):(m.debug("DRM: A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(d,1)),!1}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new Ve("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM: Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function Hg(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"persistent-license")}function ef(n,e){return n.filter(t=>!e.some(r=>me(r,t)))}function Wg(n,e){let t=n.getAssociatedKeyIds(),r=ef(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Oe(i)).join(", ")),r}function Gg(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=ef(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: init data keys missing in the license, blacklisting them",t.map(i=>Oe(i)).join(", ")),t}function qg(n,e,t,r,i,o){var u;let a=[...i,...o],s=Wg(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let c=Gg(n,d);d.push(...c);let{content:l}=n;if(r&&l!==void 0){if(t==="content"){let f=new Set,{manifest:p}=l;for(let g of p.periods)td(f,g);ed(f,d)}else if(t==="periods"){let{manifest:f}=l;for(let p of f.periods){let g=new Set;if(td(g,p),((u=n.content)==null?void 0:u.period.id)===p.id)ed(g,d);else{let S=Array.from(g);for(let I of S)if(d.some(T=>me(T,I))){ed(g,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function ed(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>me(o,r))||e.push(r)}function td(n,e){let t=e.adaptations,r=hr(t).reduce((i,o)=>_(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a.keyId)}function Hn(n){let e=Le.getState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var tf=di;var Wn=class extends ie{};function nd(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=X(n.sourceBuffers,s=>s.type==="audio"),i=X(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function rd(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,c){let l=new F;l.linkToSignal(c),l.linkToSignal(s);let f=new W(p(),l.signal);return o.onUpdate(g,{clearSignal:l.signal,emitCurrentValue:!1}),u.onUpdate(g,{clearSignal:l.signal,emitCurrentValue:!1}),f;function p(){let S=u.getValue(),I=o.getValue();return jg(S,r),{maximumPosition:It(r),bufferGap:S.bufferGap,position:S.position,buffered:nd(i,a),duration:S.duration,rebuffering:S.rebuffering,freezing:S.freezing,paused:{last:S.paused,pending:Yg(t,e)},readyState:S.readyState,speed:I}}function g(){f.setValue(p())}})}function jg(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function Yg(n,e){return n.getValue()?void 0:!e}function Gn(n){let{textTracks:e}=n;if(!_(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("Compat: Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}var Qt=re,yn=Qt===void 0?void 0:_(Qt.MediaSource)?_(Qt.MozMediaSource)?_(Qt.WebKitMediaSource)?Qt.MSMediaSource:Qt.WebKitMediaSource:Qt.MozMediaSource:Qt.MediaSource;function id(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function $g(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function ui(n,e){if(m.debug("Init: Trying to call endOfStream"),n.readyState!=="open"){m.debug("Init: MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=$g(t);if(r.length===0){m.info("Init: Triggering end of stream");try{n.endOfStream()}catch(o){m.error("Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");let i=new F;i.linkToSignal(e);for(let o of r)Rc(o,()=>{i.cancel(),ui(n,e)},i.signal);kc(t,()=>{i.cancel(),ui(n,e)},i.signal)}function nf(n,e){let t=new F;t.linkToSignal(e),Un(n,()=>{m.debug("Init: MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new F,t.linkToSignal(e),ui(n,t.signal)},e),ui(n,t.signal)}function od(){return sn}var Qg=365*24*3600,li=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new F;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=Jg(r,i),a=new F;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new F,a.linkToSignal(i);let d=Zg(r.sourceBuffers,a.signal),u=new F;return u.linkToSignal(a.signal),d.onUpdate(c=>{u.cancel(),u=new F,u.linkToSignal(a.signal),!c&&of(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function Xg(n,e,t){let r=e;t||(r=od()?1/0:rf(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("Init: Updating duration to what is currently buffered",i),n.duration=i}catch(o){return m.warn("Duration Updater: Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("Init: Updating duration",r),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=rf(e);m.info("Init: calling `mediaSource.setLiveSeekableRange`",s),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("Duration Updater: Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function Zg(n,e){if(n.length===0){let i=new W(!1);return i.finish(),i}let t=new W(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function Jg(n,e){let t=new W(n.readyState==="open",e);return Un(n,()=>{m.debug("Init: Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),Co(n,()=>{m.debug("Init: Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),Ao(n,()=>{m.debug("Init: Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function of(n,e,t,r){if(Xg(n,e,t)==="success")return;let o=setTimeout(()=>{a(),of(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function rf(n){return Math.max(Math.pow(2,32),n+Qg)}var ci=class extends ie{constructor(e){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new F,_(yn))throw new Z("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("Init: Creating MediaSource");let t=new yn;this.readyState=t.readyState;let r=t.handle;this.handle=_(r)?{type:"media-source",value:t}:{type:"handle",value:r},this._mediaSource=t,this._durationUpdater=new li(t),this._endOfStreamCanceller=null,Un(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),Co(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),Ao(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal)}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new ad(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new F,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("Init: end-of-stream order received."),nf(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("Init: resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),eh(this._mediaSource)}},ad=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new F,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=a=>{let s;a instanceof Error?s=a:a.error instanceof Error?s=a.error:s=new Error("Unknown SourceBuffer Error");let d=this._currentOperations;if(this._currentOperations=[],d.length===0)m.error("SBI: error for an unknown operation",s);else{let u=new it(s.name,s.message,s.name==="QuotaExceededError");for(let c of d)c.reject(u)}},o=()=>{let a=this._currentOperations;this._currentOperations=[];try{for(let s of a)s.resolve(Pe(this._sourceBuffer.buffered))}catch(s){for(let d of a)s instanceof Error&&s.name==="InvalidStateError"?d.resolve([]):d.reject(s)}this._performNextOperation()};r.addEventListener("error",i),r.addEventListener("updateend",o),this._canceller.signal.register(()=>{r.removeEventListener("error",i),r.removeEventListener("updateend",o)})}appendBuffer(...e){return m.debug("SBI: receiving order to push data to the SourceBuffer",this.type),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("SBI: receiving order to remove data from the SourceBuffer",this.type,e,t),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Pe(this._sourceBuffer.buffered)}catch(e){return m.error("Failed to get buffered time range of SourceBuffer",this.type,e instanceof Error?e:null),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("Init: Failed to abort SourceBuffer:",e instanceof Error?e:null)}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_emptyCurrentQueue(){let e=new Ae;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=Y({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let c;s instanceof ArrayBuffer?c=new Uint8Array(s):s instanceof Uint8Array?c=s:c=new Uint8Array(s.buffer);let l=[c];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],p=(r=d.appendWindow)!=null?r:[void 0,void 0],g=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],S=(o=d.timestampOffset)!=null?o:0,I=(a=f.params[1].timestampOffset)!=null?a:0;if(p[0]===g[0]&&p[1]===g[1]&&d.codec===f.params[1].codec&&S===I){let y=f.params[0],T;y instanceof ArrayBuffer?T=new Uint8Array(y):y instanceof Uint8Array?T=y:T=new Uint8Array(y.buffer),l.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}l.length>1&&(m.info(`MMSI: Merging ${l.length} segments together for perf`,this.type),u=te(...l))}try{this._appendBufferNow(u,d)}catch(c){let l=c instanceof Error?new it(c.name,c.message,c.name==="QuotaExceededError"):new it("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(l)}),this._currentOperations=[]}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("SBI: removing data from SourceBuffer",this.type,s,d);try{this._sourceBuffer.remove(s,d)}catch(u){let c=u instanceof Error?new it(u.name,u.message,!1):new it("Error","Unknown SourceBuffer Error during remove",!1);e.reject(c),this._currentOperations=[]}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("SBI: updating codec",i),id(r,i)?this.codec=i:m.debug("SBI: could not update codec",i,this.codec)),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("SBI: updating timestampOffset",i,r.timestampOffset,s),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("SBI: re-setting `appendWindowStart` to `0`"),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("SBI: pre-updating `appendWindowEnd`",s),r.appendWindowEnd=s}m.debug("SBI: setting `appendWindowStart`",a[0]),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("SBI: re-setting `appendWindowEnd` to `Infinity`"),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("SBI: setting `appendWindowEnd`",a[1]),r.appendWindowEnd=a[1]),m.debug("SBI: pushing segment",this.type),r.appendBuffer(e)}};function eh(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("Init: Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("Init: Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("Init: Not all SourceBuffers could have been removed.")}}var th=Je();function sd(n,e){if(e!==null&&n.src===e&&(m.info("Init: Clearing HTMLMediaElement's src"),Gn(n)),e!==null)try{m.debug("Init: Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("Init: Error while revoking the media source URL",t instanceof Error?t:"")}}function nh(n,e){let t=w(n.src)?n.src:null;sd(n,t);let r=new ci(th());return e.register(()=>{r.dispose()}),r}function $o(n,e){return ot(e,t=>{let r=nh(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("Init: MediaSource opened"),t(r)},e),m.info("MTCI: Attaching MediaSource URL to the media element"),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{sd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{sd(n,i)})}})}function dd(n,e,t){var i;if(!_(t)){let o=ln(n),a=It(n);if(_(t.position))if(_(t.wallClockTime))if(_(t.fromFirstPosition))if(_(t.fromLastPosition))if(_(t.fromLivePosition)){if(!_(t.percentage)){m.debug("Init: using startAt.percentage");let{percentage:s}=t;if(s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{m.debug("Init: using startAt.fromLivePosition");let s=(i=cn(n))!=null?i:a,{fromLivePosition:d}=t;return d>=0?s:Math.max(o,s+d)}else{m.debug("Init: using startAt.fromLastPosition");let{fromLastPosition:s}=t;return s>=0?a:Math.max(o,a+s)}else{m.debug("Init: using startAt.fromFirstPosition");let{fromFirstPosition:s}=t;return s<=0?o:Math.min(a,o+s)}else{m.debug("Init: using startAt.wallClockTime");let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return Math.max(Math.min(d,a),o)}else return m.debug("Init: using startAt.minimumPosition"),Math.max(Math.min(t.position,a),o)}let r=ln(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=It(n),d,{DEFAULT_LIVE_GAP:u}=B.getCurrent();if(a===void 0)m.info("Init: no clock offset found for a live content, starting close to maximum available position"),d=s;else{m.info("Init: clock offset found for a live content, checking if we can start close to it");let l=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(V()+a)/1e3-l;d=Math.min(s,f)}let c=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug(`Init: ${d} defined as the live time, applying a live gap of ${c}`),Math.max(d-c,r)}return m.info("Init: starting at the minimum available position:",r),r}function fi(){return Ca}function ud(n){return!(n&&an)}function ld(){return sn}function mi(n,e,t,r){let i=new F;i.linkToSignal(r);let o=new W(!1,i.signal);return n.listen(a=>{if(a.rebuffering!==null||a.freezing!==null||a.readyState===0)return;if(!ud(t)){if(isNaN(e.duration))return;if(e.duration>0){o.setValue(!0),i.cancel();return}}let s=ld()?4:3;if(a.readyState>=s&&(a.currentRange!==null||a.ended)&&(!fi()||e.duration>0)){o.setValue(!0),i.cancel();return}},{includeLastObservation:!0,clearSignal:i.signal}),o}var rh=!an,af=rh;var qn=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function pi({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new W(!1,a);return{autoPlayResult:new Promise((u,c)=>{let l=a.register(y=>{c(y)});if(a.isCancelled())return;let f=!1,p=y=>{e.setCurrentTime(y),f=!0};if(!i||typeof t=="number"){let y=typeof t=="number"?t:t();y!==0&&p(y),g()}else e.listen((y,T)=>{if(y.readyState>=1){T();let v=typeof t=="number"?t:t();v!==0&&(af?p(v):setTimeout(()=>{p(v)},0)),g()}},{includeLastObservation:!0,clearSignal:a});function g(){let y=!1;e.listen((T,v)=>{if(!y&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(y=!0),!(f&&!y||T.readyState===0)){if(v(),fi()&&n.duration===0){let E=new Z("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(E)}a.isCancelled()||S()}},{includeLastObservation:!0,clearSignal:a})}function S(){e.listen((y,T)=>{y.seeking===0&&y.rebuffering===null&&y.readyState>=1&&(T(),I())},{includeLastObservation:!0,clearSignal:a})}function I(){var T;if(m.info("Init: Can begin to play content"),r){if(n.ended)return m.warn("Init: autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),l(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init: autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),l(),u({type:"skipped"});let y;try{y=(T=n.play())!=null?T:Promise.resolve()}catch(v){return l(),c(v)}y.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),l(),u({type:"autoplay"})}).catch(v=>{if(l(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init: Media element can't play. It may be due to browser auto-play policies.");let E=new Z("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(E),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else c(v)})}}),initialPlayPerformed:s}}function gi(n,e,t,r,i){if(e.length===0)return u("No `keySystems` option given.");if(ue.decrypt===null)return u("EME feature not activated.");let o=new F;o.linkToSignal(i);let a=new W({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},i),s=ue.decrypt;if(!s.hasEmeApis())return u("EME API not available on the current page.");m.debug("Init: Creating ContentDecryptor");let d=new s(n,e);return d.addEventListener("stateChange",c=>{if(c===1){let l=new W(!1);l.onUpdate((f,p)=>{f&&(p(),c===1&&d.attach())},{clearSignal:o.signal}),a.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:l}},drmSystemId:d.systemId})}else c===2&&(a.setValue({initializationState:{type:"initialized",value:null},drmSystemId:d.systemId}),d.removeEventListener("stateChange"))}),d.addEventListener("error",c=>{o.cancel(),r.onError(c)}),d.addEventListener("warning",c=>{r.onWarning(c)}),d.addEventListener("blackListProtectionData",c=>{r.onBlackListProtectionData(c)}),d.addEventListener("keyIdsCompatibilityUpdate",c=>{r.onKeyIdsCompatibilityUpdate(c)}),t.onUpdate(c=>{c!==null&&d.onInitializationData(c)},{clearSignal:o.signal}),o.signal.register(()=>{d.dispose()}),a;function u(c){t.onUpdate((f,p)=>{if(f===null)return;p();let g=new fe("MEDIA_IS_ENCRYPTED_ERROR",c);r.onError(g)},{clearSignal:i});let l=new W({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return l.finish(),l}}var hi=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};var Ii=1/60,Sn=class extends ie{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new F}start(){if(this._isStarted)return;this._isStarted=!0;let e=new md(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()});let t=null;this._playbackObserver.listen(r=>{let i=this._discontinuitiesStore,{buffered:o,position:a,readyState:s,rebuffering:d,freezing:u}=r,{BUFFER_DISCONTINUITY_THRESHOLD:c,FREEZING_STALLED_DELAY:l,UNFREEZING_SEEK_DELAY:f,UNFREEZING_DELTA_POSITION:p}=B.getCurrent();if(u!==null){let T=V(),v=t===null?u.timestamp:t.attemptTimestamp;if(!a.isAwaitingFuturePosition()&&T-v>f&&(m.warn("Init: trying to seek to un-freeze player"),this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime()+p),t={attemptTimestamp:T}),T-u.timestamp>l){d===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}}else t=null;if(d===null){if(e.stopRebuffering(),s===1){let T;r.seeking!==0?T=r.seeking===1?"internal-seek":"seeking":T="not-ready",this.trigger("stalled",T);return}this.trigger("unstalled",null);return}let g=d.reason==="seeking"&&r.seeking===1?"internal-seek":d.reason;if(a.isAwaitingFuturePosition()){e.stopRebuffering(),m.debug("Init: let rebuffering happen as we're awaiting a future position"),this.trigger("stalled",g);return}if(e.startRebuffering(),this._manifest===null){this.trigger("stalled",g);return}let{position:S}=d;if(S!=null&&this._speed.getValue()>0){let T=ih(i,this._manifest,S);if(T!==null){let v=T+.001;if(v<=this._playbackObserver.getCurrentTime())m.info("Init: position to seek already reached, no seeking",this._playbackObserver.getCurrentTime(),v);else{m.warn("SA: skippable discontinuity found in the stream",a.getPolled(),v),this._playbackObserver.setCurrentTime(v),this.trigger("warning",fd(S,v));return}}}let I=S!=null?S:a.getPolled(),y=Ol(o,I);if(this._speed.getValue()>0&&y<c){let T=I+y+Ii;if(this._playbackObserver.getCurrentTime()<T){m.warn("Init: discontinuity encountered inferior to the threshold",I,T,c),this._playbackObserver.setCurrentTime(T),this.trigger("warning",fd(I,T));return}}for(let T=this._manifest.periods.length-2;T>=0;T--){let v=this._manifest.periods[T];if(v.end!==void 0&&v.end<=I){if(this._manifest.periods[T+1].start>I&&this._manifest.periods[T+1].start>this._playbackObserver.getCurrentTime()){let E=this._manifest.periods[T+1];this._playbackObserver.setCurrentTime(E.start),this.trigger("warning",fd(I,E.start));return}break}}this.trigger("stalled",g)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();oh(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(!r.rebuffering||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn(`Init: rebuffering because of a future locked stream.
4
- Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function ih(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:c}=s,l=u!=null?u:d;if(t>=l-Ii)if(c===null){let f=ho(e,o);f!==null?a=f.start+Ii:m.warn("Init: discontinuity at Period's end but no next Period")}else t<c+Ii&&(a=c+Ii);a!==void 0&&(m.info("Init: discontinuity found",t,a),r=r!==null&&r>a?r:a)}}return r}function cd(n){return n.discontinuity!==null}function oh(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){cd(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){cd(e)&&n.splice(a,0,e);return}cd(e)&&n.push(e)}}function fd(n,e){return new Z("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeked at position "+String(e))}var md=class{constructor(e,t){this._speedUpdateCanceller=new F,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init: Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new F,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init: Resume playback speed",e),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function ah(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var sf=ah;function sh(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(sf(f,{id:d,start:a,end:s})){t.push(f);return}let c;if(u.value.element!==void 0)c=u.value.element;else if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((g,S)=>g+"xmlns:"+S.key+'="'+S.value+'" ',"<toremove ");f+=">";let p=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;c=p.children.length>0?p.children[0]:p.childNodes[0]}else return;let l={type:u.type,value:Se(ce({},u.value),{element:c})};if(s===void 0){let f={start:a,id:d,data:l,publicEvent:{start:a,data:l}};t.push(f)}else{let f={start:a,end:s,id:d,data:l,publicEvent:{start:a,end:s,data:l}};t.push(f)}})}return t}var pd=sh;var yi=class extends ie{constructor(e,t,r){super(),this._manifest=e,this._mediaElement=t,this._playbackObserver=r,this._canceller=null,this._scheduledEventsRef=new W([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new F;let e=this._canceller.signal,t=this._playbackObserver,r=this._mediaElement,i=!1,o=new F;o.linkToSignal(e),this._scheduledEventsRef.setValue(pd([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:a})=>{if(a===0){i&&(o.cancel(),o=new F,o.linkToSignal(e),i=!1);return}else if(i)return;i=!0;let s=l(),d=()=>{let f=l();this._emitStreamEvents(this._scheduledEventsRef.getValue(),s,f,o.signal),s=f},{STREAM_EVENT_EMITTER_POLL_INTERVAL:u}=B.getCurrent(),c=setInterval(d,u);t.listen(d,{includeLastObservation:!1,clearSignal:o.signal}),o.signal.register(()=>{clearInterval(c)});function l(){let f=t.getReference().getValue(),p=r.currentTime,g=f.seeking!==0;return{currentTime:p,isSeeking:g}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(pd(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let c=0;c<e.length;c++){let l=e[c],f=l.start,p=gd(l)?l.end:void 0;this._eventsBeingPlayed.has(l)?(f>s||p!==void 0&&s>=p)&&(gd(l)&&u.push(l.publicEvent),this._eventsBeingPlayed.delete(l)):f<=s&&p!==void 0&&s<p?(d.push({type:"stream-event",value:l.publicEvent}),this._eventsBeingPlayed.set(l,!0)):o<f&&s>=(p!=null?p:f)&&(a?d.push({type:"stream-event-skip",value:l.publicEvent}):(d.push({type:"stream-event",value:l.publicEvent}),gd(l)&&u.push(l.publicEvent)))}if(d.length>0){for(let c of d)if(c.type==="stream-event"?this.trigger("event",c.value):this.trigger("eventSkip",c.value),i.isCancelled())return}if(u.length>0){for(let c of u)if(typeof c.onExit=="function"&&c.onExit(),i.isCancelled())return}}};function gd(n){return n.end!==void 0}var df=yi;function Si(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(_(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new Z("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new Z("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new Z("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new Z("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new Z("MEDIA_ERR_UNKNOWN",a))}}}var bn=class extends Wn{constructor(e){super(),this._settings=e,this._initCanceller=new F,this._manifest=null;let t=e.url===void 0?void 0:[e.url];this._manifestFetcher=new Qa(t,e.transport,e.manifestRequestSettings)}prepare(){this._manifest===null&&(this._manifest=bc.createAsync(ot(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),Si(e,i=>this._onFatalError(i),this._initCanceller.signal);let r=new W(null,this._initCanceller.signal);this._initializeMediaSourceAndDecryption(e,r).then(i=>this._onInitialMediaSourceReady(e,i.mediaSource,t,i.drmSystemId,r,i.unlinkMediaSource)).catch(i=>{this._onFatalError(i)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_initializeMediaSourceAndDecryption(e,t){let r=this._initCanceller;return ot(r.signal,i=>{let{keySystems:o}=this._settings,a=gi(e,o,t,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();uh(d,s)})().catch(Q)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();dh(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(Q)}},r.signal);a.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new F;u.linkToSignal(r.signal),$o(e,u.signal).then(c=>{let l=a.getValue();if(l.initializationState.type==="awaiting-media-link")l.initializationState.value.isMediaLinked.setValue(!0),a.onUpdate((f,p)=>{if(f.initializationState.type==="initialized"){p(),i({mediaSource:c,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:r.signal});else if(s.initializationState.type==="initialized"){i({mediaSource:c,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(c=>{u.isUsed()||this._onFatalError(c)})},{emitCurrentValue:!0,clearSignal:r.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o,a){var N;let{adaptiveOptions:s,autoPlay:d,bufferOptions:u,lowLatencyMode:c,segmentRequestOptions:l,speed:f,startAt:p,textTrackOptions:g,transport:S}=this._settings,I=this._initCanceller;J(this._manifest!==null);let y;try{y=(N=this._manifest.syncValue)!=null?N:await this._manifest.getValueAsAsync()}catch(D){return}y.addEventListener("manifestUpdate",D=>{this.trigger("manifestUpdate",D)},I.signal),y.addEventListener("decipherabilityUpdate",D=>{this.trigger("decipherabilityUpdate",D)},I.signal),m.debug("Init: Calculating initial time");let T=dd(y,c,p);m.debug("Init: Initial time calculated:",T);let v=Gl(s),E=Y({textTrackOptions:g,drmSystemId:i},u),R=new es(S,l,I.signal);if(this.trigger("manifestReady",y),I.isUsed())return;let k=this._startBufferingOnMediaSource.bind(this),A=this.trigger.bind(this),C=this._onFatalError.bind(this);x(t,T,d,a);function x(D,L,P,M){k({mediaElement:e,playbackObserver:r,mediaSource:D,initialTime:L,autoPlay:P,manifest:y,representationEstimator:v,segmentFetcherCreator:R,speed:f,protectionRef:o,bufferOptions:E},U,M.signal);function U(H){if(M.cancel(),I.isUsed()||(A("reloadingMediaSource",H),I.isUsed()))return;let q=new F;q.linkToSignal(I.signal),$o(e,q.signal).then(G=>{x(G,H.position,H.autoPlay,q)}).catch(G=>{q.isUsed()||C(G)})}}}_startBufferingOnMediaSource(e,t,r){var L;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:c,protectionRef:l,representationEstimator:f,segmentFetcherCreator:p,speed:g}=e,S=(L=s.getPeriodForTime(a))!=null?L:s.getNextPeriod(a);if(S===void 0){let P=new Z("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(P)}let I=null,y=null;if(this._settings.textTrackOptions.textTrackMode==="html"&&ue.htmlTextDisplayer!==null?y=new ue.htmlTextDisplayer(d,this._settings.textTrackOptions.textTrackElement):ue.nativeTextDisplayer!==null&&(y=new ue.nativeTextDisplayer(d)),y!==null){let P=new hi(y);I=P,r.register(()=>{P.stop(),y==null||y.stop()})}let T=new qt(u,d.nodeName==="VIDEO",I);r.register(()=>{T.disposeAll()});let{autoPlayResult:v,initialPlayPerformed:E}=pi({mediaElement:d,playbackObserver:c,startTime:a,mustAutoPlay:i,onWarning:P=>{this.trigger("warning",P)},isDirectfile:!1},r);if(r.isCancelled())return;E.onUpdate((P,M)=>{if(P){M();let O=new df(s,d,c);s.addEventListener("manifestUpdate",()=>{O.onManifestUpdate(s)},r),O.addEventListener("event",U=>{this.trigger("streamEvent",U)},r),O.addEventListener("eventSkip",U=>{this.trigger("streamEventSkip",U)},r),O.start(),r.register(()=>{O.stop()})}},{clearSignal:r,emitCurrentValue:!0});let R=rd(c,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:y,initialPlayPerformed:E,speed:g},r),k=this._createRebufferingController(c,s,g,r),A=new wr(T);kl&&s.addEventListener("decipherabilityUpdate",P=>{P.some(M=>M.representation.decipherable!==!0)&&D(0,void 0,void 0)},r),c.listen(P=>{if(A.needToReload(P)){let M,O=c.getReference().getValue();O.position.isAwaitingFuturePosition()?M=O.position.getWanted():M=c.getCurrentTime();let U=E.getValue()?!c.getIsPaused():i;t({position:M,autoPlay:U})}},{clearSignal:r}),R.listen(P=>{["video","audio","text"].forEach(M=>{var U;let O=T.getStatus(M);O.type==="initialized"&&O.value.synchronizeInventory((U=P.buffered[M])!=null?U:[])})},{clearSignal:r});let C=ns(s,u,R,T,{onWarning:P=>this.trigger("warning",P),onPeriodChanged:P=>this.trigger("activePeriodChanged",{period:P})},r);v.then(()=>{mi(c,d,!1,r).onUpdate((P,M)=>{P&&(M(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(O=>O(T.getSegmentSinksMetrics()))}))},{emitCurrentValue:!0,clearSignal:r})}).catch(P=>{r.isCancelled()||this._onFatalError(P)});let x=this;Sc({manifest:s,initialPeriod:S},R,f,T,p,o,N(),r);function N(){return{needsBufferFlush:P=>{var q;let M,O=c.getCurrentTime(),U=(q=P==null?void 0:P.relativeResumingPosition)!=null?q:0,H=!!(P!=null&&P.relativePosHasBeenDefaulted);U===0&&H?M=O+.001:M=O+U,c.setCurrentTime(M),c.listen((G,K)=>{(G.currentRange!==null||G.position.getPolled()>M+.1)&&(K(),c.setCurrentTime(G.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(P){let{period:M,bufferType:O,imminentDiscontinuity:U,position:H}=P;k.updateDiscontinuityInfo({period:M,bufferType:O,discontinuity:U,position:H}),!r.isCancelled()&&s.isLastPeriodKnown&&P.period.id===s.periods[s.periods.length-1].id&&(P.hasFinishedLoading||P.isEmptyStream?C.onLastSegmentFinishedLoading(P.bufferType):C.onLastSegmentLoadingResume(P.bufferType))},needsManifestRefresh:()=>x._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:P}=B.getCurrent();x._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:P})},lockedStream:P=>k.onLockedStream(P.bufferType,P.period),adaptationChange:P=>{x.trigger("adaptationChange",P),!r.isCancelled()&&C.onAdaptationChange(P.type,P.period,P.adaptation)},representationChange:P=>{x.trigger("representationChange",P),!r.isCancelled()&&C.onRepresentationChange(P.type,P.period)},inbandEvent:P=>x.trigger("inbandEvents",P),warning:P=>x.trigger("warning",P),periodStreamReady:P=>x.trigger("periodStreamReady",P),periodStreamCleared:P=>{C.onPeriodCleared(P.type,P.period),!r.isCancelled()&&x.trigger("periodStreamCleared",P)},bitrateEstimateChange:P=>x.trigger("bitrateEstimateChange",P),needsMediaSourceReload:P=>{D(P.timeOffset,P.minimumPosition,P.maximumPosition)},needsDecipherabilityFlush(){var M,O,U,H;let P=Hn(d);if(wa(P==null?void 0:P[0])){let q=R.getReference().getValue(),G=q.position.isAwaitingFuturePosition()?q.position.getWanted():(M=R.getCurrentTime())!=null?M:q.position.getPolled(),K=(U=(O=q.paused.pending)!=null?O:R.getIsPaused())!=null?U:q.paused.last;t({position:G,autoPlay:!K})}else{let q=R.getReference().getValue(),G=q.position.isAwaitingFuturePosition()?q.position.getWanted():(H=R.getCurrentTime())!=null?H:q.position.getPolled();G+.001<q.duration?c.setCurrentTime(d.currentTime+.001):c.setCurrentTime(G)}},encryptionDataEncountered:P=>{for(let M of P)if(l.setValue(M),r.isCancelled())return},error:P=>x._onFatalError(P)}}function D(P,M,O){var K,ne,j;let U=R.getReference().getValue(),H=U.position.isAwaitingFuturePosition()?U.position.getWanted():(K=R.getCurrentTime())!=null?K:U.position.getPolled(),q=(j=(ne=U.paused.pending)!=null?ne:R.getIsPaused())!=null?j:U.paused.last,G=H+P;M!==void 0&&(G=Math.max(M,G)),O!==void 0&&(G=Math.min(O,G)),t({position:G,autoPlay:!q})}}_createRebufferingController(e,t,r,i){let o=new Sn(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}};function dh(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(me(d,s.keyId))return!1;for(let d of e)if(me(d,s.keyId))return!0;for(let d of r)if(me(d,s.keyId))return}return o.decipherable})}function uh(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(c=>(u.systemId===void 0||c.systemId===u.systemId)&&me(c.data,u.data))))return!1;return r.decipherable})}var lh=200,Qo=new Map;function hd(n){if(_(yn))return Bt&&m.error("Compat: Cannot request codec support in a worker without MSE."),!1;if(typeof yn.isTypeSupported=="function"){let e=Qo.get(n);if(e!==void 0)return e;{let t=yn.isTypeSupported(n);return Qo.size>=lh&&Qo.clear(),Qo.set(n,t),t}}return!0}var ch=50,Id=class{constructor(){this._cachedCodecSupport=new Map}isSupported(e,t){let r=`${e!=null?e:""};codecs="${t!=null?t:""}"`,i=this._cachedCodecSupport.get(r);if(i!==void 0)return i;this._cachedCodecSupport.size>=ch&&this._cachedCodecSupport.clear();let o=hd(r);return this._cachedCodecSupport.set(r,o),o}},fh=new Id,Xo=fh;function yd(n,e,t){let{repeatCount:r}=n;if(r>=0)return r;let i;return _(e)?t!==void 0?i=t:i=Number.MAX_VALUE:i=e.start,Math.ceil((i-n.start)/n.duration)-1}function ve(n,e,t){let{start:r,duration:i}=n;if(i<=0)return r;let o=yd(n,e,t);return r+(o+1)*i}function ze(n,e){var t;return n*e.timescale+((t=e.indexTimeOffset)!=null?t:0)}function bt(n,e){var t;return(n-((t=e.indexTimeOffset)!=null?t:0))/e.timescale}function uf(n,e,t){return[n*t,(n+e)*t]}function mh(n,e){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i].start<=e?t=i+1:r=i}return t-1}function Zo(n,e,t){let{timeline:r}=n,i=ze(e,n);if(i<0)return null;let o=mh(r,i);if(o<0||o>=r.length-1)return null;let a=r[o];if(a.duration<=0)return null;let s=r[o+1];if(s===void 0)return null;let d=s.start,u=ve(a,s,t);return i>=u&&i<d?bt(d,n):null}function At(n,e){var i;let{initialization:t}=n,r={};return e!==void 0&&(r.isEMSGWhitelisted=e),{id:"init",isInit:!0,time:0,end:0,duration:0,timescale:1,range:_(t)?void 0:t.range,indexRange:n.indexRange,url:(i=t==null?void 0:t.url)!=null?i:null,complete:!0,privateInfos:r,timestampOffset:-(n.indexTimeOffset/n.timescale)}}function ph(n,e){let t=n.toString();return t.length>=e?t:(new Array(e+1).join("0")+t).slice(-e)}function Sd(n){return(e,t,r)=>{let i=w(r)?parseInt(r,10):1;return ph(String(n),i)}}function st(n,e,t){return gh(n,e,t)}function gh(n,e,t){return n.indexOf("$")===-1?n:n.replace(/\$\$/g,"$").replace(/\$RepresentationID\$/g,String(e)).replace(/\$Bandwidth(\%0(\d+)d)?\$/g,Sd(t===void 0?0:t))}function Jo(n,e){return function(r){return r.indexOf("$")===-1?r:r.replace(/\$\$/g,"$").replace(/\$Number(\%0(\d+)d)?\$/g,(i,o,a)=>{if(e===void 0)throw new Error("Segment number not defined in a $Number$ scheme");return Sd(e)(i,o,a)}).replace(/\$Time(\%0(\d+)d)?\$/g,(i,o,a)=>{if(n===void 0)throw new Error("Segment time not defined in a $Time$ scheme");return Sd(n)(i,o,a)})}}function hh(n,e,t){let r=t-n;return r>0?Math.floor(r/e):0}function bi(n,e,t,r,i,o){var T;let a=r.getEstimatedMaximumPosition((T=n.availabilityTimeOffset)!=null?T:0),s=Math.min(e+t,a!=null?a:1/0),d=ze(e,n),u=ze(s,n),{timeline:c,timescale:l,segmentUrlTemplate:f,startNumber:p,endNumber:g}=n,S=p!=null?p:1,I=[],y=c.length;for(let v=0;v<y;v++){let E=c[v],{duration:R,start:k,range:A}=E,C;a===void 0?C=i:C=Math.min(a*l,i!=null?i:1/0);let x=yd(E,c[v+1],C),N=n.availabilityTimeComplete!==!1||v!==y-1&&x!==0,D=hh(k,R,d),L=k+D*R;for(;L<u&&D<=x;){let P=S+D;if(g!==void 0&&P>g)break;let M=f===null?null:Jo(L,P)(f),O=L-n.indexTimeOffset,U=R;O<0&&(U=R+O,O=0);let H={id:String(L),time:O/l,end:(O+U)/l,duration:U/l,isInit:!1,range:A,timescale:1,url:M,number:P,timestampOffset:-(n.indexTimeOffset/l),complete:N,privateInfos:{isEMSGWhitelisted:o}};I.push(H),D++,L=k+D*R}if(L>=u||(S+=x+1,g!==void 0&&S>g))return I}return I}function Ih(n,e){if(e.timescale!==n.timescale){let{timescale:t}=n;n.timeline.push({start:e.time/e.timescale*t,duration:e.duration/e.timescale*t,repeatCount:e.count===void 0?0:e.count,range:e.range})}else n.timeline.push({start:e.time,duration:e.duration,repeatCount:e.count===void 0?0:e.count,range:e.range});return!0}var Tn=class{constructor(e,t){var g,S,I,y;let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t,d=(g=e.timescale)!=null?g:1,c=((S=e.presentationTimeOffset)!=null?S:0)-r*d,l=((I=e.initialization)==null?void 0:I.media)===void 0?null:st(e.initialization.media,o,a),f=e.media===void 0?null:st(e.media,o,a),p;e.initialization!==void 0?p=e.initialization.range:e.indexRange!==void 0&&(p=[0,e.indexRange[0]-1]),this._index={indexRange:e.indexRange,indexTimeOffset:c,initialization:{url:l,range:p},segmentUrlTemplate:f,startNumber:e.startNumber,endNumber:e.endNumber,timeline:(y=e.timeline)!=null?y:[],timescale:d},this._manifestBoundsCalculator=t.manifestBoundsCalculator,this._scaledPeriodStart=ze(r,this._index),this._scaledPeriodEnd=_(i)?void 0:ze(i,this._index),this._isInitialized=this._index.timeline.length>0,this._isEMSGWhitelisted=s}getInitSegment(){return At(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return bi(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){let e=this._index;return e.timeline.length===0?null:bt(Math.max(this._scaledPeriodStart,e.timeline[0].start),e)}getLastAvailablePosition(){var i;let{timeline:e}=this._index;if(e.length===0)return null;let t=e[e.length-1],r=Math.min(ve(t,null,this._scaledPeriodEnd),(i=this._scaledPeriodEnd)!=null?i:1/0);return bt(r,this._index)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return this._isInitialized}initialize(e){if(!this._isInitialized){for(let t=0;t<e.length;t++)Ih(this._index,e[t]);this._isInitialized=!0}}addPredictedSegments(){m.warn("Cannot add predicted segments to a `BaseRepresentationIndex`")}_replace(e){this._index=e._index,this._isInitialized=e._isInitialized,this._scaledPeriodEnd=e._scaledPeriodEnd,this._isEMSGWhitelisted=e._isEMSGWhitelisted}_update(){m.error("Base RepresentationIndex: Cannot update a SegmentList")}};var _n=class{constructor(e,t){var p,g,S;if(e.duration===void 0)throw new Error("Invalid SegmentList: no duration");let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t;this._isEMSGWhitelisted=s,this._periodStart=r,this._periodEnd=i;let d=(p=e.presentationTimeOffset)!=null?p:0,u=(g=e.timescale)!=null?g:1,c=d-r*u,l=((S=e.initialization)==null?void 0:S.media)===void 0?null:st(e.initialization.media,o,a),f=e.list.map(I=>({url:I.media===void 0?null:st(I.media,o,a),mediaRange:I.mediaRange}));this._index={list:f,timescale:u,duration:e.duration,indexTimeOffset:c,indexRange:e.indexRange,initialization:_(e.initialization)?void 0:{url:l,range:e.initialization.range}}}getInitSegment(){let e=At(this._index);return e.privateInfos===void 0&&(e.privateInfos={}),e.privateInfos.isEMSGWhitelisted=this._isEMSGWhitelisted,e}getSegments(e,t){let r=this._index,{duration:i,list:o,timescale:a}=r,s=i/a,d=e-this._periodStart,[u,c]=uf(d,t,a),l=Math.min(o.length-1,Math.floor(c/i)),f=[],p=Math.floor(u/i);for(;p<=l;){let g=o[p].mediaRange,S=o[p].url,I=p*s+this._periodStart,y={id:String(p),time:I,isInit:!1,range:g,duration:s,timescale:1,end:I+s,url:S,timestampOffset:-(r.indexTimeOffset/a),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};f.push(y),p++}return f}shouldRefresh(e,t){return!1}getFirstAvailablePosition(){return this._periodStart}getLastAvailablePosition(){var i;let e=this._index,{duration:t,list:r}=e;return Math.min(r.length*t/e.timescale+this._periodStart,(i=this._periodEnd)!=null?i:1/0)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return!0}initialize(){m.error("A `ListRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `ListRepresentationIndex`")}_replace(e){this._index=e._index}_update(){m.error("A `ListRepresentationIndex` cannot be updated")}};function jn(n){return B.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR*n}var En=class{constructor(e,t){var y,T,v;let{availabilityTimeOffset:r,manifestBoundsCalculator:i,isDynamic:o,periodEnd:a,periodStart:s,representationId:d,representationBitrate:u,isEMSGWhitelisted:c}=t,l=(y=e.timescale)!=null?y:1;this._availabilityTimeOffset=r,this._manifestBoundsCalculator=i;let f=(T=e.presentationTimeOffset)!=null?T:0,p=s*l,g=f-p;if(e.duration===void 0)throw new Error("Invalid SegmentTemplate: no duration");let S=((v=e.initialization)==null?void 0:v.media)===void 0?null:st(e.initialization.media,d,u),I=e.media===void 0?null:st(e.media,d,u);this._index={duration:e.duration,timescale:l,indexRange:e.indexRange,indexTimeOffset:g,initialization:_(e.initialization)?void 0:{url:S,range:e.initialization.range},url:I,presentationTimeOffset:f,startNumber:e.startNumber,endNumber:e.endNumber},this._isDynamic=o,this._periodStart=s,this._scaledRelativePeriodEnd=a===void 0?void 0:(a-s)*l,this._isEMSGWhitelisted=c}getInitSegment(){return At(this._index,this._isEMSGWhitelisted)}getSegments(e,t){let r=this._index,{duration:i,startNumber:o,endNumber:a,timescale:s,url:d}=r,u=this._periodStart*s,c=this._scaledRelativePeriodEnd,l=e*s-u,f=(e+t)*s-u,p=this._getFirstSegmentStart(),g=this._getLastSegmentStart();if(_(p)||_(g))return[];let S=Math.max(p,l),I=Math.min(g,f);if(I+i<=S)return[];let y=[],T=o!=null?o:1,v=Math.floor(S/i);for(let E=v*i;E<=I;E+=i){let R=v+T;if(a!==void 0&&R>a)return y;let k=!_(c)&&E+i>c?c-E:i,A=E+u,C=E+this._index.presentationTimeOffset,x=d===null?null:Jo(C,R)(d),N={id:String(R),number:R,time:A/s,end:(A+k)/s,duration:k/s,timescale:1,isInit:!1,scaledDuration:k/s,url:x,timestampOffset:-(r.indexTimeOffset/s),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};y.push(N),v++}return y}getFirstAvailablePosition(){let e=this._getFirstSegmentStart();return _(e)?e:e/this._index.timescale+this._periodStart}getLastAvailablePosition(){let e=this._getLastSegmentStart();if(_(e))return e;let t=this._estimateRelativeScaledEnd();return Math.min(e+this._index.duration,t!=null?t:1/0)/this._index.timescale+this._periodStart}getEnd(){if(!this._isDynamic)return this.getLastAvailablePosition();let e=this._estimateRelativeScaledEnd();if(e===void 0)return;let{timescale:t}=this._index;return(e+this._periodStart*t)/t}awaitSegmentBetween(e,t){if(J(e<=t),!this._isDynamic)return!1;let{timescale:r}=this._index,i=jn(r),o=this._periodStart*r,a=e*r-o,s=t*r-o,d=this._getLastSegmentStart();if(_(d)){let l=this._estimateRelativeScaledEnd();return l===void 0?s+i>=0:s+i>=0&&a<l-i}let u=d+this._index.duration,c=this._estimateRelativeScaledEnd();return c===void 0?s>u-i:s>u-i&&a<c-i}shouldRefresh(){return!1}checkDiscontinuity(){return null}isSegmentStillAvailable(e){if(e.isInit)return!0;let t=this.getSegments(e.time,.1);return t.length===0?!1:t[0].time===e.time&&t[0].end===e.end&&t[0].number===e.number}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){if(!this._isDynamic)return!1;let e=this._estimateRelativeScaledEnd();if(e===void 0)return!0;let{timescale:t}=this._index,r=this._getLastSegmentStart();if(_(r))return!0;let i=r+this._index.duration,o=jn(t);return i+o<e}isInitialized(){return!0}initialize(){m.error("A `TemplateRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TemplateRepresentationIndex`")}_replace(e){this._index=e._index,this._isDynamic=e._isDynamic,this._periodStart=e._periodStart,this._scaledRelativePeriodEnd=e._scaledRelativePeriodEnd,this._manifestBoundsCalculator=e._manifestBoundsCalculator}_update(e){this._replace(e)}_getFirstSegmentStart(){var a;if(!this._isDynamic)return 0;if(this._scaledRelativePeriodEnd===0||this._scaledRelativePeriodEnd===void 0){let s=this._manifestBoundsCalculator.getEstimatedMaximumPosition((a=this._availabilityTimeOffset)!=null?a:0);if(s!==void 0&&s<this._periodStart)return null}let{duration:e,timescale:t}=this._index,r=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime();if(r===void 0)return;let i=r>this._periodStart?(r-this._periodStart)*t:0;return Math.floor(i/e)*e}_getLastSegmentStart(){var o,a;let{duration:e,timescale:t,endNumber:r,startNumber:i=1}=this._index;if(this._isDynamic){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&this._scaledRelativePeriodEnd!==void 0&&this._scaledRelativePeriodEnd<s-this._periodStart*this._index.timescale){let l=Math.ceil(this._scaledRelativePeriodEnd/e);return r!==void 0&&r-i+1<l&&(l=r-i+1),(l-1)*e}let d=this._manifestBoundsCalculator.getEstimatedMaximumPosition((o=this._availabilityTimeOffset)!=null?o:0);if(d===void 0)return;let u=(d-this._periodStart)*t;if(u<0)return null;let c=Math.floor(u/e);return r!==void 0&&r-i+1<c&&(c=r-i+1),c<=0?null:(c-1)*e}else{let s=(a=this._scaledRelativePeriodEnd)!=null?a:0,d=Math.ceil(s/e);r!==void 0&&r-i+1<d&&(d=r-i+1);let u=(d-1)*e,c=B.getCurrent().MINIMUM_SEGMENT_SIZE*t;return r!==void 0||s-u>c||d<2?u:(d-2)*e}}_estimateRelativeScaledEnd(){var e,t;if(this._index.endNumber!==void 0){let r=this._index.endNumber-((e=this._index.startNumber)!=null?e:1)+1;return Math.max(Math.min(r*this._index.duration,(t=this._scaledRelativePeriodEnd)!=null?t:1/0),0)}if(this._scaledRelativePeriodEnd!==void 0)return Math.max(this._scaledRelativePeriodEnd,0)}};function Ti(n,e){let t=0;for(;n.length>0;){let r=n[0];if(r.start>=e||r.repeatCount===-1)return t;if(r.repeatCount===0)n.shift(),t+=1;else{let i=n[1];if(i!==void 0&&i.start<=e)n.shift(),t+=1;else{if(r.duration<=0)return t;let o=r.start+r.duration,a=1;for(;o<e&&a<=r.repeatCount;)o+=r.duration,a++;if(a>r.repeatCount)n.shift(),t=r.repeatCount+1;else{let s=r.repeatCount-a;return r.start=o,r.repeatCount=s,t+=a,t}}}}return t}function _i(n,e){if(n.length===0)return n.push(...e),!0;if(e.length===0)return!1;let t=n.length,r=e[0].start,i=n[t-1];if(ve(i,e[0])<r)throw new Z("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");for(let c=t-1;c>=0;c--){let l=n[c].start;if(l===r){let f=t-c;return n.splice(c,f,...e),!1}else if(l<r){let f=n[c];if(f.start+f.duration>r)return m.warn("RepresentationIndex: Manifest update removed all previous segments"),n.splice(0,t,...e),!0;if(f.repeatCount===void 0||f.repeatCount<=0)return f.repeatCount<0&&(f.repeatCount=Math.floor((r-f.start)/f.duration)-1),n.splice(c+1,t-(c+1),...e),!1;if(f.start+f.duration*(f.repeatCount+1)<=r)return n.splice(c+1,t-(c+1),...e),!1;let g=(r-f.start)/f.duration-1;if(g%1===0&&f.duration===e[0].duration){let S=e[0].repeatCount<0?-1:e[0].repeatCount+g+1;return n.splice(c,t-c,...e),n[c].start=f.start,n[c].repeatCount=S,!1}return m.warn("RepresentationIndex: Manifest update removed previous segments"),n[c].repeatCount=Math.floor(g),n.splice(c+1,t-(c+1),...e),!1}}let a=n[n.length-1],s=e[e.length-1];if(a.repeatCount!==void 0&&a.repeatCount<0)return a.start>s.start?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0);let d=a.start+a.duration*(a.repeatCount+1),u=s.start+s.duration*(s.repeatCount+1);return d>=u?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0)}function Ei(n,e,t){let r=n.start,i=n.duration,o=n.repeatCount;return r===void 0&&(e===null?r=0:_(e.duration)||(r=e.start+e.duration*(e.repeatCount+1))),(i===void 0||isNaN(i))&&t!==null&&t.start!==void 0&&!isNaN(t.start)&&r!==void 0&&!isNaN(r)&&(i=t.start-r),r!==void 0&&!isNaN(r)&&i!==void 0&&!isNaN(i)&&(o===void 0||!isNaN(o))?{start:r,duration:i,repeatCount:o===void 0?0:o}:(m.warn('DASH: A "S" Element could not have been parsed.'),null)}function vi(n){let e={};for(let t of Object.keys(n.attributes)){let r=n.attributes[t];if(!_(r))switch(t){case"t":let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid t ("${r}")`):e.start=i;break;case"d":let o=parseInt(r,10);isNaN(o)?m.warn(`DASH: invalid d ("${r}")`):e.duration=o;break;case"r":let a=parseInt(r,10);isNaN(a)?m.warn(`DASH: invalid r ("${r}")`):e.repeatCount=a;break}}return e}function Ri(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"t":let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid t ("${r.value}")`):e.start=i;break;case"d":let o=parseInt(r.value,10);isNaN(o)?m.warn(`DASH: invalid d ("${r.value}")`):e.duration=o;break;case"r":let a=parseInt(r.value,10);isNaN(a)?m.warn(`DASH: invalid r ("${r.value}")`):e.repeatCount=a;break}}return e}function Xt(n){let e=[];if(Array.isArray(n))for(let r=0;r<n.length;r++)e.push(vi(n[r]));else for(let r=0;r<n.length;r++)e.push(Ri(n[r]));let t=[];for(let r=0;r<e.length;r++){let i=e[r],o=t[t.length-1]===void 0?null:t[t.length-1],a=e[r+1]===void 0?null:e[r+1],s=Ei(i,o,a);s!==null&&t.push(s)}return t}function bd(n,e){if(n.length===0||e.length===0)return null;let t=n[0].start,r=Array.isArray(e)?e[0].attributes.t:e[0].getAttribute("t"),i=_(r)?null:parseInt(r,10);if(i===null||Number.isNaN(i))return null;if(t===i)return{prevSegmentsIdx:0,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(t<i){let o=n[0],a=0;for(;;){if(o.repeatCount>0){let s=i-o.start;if(s%o.duration===0&&s/o.duration<=o.repeatCount)return{repeatNumberInPrevSegments:s/o.duration,prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInNewElements:0}}if(a++,a>=n.length)return null;if(o=n[a],o.start===i)return{prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(o.start>i)return null}}else{let o=0,a=Array.isArray(e)?e[0]:null,s=Array.isArray(e)?null:e[0],d=i;for(;;){let u=a!==null?a.attributes.d:s==null?void 0:s.getAttribute("d"),c=_(u)?null:parseInt(u,10);if(c===null||Number.isNaN(c))return null;let l=a!==null?a.attributes.r:s==null?void 0:s.getAttribute("r"),f=_(l)?null:parseInt(l,10);if(f!==null){if(Number.isNaN(f)||f<0)return null;if(f>0){let S=t-d;if(S%c===0&&S/c<=f)return{repeatNumberInPrevSegments:0,repeatNumberInNewElements:S/c,prevSegmentsIdx:0,newElementsIdx:o}}d+=c*(f+1)}else d+=c;if(o++,o>=e.length)return null;Array.isArray(e)?a=e[o]:s=e[o];let p=a!==null?a.attributes.t:s==null?void 0:s.getAttribute("t"),g=_(p)?null:parseInt(p,10);if(g!==null){if(Number.isNaN(g))return null;d=g}if(d===t)return{newElementsIdx:o,prevSegmentsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(d>i)return null}}}function Td(n,e){var S;let t=bd(e,n);if(t===null)return m.warn('DASH: Cannot perform "based" update. Common segment not found.'),Xt(n);let{prevSegmentsIdx:r,newElementsIdx:i,repeatNumberInPrevSegments:o,repeatNumberInNewElements:a}=t,d=e.length-r+i-1;if(d>=n.length)return m.info('DASH: Cannot perform "based" update. New timeline too short'),Xt(n);let u=e.slice(r);if(o>0){let I=u[0];I.start+=I.duration*o,u[0].repeatCount-=o}if(a>0&&i!==0)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form.'),Xt(n);let c=u[u.length-1],l=Array.isArray(n)?vi(n[d]):Ri(n[d]),f=((S=l.repeatCount)!=null?S:0)-a;if(l.duration!==c.duration||c.repeatCount>f)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form at the beginning.'),Xt(n);l.repeatCount!==void 0&&l.repeatCount>c.repeatCount&&(c.repeatCount=l.repeatCount);let p=[],g=[];if(Array.isArray(n))for(let I=d+1;I<n.length;I++)g.push(vi(n[I]));else for(let I=d+1;I<n.length;I++)g.push(Ri(n[I]));for(let I=0;I<g.length;I++){let y=g[I],T=p[p.length-1]===void 0?c:p[p.length-1],v=g[I+1]===void 0?null:g[I+1],E=Ei(y,T,v);E!==null&&p.push(E)}return u.concat(p)}var ki=class n{constructor(e,t){var E,R,k,A,C;if(!n.isTimelineIndexArgument(e))throw new Error("The given index is not compatible with a TimelineRepresentationIndex.");let{availabilityTimeComplete:r,availabilityTimeOffset:i,manifestBoundsCalculator:o,isDynamic:a,isLastPeriod:s,representationId:d,representationBitrate:u,periodStart:c,periodEnd:l,isEMSGWhitelisted:f}=t,p=(E=e.timescale)!=null?E:1,g=(R=e.presentationTimeOffset)!=null?R:0,S=c*p,I=g-S;this._manifestBoundsCalculator=o,this._isEMSGWhitelisted=f,this._isLastPeriod=s,this._lastUpdate=(k=t.receivedTime)!=null?k:V(),this._unsafelyBaseOnPreviousIndex=null,t.unsafelyBaseOnPreviousRepresentation!==null&&t.unsafelyBaseOnPreviousRepresentation.index instanceof n&&(t.unsafelyBaseOnPreviousRepresentation.index._unsafelyBaseOnPreviousIndex=null,this._unsafelyBaseOnPreviousIndex=t.unsafelyBaseOnPreviousRepresentation.index),this._isDynamic=a,this._parseTimeline=(A=e.timelineParser)!=null?A:null;let y=((C=e.initialization)==null?void 0:C.media)===void 0?null:st(e.initialization.media,d,u),T=e.media===void 0?null:st(e.media,d,u),v;i===void 0&&r===void 0?v=1/0:v=i!=null?i:0,this._index={availabilityTimeComplete:r!=null?r:!0,availabilityTimeOffset:v,indexRange:e.indexRange,indexTimeOffset:I,initialization:_(e.initialization)?void 0:{url:y,range:e.initialization.range},segmentUrlTemplate:T,startNumber:e.startNumber,endNumber:e.endNumber,timeline:e.timeline===void 0?null:_d(e.timeline,e.startNumber,e.endNumber),timescale:p},this._scaledPeriodStart=ze(c,this._index),this._scaledPeriodEnd=l===void 0?void 0:ze(l,this._index)}getInitSegment(){return At(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),bi(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=this._index.timeline;return e.length===0?null:bt(Math.max(this._scaledPeriodStart,e[0].start),this._index)}getLastAvailablePosition(){var r;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=ea(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(e===null)return null;let t=Math.min(e.end,(r=this._scaledPeriodEnd)!=null?r:1/0);return bt(t,this._index)}getEnd(){var r;if(this._isDynamic&&!this._isLastPeriod)return;if(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),this._index.timeline.length<=0)return null;let e=this._index.timeline[this._index.timeline.length-1],t=Math.min(ve(e,null,this._scaledPeriodEnd),(r=this._scaledPeriodEnd)!=null?r:1/0);return bt(t,this._index)}awaitSegmentBetween(e,t){var u,c;if(J(e<=t),!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timescale:r,timeline:i}=this._index,o=jn(r),a=ze(t,this._index),s=ea(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(s!==null&&Math.min(s.end,(u=this._scaledPeriodEnd)!=null?u:1/0)+o>=Math.min(a,(c=this._scaledPeriodEnd)!=null?c:1/0))return!1;let d=ze(e,this._index);if(i.length>0&&s!==null&&!s.isLastOfTimeline){let l=i[i.length-1],p=ve(l,null,this._scaledPeriodEnd)+o;if(d<p+o)return!0}return this._isLastPeriod?this._scaledPeriodEnd===void 0?a+o>this._scaledPeriodStart?void 0:!1:d-o<this._scaledPeriodEnd&&a+o>this._scaledPeriodStart:!1}isSegmentStillAvailable(e){return e.isInit?!0:(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),yh(e,this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd))}checkDiscontinuity(e){this._refreshTimeline();let t=this._index.timeline;return t===null&&(t=this._getTimeline(),this._index.timeline=t),Zo({timeline:t,timescale:this._index.timescale,indexTimeOffset:this._index.indexTimeOffset},e,this._scaledPeriodEnd)}canBeOutOfSyncError(e){return this._isDynamic?e instanceof rt&&e.isHttpError(404):!1}_replace(e){this._parseTimeline=e._parseTimeline,this._index=e._index,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._manifestBoundsCalculator=e._manifestBoundsCalculator,this._isLastPeriod=e._isLastPeriod}_update(e){this._index.timeline===null&&(this._index.timeline=this._getTimeline()),e._index.timeline===null&&(e._index.timeline=e._getTimeline()),_i(this._index.timeline,e._index.timeline)&&(this._index.startNumber=e._index.startNumber),this._index.availabilityTimeOffset=e._index.availabilityTimeOffset,this._index.availabilityTimeComplete=e._index.availabilityTimeComplete,this._index.endNumber=e._index.endNumber,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._isLastPeriod=e._isLastPeriod}isStillAwaitingFutureSegments(){var a;if(!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timeline:e}=this._index;if(e.length===0){if(this._scaledPeriodEnd!==void 0){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&ze(s,this._index)>this._scaledPeriodEnd)return!1}return this._isLastPeriod}let t=jn(this._index.timescale),r=ea(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(r!==null&&!r.isLastOfTimeline){let s=Math.min(r.end,(a=this._scaledPeriodEnd)!=null?a:1/0);return!(this._scaledPeriodEnd!==void 0&&s+t>=this._scaledPeriodEnd)}if(!this._isLastPeriod)return!1;if(this._scaledPeriodEnd===void 0)return!0;let i=e[e.length-1];return ve(i,null,this._scaledPeriodEnd)+t<this._scaledPeriodEnd}isInitialized(){return!0}initialize(){m.error("A `TimelineRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`")}static isTimelineIndexArgument(e){return typeof e.timelineParser=="function"||Array.isArray(e.timeline)}_refreshTimeline(){if(this._index.timeline===null&&(this._index.timeline=this._getTimeline()),!this._isDynamic)return;let e=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime();if(_(e))return;let t=ze(e,this._index),r=Ti(this._index.timeline,t);this._index.startNumber!==void 0?this._index.startNumber+=r:this._index.endNumber!==void 0&&(this._index.startNumber=r+1)}_getTimeline(){if(this._parseTimeline===null)return this._index.timeline!==null?this._index.timeline:(m.error("DASH: Timeline already lazily parsed."),[]);let e=this._parseTimeline();this._parseTimeline=null;let{MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:t}=B.getCurrent();if(this._unsafelyBaseOnPreviousIndex===null||e.length<t)return _d(Xt(e),this._index.startNumber,this._index.endNumber);let r;return this._unsafelyBaseOnPreviousIndex._index.timeline===null?(r=this._unsafelyBaseOnPreviousIndex._getTimeline(),this._unsafelyBaseOnPreviousIndex._index.timeline=r):r=this._unsafelyBaseOnPreviousIndex._index.timeline,this._unsafelyBaseOnPreviousIndex=null,_d(Td(e,r),this._index.startNumber,this._index.endNumber)}};function _d(n,e,t){if(t===void 0)return n;let r=e!=null?e:1;for(let i=0;i<n.length;i++){let o=n[i];if(r+=o.repeatCount+1,r>t){if(r===t+1)return n.slice(0,i+1);{let a=n.slice(0,i),s=ce({},o),d=r-o.repeatCount-1;return s.repeatCount=Math.max(0,t-d),a.push(s),a}}}return n}function yh(n,e,t,r){let i=ea(e,t,r);if(i===null)return!1;for(let o=0;o<e.timeline.length;o++){if(i.timelineIdx<o)return!1;let a=e.timeline[o],s=(a.start-e.indexTimeOffset)/e.timescale;if(s>n.time)return!1;if(s===n.time)return a.range===void 0?n.range===void 0:!_(n.range)&&a.range[0]===n.range[0]&&a.range[1]===n.range[1];if(a.repeatCount>=0&&a.duration!==void 0){let u=(s-a.start)/a.duration-1;return u%1===0&&u<=i.newRepeatCount}}return!1}function ea(n,e,t){if(n.timeline.length<=0)return null;if(n.availabilityTimeOffset===1/0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ve(o,null,t)}}let r=e.getEstimatedMaximumPosition(n.availabilityTimeOffset);if(r===void 0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ve(o,null,t)}}for(let i=n.timeline.length-1;i>=n.timeline.length;i--){let o=n.timeline[i],a=o.start+o.duration;if(bt(a,n)<=r){let s=ve(o,n.timeline[i+1],t);if(bt(s,n)<=r)return{isLastOfTimeline:i===n.timeline.length-1,timelineIdx:i,newRepeatCount:o.repeatCount,end:a};{let u=ze(r,n)-o.start,c=Math.floor(u/o.duration);return J(c>=1),{isLastOfTimeline:!1,timelineIdx:i,newRepeatCount:c-1,end:o.start+c*o.duration}}}}return null}var ta=ki;var Sh=/^(?:[a-z]+:)?\/\//i,bh=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function Ai(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(Sh.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?Ai(n.substring(0,t)):e+1}function Th(n,e){let t=lf(n),r=lf(e);if(r.scheme)return Ed(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return r.authority?(i.authority=r.authority,i.path=vd(r.path),Ed(i)):(r.path===""?(i.path=t.path,r.query||(i.query=t.query)):qe(r.path,"/")?i.path=vd(r.path):i.path=vd(Eh(t,r.path)),Ed(i))}var Pi=new Map,_h=200;function lf(n){var r,i,o,a,s;if(Pi.has(n))return Pi.get(n);let e=n.match(bh),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},Pi.size>=_h&&Pi.clear(),Pi.set(n,t),t}function Ed(n){let e="";return n.scheme&&(e+=n.scheme+":"),n.authority&&(e+="//"+n.authority),e+=n.path,n.query&&(e+="?"+n.query),n.fragment&&(e+="#"+n.fragment),e}function vd(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Eh(n,e){if(n.authority&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function cf(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=Th(a,s),u=e.slice(2);return cf(d,...u)}}var Yn=cf;var Ci=class{constructor(){this._refs=new Map,this._stored=[]}addReferences(e){for(let t of e)t.attributes.refId!==void 0&&this._refs.set(t.attributes.refId,t)}add(e,t){this._tryParsing(e,t,!1)||this._stored.push([e,t]),t.attributes.refId!==void 0&&(this._refs.set(t.attributes.refId,t),this._resolveStoredRefs(!1))}finalize(){this._resolveStoredRefs(!0)}_resolveStoredRefs(e){for(let t=this._stored.length-1;t>=0;t--){let[r,i]=this._stored[t];(this._tryParsing(r,i,e)||e)&&this._stored.splice(t,1)}return this._stored.length===0}_tryParsing(e,t,r){if(t.attributes.ref===void 0)return Rd(e,t),!0;let i=this._getReferenced(t.attributes.ref);return i===void 0?(r&&(m.warn("DASH: forcing the parsing of a referencing ContentProtection"),Rd(e,t)),!1):(t.children.cencPssh.push(...i.children.cencPssh),t.attributes.keyId===void 0&&i.attributes.keyId!==void 0&&(t.attributes.keyId=i.attributes.keyId),t.attributes.schemeIdUri===void 0&&i.attributes.schemeIdUri!==void 0&&(t.attributes.schemeIdUri=i.attributes.schemeIdUri),t.attributes.value===void 0&&i.attributes.value!==void 0&&(t.attributes.value=i.attributes.value),Rd(e,t),!0)}_getReferenced(e){return this._refs.get(e)}};function Rd(n,e){let t;if(e.attributes.schemeIdUri!==void 0&&e.attributes.schemeIdUri.substring(0,9)==="urn:uuid:"&&(t=e.attributes.schemeIdUri.substring(9).replace(/-/g,"").toLowerCase()),e.attributes.keyId!==void 0&&e.attributes.keyId.length>0){let a={keyId:e.attributes.keyId,systemId:t};n.contentProtections===void 0?n.contentProtections={keyIds:[a],initData:[]}:n.contentProtections.keyIds===void 0?n.contentProtections.keyIds=[a]:n.contentProtections.keyIds.push(a)}if(t===void 0)return;let{cencPssh:r}=e.children,i=[];for(let a of r)i.push({systemId:t,data:a});if(i.length===0)return;if(n.contentProtections===void 0){n.contentProtections={keyIds:[],initData:[{type:"cenc",values:i}]};return}let o=X(n.contentProtections.initData,a=>a.type==="cenc");o===void 0?n.contentProtections.initData.push({type:"cenc",values:i}):o.values.push(...i)}function na(n){let e=Date.parse(n)-V();if(isNaN(e)){m.warn("DASH Parser: Invalid clock received: ",n);return}return e}function kd(n){let e=n.children.utcTimings.filter(t=>(t.schemeIdUri==="urn:mpeg:dash:utc:http-iso:2014"||t.schemeIdUri==="urn:mpeg:dash:utc:http-xsdate:2014")&&t.value!==void 0);return e.length>0?e[0].value:void 0}function ra(n){let{representations:e}=n,t=null;for(let r=0;r<e.length;r++){let i=e[r].index.getLastAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.min(t,i))}return t===null?null:t}function Pd(n){for(let e=n.length-1;e>=0;e--){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=ra(r);if(s===void 0)return{safe:void 0,unsafe:void 0};o=s}if(i!==void 0){let s=ra(i);if(s===void 0)return{safe:void 0,unsafe:void 0};a=s}if(r!==void 0&&o===null||i!==void 0&&a===null)return m.info("Parser utils: found Period with no segment. ","Going to previous one to calculate last position"),{safe:void 0,unsafe:void 0};if(a!==null)return o!==null?{safe:Math.min(o,a),unsafe:Math.max(o,a)}:{safe:a,unsafe:a};if(o!==null)return{safe:o,unsafe:o}}}return{safe:void 0,unsafe:void 0}}function ia(n){let{representations:e}=n,t=null;for(let r=0;r<e.length;r++){let i=e[r].index.getFirstAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.max(t,i))}return t===null?null:t}function Ad(n){for(let e=0;e<=n.length-1;e++){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=ia(r);if(s===void 0)return;o=s}if(i!==void 0){let s=ia(i);if(s===void 0)return;a=s}if(r!==void 0&&o===null||i!==void 0&&a===null){m.info("Parser utils: found Period with no segment. ","Going to next one to calculate first position");return}if(a!==null)return o!==null?Math.max(o,a):a;if(o!==null)return o}}}function Cd(n){if(n.length===0)throw new Error("DASH Parser: no period available for a dynamic content");let e=Ad(n),t=Pd(n);return{minimumSafePosition:e,maximumSafePosition:t.safe,maximumUnsafePosition:t.unsafe}}var Mi=class{constructor(e){this._isDynamic=e.isDynamic,this._timeShiftBufferDepth=!e.isDynamic||e.timeShiftBufferDepth===void 0?null:e.timeShiftBufferDepth,this._serverTimestampOffset=e.serverTimestampOffset,this._availabilityStartTime=e.availabilityStartTime}setLastPosition(e,t){this._lastPosition=e,this._positionTime=t}lastPositionIsKnown(){return this._isDynamic?this._positionTime!==void 0&&this._lastPosition!==void 0:this._lastPosition!==void 0}getEstimatedMinimumSegmentTime(){var r;if(!this._isDynamic||this._timeShiftBufferDepth===null)return 0;let e=(r=this.getEstimatedLiveEdge())!=null?r:this.getEstimatedMaximumPosition(0);return e===void 0?void 0:e-this._timeShiftBufferDepth}getEstimatedLiveEdge(){if(!(!this._isDynamic||this._serverTimestampOffset===void 0))return(V()+this._serverTimestampOffset)/1e3-this._availabilityStartTime}getEstimatedMaximumPosition(e){if(!this._isDynamic)return this._lastPosition;let t=this.getEstimatedLiveEdge();return t!==void 0&&e!==1/0?t+e:this._positionTime!==void 0&&this._lastPosition!==void 0?Math.max(this._lastPosition-this._positionTime+V()/1e3,0):this._lastPosition}};function Md(n,e){return n.type!=="dynamic"?0:_(n.availabilityStartTime)?e!=null?e:0:n.availabilityStartTime}function xd(n){if(n.length===0)return[];let e=[n[0]];for(let t=1;t<n.length;t++){let r=n[t],i=e[e.length-1];for(;(i.duration===void 0||i.start+i.duration>r.start)&&(m.warn("DASH: Updating overlapping Periods.",i==null?void 0:i.start,r.start),i.duration=r.start-i.start,i.end=r.start,!(i.duration>0));){if(e.pop(),e.length===0)break;i=e[e.length-1]}e.push(r)}return e}function wd(n,e){let t=[];return n.forEach((r,i)=>{let o;if(!_(r.attributes.start))o=r.attributes.start;else if(i===0)o=!e.isDynamic||_(e.availabilityStartTime)?0:e.availabilityStartTime;else{let u=t[t.length-1];if(!_(u)&&!_(u.periodEnd))o=u.periodEnd;else throw new Error("Missing start time when parsing periods.")}let a,s=n[i+1];_(r.attributes.duration)?i===n.length-1?a=e.duration:_(s.attributes.start)||(a=s.attributes.start-o):a=r.attributes.duration;let d=_(a)?void 0:o+a;t.push({periodStart:o,periodDuration:a,periodEnd:d})}),t}function vh(n,e){for(let t of e){let{adaptation:r,trickModeAttachedAdaptationIds:i}=t;for(let o of i)for(let a of Ht){let s=n[a];if(s!==void 0)for(let d of s)d.id===o&&(d.trickModeTracks===void 0&&(d.trickModeTracks=[]),d.trickModeTracks.push(r))}}}var ff=vh;var Rh=["subtitle","caption"];function Od(n,e,t,r){function i(a,s){let d=a.split("/")[0];if($(Ht,d))return d;if(a==="application/ttml+xml")return"text";if(a==="application/mp4")return s!==null&&X(s,u=>u.schemeIdUri==="urn:mpeg:dash:role:2011"&&$(Rh,u.value))!==void 0?"text":void 0}function o(a){switch(a.substring(0,3)){case"avc":case"hev":case"hvc":case"vp8":case"vp9":case"av1":return"video";case"vtt":return"text"}switch(a.substring(0,4)){case"mp4a":return"audio";case"wvtt":case"stpp":return"text"}}if(e!==null){let a=i(e,r);if(a!==void 0)return a}if(t!==null){let a=o(t);if(a!==void 0)return a}for(let a=0;a<n.length;a++){let s=n[a],{mimeType:d,codecs:u}=s.attributes;if(d!==void 0){let c=i(d,r);if(c!==void 0)return c}if(u!==void 0){let c=o(u);if(c!==void 0)return c}}}var kh=/[, ]+/g;function mf(n){return w(n)?n.trim().replace(kh,", "):""}function pf(n){let[e,t,r,i,o,a,s,d]=n.split(".");if(e!=="vp08"&&e!=="vp09"&&e!=="vp10")return;let u,c,l;if((i!==void 0&&i==="10"||i==="12")&&(u=parseInt(i,10)),s!==void 0&&(s==="16"?c="pq":s==="18"&&(c="hlg")),a!==void 0&&d!==void 0&&a==="09"&&d==="09"&&(l="rec2020"),!(u===void 0||c===void 0))return{colorDepth:u,eotf:c,colorSpace:l}}function Dd(n,e){var g,S,I;let{availabilityTimeOffset:t,manifestBoundsCalculator:r,isDynamic:i,end:o,start:a,receivedTime:s,unsafelyBaseOnPreviousRepresentation:d,inbandEventStreams:u,isLastPeriod:c}=e,f={availabilityTimeComplete:void 0,availabilityTimeOffset:t,unsafelyBaseOnPreviousRepresentation:d,isEMSGWhitelisted:y=>u===void 0?!1:u.some(({schemeIdUri:T})=>T===y.schemeIdUri),isLastPeriod:c,manifestBoundsCalculator:r,isDynamic:i,periodEnd:o,periodStart:a,receivedTime:s,representationBitrate:n.attributes.bitrate,representationId:n.attributes.id},p;if(n.children.segmentBase!==void 0){let{segmentBase:y}=n.children;p=new Tn(y,f)}else if(n.children.segmentList!==void 0){let{segmentList:y}=n.children;p=new _n(y,f)}else if(n.children.segmentTemplate!==void 0||e.parentSegmentTemplates.length>0){let y=e.parentSegmentTemplates.slice(),T=n.children.segmentTemplate;T!==void 0&&y.push(T);let v=Y({},...y);(v.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(f.availabilityTimeOffset=((g=v.availabilityTimeOffset)!=null?g:0)+((S=e.availabilityTimeOffset)!=null?S:0)),(v.availabilityTimeComplete!==void 0||e.availabilityTimeComplete!==void 0)&&(f.availabilityTimeComplete=(I=v.availabilityTimeComplete)!=null?I:e.availabilityTimeComplete),p=ta.isTimelineIndexArgument(v)?new ta(v,f):new En(v,f)}else{let y=e.adaptation.children;if(y.segmentBase!==void 0){let{segmentBase:T}=y;p=new Tn(T,f)}else if(y.segmentList!==void 0){let{segmentList:T}=y;p=new _n(T,f)}else p=new En({duration:Number.MAX_VALUE,timescale:1,startNumber:0,media:""},f)}return p}function Ct(n,e){var i;if(e.length===0)return n;let t=e.map(o=>({url:o.value}));if(n.length===0)return t;let r=[];for(let o=0;o<n.length;o++){let a=n[o];for(let s=0;s<t.length;s++){let d=t[s],u=Yn(a.url,d.url);r.push({url:u,serviceLocation:(i=d.serviceLocation)!=null?i:a.serviceLocation})}}return r}function Ph(n,e){let t=[];if(n.children.inbandEventStreams!==void 0&&t.push(...n.children.inbandEventStreams),e.children.inbandEventStreams!==void 0&&t.push(...e.children.inbandEventStreams),t.length!==0)return t}function Ah({adaptationProfiles:n,essentialProperties:e,supplementalProperties:t,manifestProfiles:r,codecs:i}){if(((n!=null?n:"")+(r!=null?r:"")).indexOf("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")!==-1&&(i==="hvc1.2.4.L153.B0"||i==="hev1.2.4.L153.B0"))return{colorDepth:10,eotf:"pq",colorSpace:"rec2020"};let a=X([...e!=null?e:[],...t!=null?t:[]],s=>s.schemeIdUri==="urn:mpeg:mpegB:cicp:TransferCharacteristics");if(a!==void 0)switch(a.value){case"15":return;case"16":return{eotf:"pq"};case"18":return{eotf:"hlg"}}if(i!==void 0&&/^vp(08|09|10)/.exec(i))return pf(i)}function Ld(n,e,t){var i,o,a,s,d,u,c;let r=[];for(let l of n){let f=l.attributes.id!==void 0?l.attributes.id:String(l.attributes.bitrate)+(l.attributes.height!==void 0?`-${l.attributes.height}`:"")+(l.attributes.width!==void 0?`-${l.attributes.width}`:"")+(l.attributes.mimeType!==void 0?`-${l.attributes.mimeType}`:"")+(l.attributes.codecs!==void 0?`-${l.attributes.codecs}`:"");for(;r.some(x=>x.id===f);)f+="-dup";let p=(o=(i=t.unsafelyBaseOnPreviousAdaptation)==null?void 0:i.getRepresentation(f))!=null?o:null,g=Ph(l,e),S=(a=l.attributes.availabilityTimeComplete)!=null?a:t.availabilityTimeComplete,I;(l.attributes.availabilityTimeOffset!==void 0||t.availabilityTimeOffset!==void 0)&&(I=((s=l.attributes.availabilityTimeOffset)!=null?s:0)+((d=t.availabilityTimeOffset)!=null?d:0));let y=Y({},t,{availabilityTimeOffset:I,availabilityTimeComplete:S,unsafelyBaseOnPreviousRepresentation:p,adaptation:e,inbandEventStreams:g}),T=Dd(l,y),v;l.attributes.bitrate===void 0?(m.warn("DASH: No usable bitrate found in the Representation."),v=0):v=l.attributes.bitrate;let E=Ct(t.baseURLs,l.children.baseURLs),R=E.length===0?[{baseUrl:"",id:void 0}]:E.map(x=>({baseUrl:x.url,id:x.serviceLocation})),k={bitrate:v,cdnMetadata:R,index:T,id:f};l.children.supplementalProperties!==void 0&&X(l.children.supplementalProperties,x=>x.schemeIdUri==="tag:dolby.com,2018:dash:EC3_ExtensionType:2018"&&x.value==="JOC")&&(k.isSpatialAudio=!0);let A;l.attributes.codecs!==void 0?A=l.attributes.codecs:e.attributes.codecs!==void 0&&(A=e.attributes.codecs),A!==void 0&&(A=A==="mp4a.40.02"?"mp4a.40.2":A,k.codecs=A);let C;l.attributes.supplementalCodecs!==void 0?C=l.attributes.supplementalCodecs:e.attributes.supplementalCodecs!==void 0&&(C=e.attributes.supplementalCodecs),C!==void 0&&(k.supplementalCodecs=mf(C)),l.attributes.frameRate!==void 0?k.frameRate=l.attributes.frameRate:e.attributes.frameRate!==void 0&&(k.frameRate=e.attributes.frameRate),l.attributes.height!==void 0?k.height=l.attributes.height:e.attributes.height!==void 0&&(k.height=e.attributes.height),l.attributes.mimeType!==void 0?k.mimeType=l.attributes.mimeType:e.attributes.mimeType!==void 0&&(k.mimeType=e.attributes.mimeType),l.attributes.width!==void 0?k.width=l.attributes.width:e.attributes.width!==void 0&&(k.width=e.attributes.width);{let x=[...(u=e.children.contentProtections)!=null?u:[],...(c=l.children.contentProtections)!=null?c:[]];for(let N of x)t.contentProtectionParser.add(k,N)}k.hdrInfo=Ah({adaptationProfiles:e.attributes.profiles,supplementalProperties:e.children.supplementalProperties,essentialProperties:e.children.essentialProperties,manifestProfiles:t.manifestProfiles,codecs:A}),r.push(k)}return r}function Ch(n){if(n===void 0)return!1;let e=n.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&n.value==="1",t=n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="description";return e||t}function Mh(n,e){return!!(n!==void 0&&n.some(r=>r.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&r.value==="2")||e!==void 0&&e.some(r=>r.schemeIdUri==="urn:mpeg:dash:role:2011"&&r.value==="caption"))}function xh(n){return n===void 0?!1:n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="sign"}function wh(n,e){if(w(n.attributes.id))return n.attributes.id;let{isClosedCaption:t,isForcedSubtitle:r,isAudioDescription:i,isSignInterpreted:o,isTrickModeTrack:a,type:s}=e,d=s;return w(n.attributes.language)&&(d+=`-${n.attributes.language}`),t===!0&&(d+="-cc"),r===!0&&(d+="-cc"),i===!0&&(d+="-ad"),o===!0&&(d+="-si"),a&&(d+="-trickMode"),w(n.attributes.contentType)&&(d+=`-${n.attributes.contentType}`),w(n.attributes.codecs)&&(d+=`-${n.attributes.codecs}`),w(n.attributes.mimeType)&&(d+=`-${n.attributes.mimeType}`),n.attributes.frameRate!==void 0&&(d+=`-${String(n.attributes.frameRate)}`),d}function Oh(n){if(!_(n.children.supplementalProperties)){let{supplementalProperties:e}=n.children;for(let t of e)if(t.schemeIdUri==="urn:mpeg:dash:adaptation-set-switching:2016"&&!_(t.value))return t.value.split(",").map(r=>r.trim()).filter(r=>r)}return[]}function Nd(n,e){var s,d,u,c,l,f,p;let t={video:[],audio:[],text:[]},r=[],i={},o=[];for(let g=0;g<n.length;g++){let S=n[g],I=S.children,{essentialProperties:y,roles:T,label:v}=I,E=Array.isArray(T)&&T.some(Re=>Re.value==="main")&&T.some(Re=>Re.schemeIdUri==="urn:mpeg:dash:role:2011"),R=S.children.representations,k=(s=S.attributes.availabilityTimeComplete)!=null?s:e.availabilityTimeComplete,A;(S.attributes.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(A=((d=S.attributes.availabilityTimeOffset)!=null?d:0)+((u=e.availabilityTimeOffset)!=null?u:0));let C=S.attributes.mimeType,x=S.attributes.codecs,N=Od(R,w(C)?C:null,w(x)?x:null,_(I.roles)?null:I.roles);if(N===void 0)continue;let D=(c=S.attributes.selectionPriority)!=null?c:1,L=S.attributes.id,P=Oh(S),M=[];e.segmentTemplate!==void 0&&M.push(e.segmentTemplate),S.children.segmentTemplate!==void 0&&M.push(S.children.segmentTemplate);let O={availabilityTimeComplete:k,availabilityTimeOffset:A,baseURLs:Ct(e.baseURLs,I.baseURLs),contentProtectionParser:e.contentProtectionParser,manifestBoundsCalculator:e.manifestBoundsCalculator,end:e.end,isDynamic:e.isDynamic,isLastPeriod:e.isLastPeriod,manifestProfiles:e.manifestProfiles,parentSegmentTemplates:M,receivedTime:e.receivedTime,start:e.start,unsafelyBaseOnPreviousAdaptation:null},U=Array.isArray(y)?X(y,Re=>Re.schemeIdUri==="http://dashif.org/guidelines/trickmode"):void 0,H=(l=U==null?void 0:U.value)==null?void 0:l.split(" "),q=H!==void 0,{accessibilities:G}=I,K;T!==void 0&&T.some(Re=>Re.value==="dub")&&(K=!0);let ne;N!=="text"?ne=!1:ne=Mh(G,T);let j;N==="text"&&T!==void 0&&T.some(Re=>Re.value==="forced-subtitle"||Re.value==="forced_subtitle")&&(j=!0);let se;N!=="audio"?se=!1:G!==void 0&&(se=G.some(Ch));let oe;N!=="video"?oe=!1:G!==void 0&&(oe=G.some(xh));let z=wh(S,{isAudioDescription:se,isForcedSubtitle:j,isClosedCaption:ne,isSignInterpreted:oe,isTrickModeTrack:q,type:N});for(;$(o,z);)z+="-dup";let ae=z;o.push(z),O.unsafelyBaseOnPreviousAdaptation=(p=(f=e.unsafelyBaseOnPreviousPeriod)==null?void 0:f.getAdaptation(z))!=null?p:null;let $e=Ld(R,S,O),ye={id:z,representations:$e,type:N,isTrickModeTrack:q};if(_(S.attributes.language)||(ye.language=S.attributes.language),_(ne)||(ye.closedCaption=ne),_(se)||(ye.audioDescription=se),K===!0&&(ye.isDub=!0),j!==void 0&&(ye.forcedSubtitles=j),oe===!0&&(ye.isSignInterpreted=!0),v!==void 0&&(ye.label=v),H!==void 0)r.push({adaptation:ye,trickModeAttachedAdaptationIds:H});else{let Re=-1;for(let Ut of P){let Qe=i[Ut];if(Qe!==void 0&&Qe.newID!==ae&&$(Qe.adaptationSetSwitchingIDs,L)){Re=pe(t[N],Ke=>Ke[0].id===Ut);let Fe=t[N][Re];if(Fe!==void 0&&Fe[0].audioDescription===ye.audioDescription&&Fe[0].closedCaption===ye.closedCaption&&Fe[0].language===ye.language){m.info('DASH Parser: merging "switchable" AdaptationSets',L,Ut),Fe[0].representations.push(...ye.representations),Fe[1]={priority:Math.max(D,Fe[1].priority),isMainAdaptation:E||Fe[1].isMainAdaptation,indexInMpd:Math.min(g,Fe[1].indexInMpd)};break}}}Re<0&&t[N].push([ye,{priority:D,isMainAdaptation:E,indexInMpd:g}])}!_(L)&&_(i[L])&&(i[L]={newID:ae,adaptationSetSwitchingIDs:P})}let a=Ht.reduce((g,S)=>{let I=t[S];return I.length>0&&(I.sort(gf),g[S]=I.map(([y])=>y)),g},{});return t.video.sort(gf),ff(a,r),a}function gf(n,e){let t=e[1].priority-n[1].priority;return t!==0?t:n[1].isMainAdaptation!==e[1].isMainAdaptation?n[1].isMainAdaptation?-1:1:n[1].indexInMpd-e[1].indexInMpd}var Dh=Je();function Ud(n,e){var a,s,d,u,c;let t=[],r=wd(n,e);if(r.length!==n.length)throw new Error("MPD parsing error: the time information are incoherent.");let{isDynamic:i,manifestBoundsCalculator:o}=e;!i&&!_(e.duration)&&o.setLastPosition(e.duration);for(let l=n.length-1;l>=0;l--){let f=l===n.length-1,p=n[l],g=e.xlinkInfos.get(p),S=Ct(e.baseURLs,p.children.baseURLs),{periodStart:I,periodDuration:y,periodEnd:T}=r[l],v;for(_(p.attributes.id)?(m.warn("DASH: No usable id found in the Period. Generating one."),v="gen-dash-period-"+Dh()):v=p.attributes.id;t.some(U=>U.id===v);)v+="-dup";let E=g!==void 0?g.receivedTime:e.receivedTime,R=(s=(a=e.unsafelyBaseOnPreviousManifest)==null?void 0:a.getPeriod(v))!=null?s:null,k=p.attributes.availabilityTimeComplete,A=p.attributes.availabilityTimeOffset,{manifestProfiles:C,contentProtectionParser:x}=e,{segmentTemplate:N}=p.children;x.addReferences((d=p.children.contentProtections)!=null?d:[]);let D={availabilityTimeComplete:k,availabilityTimeOffset:A,baseURLs:S,contentProtectionParser:x,manifestBoundsCalculator:o,end:T,isDynamic:i,isLastPeriod:f,manifestProfiles:C,receivedTime:E,segmentTemplate:N,start:I,unsafelyBaseOnPreviousPeriod:R},L=Nd(p.children.adaptations,D),P=((u=e.xmlNamespaces)!=null?u:[]).concat((c=p.attributes.namespaces)!=null?c:[]),M=Nh(p.children.eventStreams,I,P),O={id:v,start:I,end:T,duration:y,adaptations:L,streamEvents:M};if(t.unshift(O),!o.lastPositionIsKnown()){let U=Lh(L);if(!i)typeof U=="number"&&o.setLastPosition(U);else if(typeof U=="number"){let H=V()/1e3;o.setLastPosition(U,H)}else{let H=hf(e,I);if(H!==void 0){let[q,G]=H;o.setLastPosition(q,G)}}}}if(e.isDynamic&&!o.lastPositionIsKnown()){let l=hf(e,0);if(l!==void 0){let[f,p]=l;o.setLastPosition(f,p)}}return xd(t)}function hf(n,e){if(_(n.clockOffset)){let t=Date.now()/1e3;if(t>=e){m.warn("DASH Parser: no clock synchronization mechanism found. Using the system clock instead.");let r=t-n.availabilityStartTime,i=V()/1e3;return[r,i]}}else{let t=n.clockOffset/1e3-n.availabilityStartTime,r=V()/1e3,i=r+t;if(i>=e)return[i,r]}}function Lh(n){let e=null,t=!0,r=xn(n).filter(o=>!_(o)),i=Bn(r,o=>o);for(let o of i){let a=o.representations;for(let s of a){let d=s.index.getLastAvailablePosition();d!==null&&(t=!1,typeof d=="number"&&(e=_(e)?d:Math.max(e,d)))}}if(_(e)){if(t)return null}else return e}function Nh(n,e,t){var i,o;let r=[];for(let a of n){let{schemeIdUri:s="",timescale:d=1}=a.attributes,u=t.concat((i=a.attributes.namespaces)!=null?i:[]);for(let c of a.children.events)if(c.eventStreamData!==void 0){let l=((o=c.presentationTime)!=null?o:0)/d+e,f=c.duration===void 0?void 0:l+c.duration/d,p,g;if(!Bt&&c.eventStreamData instanceof Element)p=c.eventStreamData;else try{g={namespaces:u,data:typeof c.eventStreamData=="string"?c.eventStreamData:we(new Uint8Array(c.eventStreamData))}}catch(S){m.error("DASH: Error while parsing event-stream:",S instanceof Error?S.message:"Unknown error")}r.push({start:l,end:f,id:c.id,data:{type:"dash-event-stream",value:{schemeIdUri:s,timescale:d,element:p,xmlData:g}}})}}return r}function $n(n,e,t,r,i=new WeakMap){let{children:o,attributes:a}=n;if(_(e.externalClockOffset)){let d=a.type==="dynamic",u=X(o.utcTimings,f=>f.schemeIdUri==="urn:mpeg:dash:utc:direct:2014"&&!_(f.value)),c=!_(u)&&!_(u.value)?na(u.value):void 0,l=!_(c)&&!isNaN(c)?c:void 0;if(!_(l)&&r!==!0)e.externalClockOffset=l;else if(d&&r!==!0){let f=kd(n);if(!_(f)&&f.length>0)return{type:"needs-clock",value:{url:f,continue:function(g){return g.success?(e.externalClockOffset=na(g.data),$n(n,e,t,!0)):(t.push(g.error),m.warn("DASH Parser: Error on fetching the clock ressource",g.error),$n(n,e,t,!0))}}}}}let s=[];for(let d=0;d<o.periods.length;d++){let{xlinkHref:u,xlinkActuate:c}=o.periods[d].attributes;!_(u)&&c==="onLoad"&&s.push({index:d,ressource:u})}return s.length===0?Uh(n,e,t,i):{type:"needs-xlinks",value:{xlinksUrls:s.map(({ressource:d})=>d),continue:function(u){if(u.length!==s.length)throw new Error("DASH parser: wrong number of loaded ressources.");for(let c=u.length-1;c>=0;c--){let l=s[c].index,{parsed:f,warnings:p,receivedTime:g,sendingTime:S,url:I}=u[c];p.length>0&&t.push(...p);for(let y of f)i.set(y,{receivedTime:g,sendingTime:S,url:I});o.periods.splice(l,1,...f)}return $n(n,e,t,r,i)}}}}function Uh(n,e,t,r){var P,M,O,U,H;let{children:i,attributes:o}=n,a=o.type==="dynamic",s=e.url!==void 0?[{url:e.url.substring(0,Ai(e.url))}]:[],d=Ct(s,i.baseURLs),u=Md(o,e.referenceDateTime),c=o.timeShiftBufferDepth,{externalClockOffset:l,unsafelyBaseOnPreviousManifest:f}=e,{externalClockOffset:p}=e,g=new Mi({availabilityStartTime:u,isDynamic:a,timeShiftBufferDepth:c,serverTimestampOffset:p}),S=new Ci;S.addReferences((P=i.contentProtections)!=null?P:[]);let I={availabilityStartTime:u,baseURLs:d,clockOffset:l,contentProtectionParser:S,duration:o.duration,isDynamic:a,manifestBoundsCalculator:g,manifestProfiles:n.attributes.profiles,receivedTime:e.manifestReceivedTime,timeShiftBufferDepth:c,unsafelyBaseOnPreviousManifest:f,xlinkInfos:r,xmlNamespaces:n.attributes.namespaces},y=Ud(i.periods,I);S.finalize();let T=o.duration,v,E,R=null,k;o.minimumUpdatePeriod!==void 0&&o.minimumUpdatePeriod>=0&&(v=o.minimumUpdatePeriod===0?B.getCurrent().DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:o.minimumUpdatePeriod);let{minimumSafePosition:A,maximumSafePosition:C,maximumUnsafePosition:x}=Cd(y),N=V();if(a){let q;C!==void 0?q=C:p===void 0?(m.warn("DASH Parser: use system clock to define maximum position"),q=Date.now()/1e3-u):q=(V()+p)/1e3-u;let G=g.getEstimatedLiveEdge();G===void 0&&(x!==void 0?G=x:G=q),k={isLinear:!0,maximumSafePosition:q,livePosition:G,time:N},E=A,R=c!=null?c:null,R!==null&&E!==void 0&&G-E>R&&(R=G-E)}else{E=A,E===void 0&&(E=(O=(M=y[0])==null?void 0:M.start)!=null?O:0);let q=T!=null?T:1/0;if(y[y.length-1]!==void 0){let G=y[y.length-1],K=(U=G.end)!=null?U:G.duration!==void 0?G.start+G.duration:void 0;K!==void 0&&K<q&&(q=K)}C!==void 0&&C<q&&(q=C),k={isLinear:!1,maximumSafePosition:q,livePosition:void 0,time:N}}let D=!a||n.attributes.minimumUpdatePeriod===void 0&&(((H=y[y.length-1])==null?void 0:H.end)!==void 0||n.attributes.duration!==void 0);return{type:"done",value:{parsed:{availabilityStartTime:u,clockOffset:e.externalClockOffset,isDynamic:a,isLive:a,isLastPeriodKnown:D,periods:y,publishTime:o.publishTime,suggestedPresentationDelay:o.suggestedPresentationDelay,transportType:"dash",timeBounds:{minimumSafePosition:E,timeshiftDepth:R,maximumTimeData:k},lifetime:v,uris:_(e.url)?i.locations:[e.url,...i.locations]},warnings:t}}}var If=$n;function Mt(n){let e=n.textContent,t=[];return e===null||e.length===0?[void 0,t]:[{value:e},t]}var Bh=/^P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,Fh=/([0-9]+)-([0-9]+)/;function He(n,e){return n==="true"?[!0,null]:n==="false"?[!1,null]:[!1,new et(`\`${e}\` property is not a boolean value but "${n}"`)]}function he(n,e){let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not an integer value but "${n}"`)]:[t,null]}function Ye(n,e){if(n==="INF")return[1/0,null];let t=parseFloat(n);return isNaN(t)?[null,new et(`\`${e}\` property is invalid: "${n}"`)]:[t,null]}function Bd(n,e){if(n==="true")return[!0,null];if(n==="false")return[!1,null];let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not a boolean nor an integer but "${n}"`)]:[t,null]}function oa(n,e){let t=Date.parse(n);return isNaN(t)?[null,new et(`\`${e}\` is in an invalid date format: "${n}"`)]:[new Date(Date.parse(n)).getTime()/1e3,null]}function mt(n,e){if(!w(n))return[0,new et(`\`${e}\` property is empty`)];let t=Bh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[parseFloat(w(t[2])?t[2]:"0")*365*24*60*60+parseFloat(w(t[4])?t[4]:"0")*30*24*60*60+parseFloat(w(t[6])?t[6]:"0")*24*60*60+parseFloat(w(t[8])?t[8]:"0")*60*60+parseFloat(w(t[10])?t[10]:"0")*60+parseFloat(w(t[12])?t[12]:"0"),null]}function vn(n,e){let t=Fh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[[+t[1],+t[2]],null]}function yf(n,e){try{return[ft(n),null]}catch(t){return[null,new et(`\`${e}\` is not a valid base64 string: "${n}"`)]}}function Qn(n,e){let t=/^(\d+)\/(\d+)$/.exec(n);return t!==null?[+t[1]/+t[2],null]:Ye(n,e)}function Be(n){let e,t;for(let r=0;r<n.attributes.length;r++){let i=n.attributes[r];switch(i.name){case"schemeIdUri":e=i.value;break;case"value":t=i.value;break}}return{schemeIdUri:e,value:t}}function Me(n,e){return function(t,{asKey:r,parser:i,dashName:o}){let[a,s]=i(t,o);s!==null&&(m.warn(s.message),e.push(s)),a!==null&&(n[r]=a)}}var et=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="MPDError"}};function Kh(n){let e=[],t=[];for(let r=0;r<n.length;r++)if(n[r].nodeType===Node.ELEMENT_NODE){let i=n[r];if(i.nodeName==="cenc:pssh"){let o=i.textContent;if(o!==null&&o.length>0){let[a,s]=yf(o,"cenc:pssh");s!==null&&(m.warn(s.message),e.push(s)),a!==null&&t.push(a)}}}return[{cencPssh:t},e]}function Vh(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"schemeIdUri":e.schemeIdUri=r.value;break;case"value":e.value=r.value;break;case"cenc:default_KID":e.keyId=je(r.value.replace(/-/g,""));break;case"ref":e.ref=r.value;break;case"refId":e.refId=r.value;break}}return e}function xt(n){let[e,t]=Kh(n.childNodes),r=Vh(n);return[{children:e,attributes:r},t]}function Fd(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"id":e.id=r.value;break;case"lang":e.language=r.value;break;case"contentType":e.contentType=r.value;break;case"par":e.par=r.value;break}}return e}function Kd(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"range":r(o.value,{asKey:"range",parser:vn,dashName:"range"});break;case"sourceURL":e.media=o.value;break}}return[e,t]}function wt(n){let e={},t=[],r=Me(e,t),i=n.childNodes;for(let o=0;o<i.length;o++)if(i[o].nodeType===Node.ELEMENT_NODE){let a=i[o];if(a.nodeName==="Initialization"){let[s,d]=Kd(a);e.initialization=s,t=t.concat(d)}}for(let o=0;o<n.attributes.length;o++){let a=n.attributes[o];switch(a.name){case"timescale":r(a.value,{asKey:"timescale",parser:he,dashName:"timescale"});break;case"presentationTimeOffset":r(a.value,{asKey:"presentationTimeOffset",parser:Ye,dashName:"presentationTimeOffset"});break;case"indexRange":r(a.value,{asKey:"indexRange",parser:vn,dashName:"indexRange"});break;case"indexRangeExact":r(a.value,{asKey:"indexRangeExact",parser:He,dashName:"indexRangeExact"});break;case"availabilityTimeOffset":r(a.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(a.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break;case"duration":r(a.value,{asKey:"duration",parser:he,dashName:"duration"});break;case"startNumber":r(a.value,{asKey:"startNumber",parser:he,dashName:"startNumber"});break;case"endNumber":r(a.value,{asKey:"endNumber",parser:he,dashName:"endNumber"});break}}return[e,t]}function Vd(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"media":e.media=o.value;break;case"indexRange":r(o.value,{asKey:"indexRange",parser:vn,dashName:"indexRange"});break;case"index":e.index=o.value;break;case"mediaRange":r(o.value,{asKey:"mediaRange",parser:vn,dashName:"mediaRange"});break}}return[e,t]}function xi(n){let[e,t]=wt(n),r=t,i=[],o=n.childNodes;for(let s=0;s<o.length;s++)if(o[s].nodeType===Node.ELEMENT_NODE){let d=o[s];if(d.nodeName==="SegmentURL"){let[u,c]=Vd(d);i.push(u),r=r.concat(c)}}return[Y(e,{list:i}),r]}function zd(n){let e=null;return function(){if(e===null){let t=n.getElementsByTagName("S");return e=t,t}return e}}function Rn(n){let[e,t]=wt(n),r=t,i;for(let s=0;s<n.childNodes.length;s++)if(n.childNodes[s].nodeType===Node.ELEMENT_NODE){let d=n.childNodes[s];d.nodeName==="SegmentTimeline"&&(i=zd(d))}let o=Y({},e,{duration:e.duration,timelineParser:i}),a=Me(o,r);for(let s=0;s<n.attributes.length;s++){let d=n.attributes[s];switch(d.nodeName){case"initialization":_(o.initialization)&&(o.initialization={media:d.value});break;case"index":o.index=d.value;break;case"availabilityTimeOffset":a(d.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":a(d.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break;case"media":o.media=d.value;break;case"bitstreamSwitching":a(d.value,{asKey:"bitstreamSwitching",parser:He,dashName:"bitstreamSwitching"});break}}return[o,r]}function zh(n){let e={baseURLs:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"BaseURL":let[a,s]=Mt(o);a!==void 0&&e.baseURLs.push(a),r=r.concat(s);break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(Be(o));break;case"SegmentBase":let[d,u]=wt(o);e.segmentBase=d,u.length>0&&(r=r.concat(u));break;case"SegmentList":let[c,l]=xi(o);r=r.concat(l),e.segmentList=c;break;case"SegmentTemplate":let[f,p]=Rn(o);r=r.concat(p),e.segmentTemplate=f;break;case"ContentProtection":let[g,S]=xt(o);S.length>0&&(r=r.concat(S)),g!==void 0&&t.push(g);break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[Be(o)]:e.supplementalProperties.push(Be(o));break}}return t.length>0&&(e.contentProtections=t),[e,r]}function Hh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"bandwidth":r(o.value,{asKey:"bitrate",parser:he,dashName:"bandwidth"});break;case"codecs":e.codecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:He,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Qn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:he,dashName:"height"});break;case"id":e.id=o.value;break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:Ye,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:Ye,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"qualityRanking":r(o.value,{asKey:"qualityRanking",parser:he,dashName:"qualityRanking"});break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:he,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break}}return e.bitrate===void 0&&t.push(new et("No bitrate found on a Representation")),[e,t]}function Sf(n){let[e,t]=zh(n.childNodes),[r,i]=Hh(n),o=t.concat(i);return[{children:e,attributes:r},o]}function Wh(n){let e={baseURLs:[],representations:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"Accessibility":e.accessibilities===void 0?e.accessibilities=[Be(o)]:e.accessibilities.push(Be(o));break;case"BaseURL":let[a,s]=Mt(o);a!==void 0&&e.baseURLs.push(a),s.length>0&&(r=r.concat(s));break;case"ContentComponent":e.contentComponent=Fd(o);break;case"EssentialProperty":_(e.essentialProperties)?e.essentialProperties=[Be(o)]:e.essentialProperties.push(Be(o));break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(Be(o));break;case"Label":let d=o.textContent;d!=null&&(e.label=d);break;case"Representation":let[u,c]=Sf(o);e.representations.push(u),c.length>0&&(r=r.concat(c));break;case"Role":_(e.roles)?e.roles=[Be(o)]:e.roles.push(Be(o));break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[Be(o)]:e.supplementalProperties.push(Be(o));break;case"SegmentBase":let[l,f]=wt(o);e.segmentBase=l,f.length>0&&(r=r.concat(f));break;case"SegmentList":let[p,g]=xi(o);e.segmentList=p,g.length>0&&(r=r.concat(g));break;case"SegmentTemplate":let[S,I]=Rn(o);e.segmentTemplate=S,I.length>0&&(r=r.concat(I));break;case"ContentProtection":let[y,T]=xt(o);T.length>0&&(r=r.concat(T)),y!==void 0&&t.push(y);break}}return t.length>0&&(e.contentProtections=t),[e,r]}function Gh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"group":r(o.value,{asKey:"group",parser:he,dashName:"group"});break;case"lang":e.language=o.value;break;case"contentType":e.contentType=o.value;break;case"par":e.par=o.value;break;case"minBandwidth":r(o.value,{asKey:"minBitrate",parser:he,dashName:"minBandwidth"});break;case"maxBandwidth":r(o.value,{asKey:"maxBitrate",parser:he,dashName:"maxBandwidth"});break;case"minWidth":r(o.value,{asKey:"minWidth",parser:he,dashName:"minWidth"});break;case"maxWidth":r(o.value,{asKey:"maxWidth",parser:he,dashName:"maxWidth"});break;case"minHeight":r(o.value,{asKey:"minHeight",parser:he,dashName:"minHeight"});break;case"maxHeight":r(o.value,{asKey:"maxHeight",parser:he,dashName:"maxHeight"});break;case"minFrameRate":r(o.value,{asKey:"minFrameRate",parser:Qn,dashName:"minFrameRate"});break;case"maxFrameRate":r(o.value,{asKey:"maxFrameRate",parser:Qn,dashName:"maxFrameRate"});break;case"selectionPriority":r(o.value,{asKey:"selectionPriority",parser:he,dashName:"selectionPriority"});break;case"segmentAlignment":r(o.value,{asKey:"segmentAlignment",parser:Bd,dashName:"segmentAlignment"});break;case"subsegmentAlignment":r(o.value,{asKey:"subsegmentAlignment",parser:Bd,dashName:"subsegmentAlignment"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:He,dashName:"bitstreamSwitching"});break;case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"codecs":e.codecs=o.value;break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:He,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Qn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:he,dashName:"height"});break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:Ye,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:Ye,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:he,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:Ye,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:He,dashName:"availabilityTimeComplete"});break}}return[e,t]}function bf(n){let e=n.childNodes,[t,r]=Wh(e),[i,o]=Gh(n),a=r.concat(o);return[{children:t,attributes:i},a]}function Hd(n){let e={children:{events:[]},attributes:{}},t=[],r=Me(e.attributes,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"schemeIdUri":e.attributes.schemeIdUri=o.value;break;case"timescale":r(o.value,{asKey:"timescale",parser:he,dashName:"timescale"});break;case"value":e.attributes.value=o.value;break}}for(let i=0;i<n.childNodes.length;i++)if(n.childNodes[i].nodeType===Node.ELEMENT_NODE){let o=n.childNodes[i];switch(o.nodeName){case"Event":let[a,s]=qh(o);e.children.events.push(a),s.length>0&&(t=t.concat(s));break}}return[e,t]}function qh(n){let e={eventStreamData:n},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"presentationTime":r(o.value,{asKey:"presentationTime",parser:he,dashName:"presentationTime"});break;case"duration":r(o.value,{asKey:"duration",parser:he,dashName:"duration"});break;case"id":e.id=o.value;break}}return[e,t]}function jh(n){let e=[],t=[],r,i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":let[u,c]=Mt(d);u!==void 0&&e.push(u),o=o.concat(c);break;case"AdaptationSet":let[l,f]=bf(d);t.push(l),o=o.concat(f);break;case"EventStream":let[p,g]=Hd(d);a.push(p),o=o.concat(g);break;case"SegmentTemplate":let[S,I]=Rn(d);r=S,I.length>0&&(o=o.concat(I));break;case"ContentProtection":let[y,T]=xt(d);T.length>0&&(o=o.concat(T)),y!==void 0&&i.push(y);break}}return[{baseURLs:e,adaptations:t,eventStreams:a,segmentTemplate:r,contentProtections:i},o]}function Yh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"start":r(o.value,{asKey:"start",parser:mt,dashName:"start"});break;case"duration":r(o.value,{asKey:"duration",parser:mt,dashName:"duration"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:He,dashName:"bitstreamSwitching"});break;case"xlink:href":e.xlinkHref=o.value;break;case"xlink:actuate":e.xlinkActuate=o.value;break}}return[e,t]}function aa(n){let[e,t]=jh(n.childNodes),[r,i]=Yh(n),o=t.concat(i);return[{children:e,attributes:r},o]}function $h(n){let e=[],t=[],r=[],i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":let[u,c]=Mt(d);u!==void 0&&e.push(u),a=a.concat(c);break;case"Location":t.push(d.textContent===null?"":d.textContent);break;case"Period":let[l,f]=aa(d);r.push(l),a=a.concat(f);break;case"UTCTiming":let p=Be(d);i.push(p);break;case"ContentProtection":let[g,S]=xt(d);S.length>0&&(a=a.concat(S)),g!==void 0&&o.push(g);break}}return[{baseURLs:e,locations:t,periods:r,utcTimings:i,contentProtections:o},a]}function Qh(n){let e={},t=[],r=Me(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"profiles":e.profiles=o.value;break;case"type":e.type=o.value;break;case"availabilityStartTime":r(o.value,{asKey:"availabilityStartTime",parser:oa,dashName:"availabilityStartTime"});break;case"availabilityEndTime":r(o.value,{asKey:"availabilityEndTime",parser:oa,dashName:"availabilityEndTime"});break;case"publishTime":r(o.value,{asKey:"publishTime",parser:oa,dashName:"publishTime"});break;case"mediaPresentationDuration":r(o.value,{asKey:"duration",parser:mt,dashName:"mediaPresentationDuration"});break;case"minimumUpdatePeriod":r(o.value,{asKey:"minimumUpdatePeriod",parser:mt,dashName:"minimumUpdatePeriod"});break;case"minBufferTime":r(o.value,{asKey:"minBufferTime",parser:mt,dashName:"minBufferTime"});break;case"timeShiftBufferDepth":r(o.value,{asKey:"timeShiftBufferDepth",parser:mt,dashName:"timeShiftBufferDepth"});break;case"suggestedPresentationDelay":r(o.value,{asKey:"suggestedPresentationDelay",parser:mt,dashName:"suggestedPresentationDelay"});break;case"maxSegmentDuration":r(o.value,{asKey:"maxSegmentDuration",parser:mt,dashName:"maxSegmentDuration"});break;case"maxSubsegmentDuration":r(o.value,{asKey:"maxSubsegmentDuration",parser:mt,dashName:"maxSubsegmentDuration"});break}}return[e,t]}function Tf(n){let[e,t]=$h(n.childNodes),[r,i]=Qh(n),o=t.concat(i);return[{children:e,attributes:r},o]}function Wd(n,e){let t=n.documentElement;if(_(t)||t.nodeName!=="MPD")throw new Error("DASH Parser: document root should be MPD");let[r,i]=Tf(t),o=If(r,e,i);return a(o);function a(s){if(s.type==="done")return s;if(s.type==="needs-clock")return{type:"needs-resources",value:{urls:[s.value.url],format:"string",continue(d){if(d.length!==1)throw new Error("DASH parser: wrong number of loaded ressources.");let u=s.value.continue(d[0].responseData);return a(u)}}};if(s.type==="needs-xlinks")return{type:"needs-resources",value:{urls:s.value.xlinksUrls,format:"string",continue(d){let u=[];for(let l=0;l<d.length;l++){let{responseData:f,receivedTime:p,sendingTime:g,url:S}=d[l];if(!f.success)throw f.error;let I="<root>"+f.data+"</root>",y=new DOMParser().parseFromString(I,"text/xml");if(_(y)||y.children.length===0)throw new Error("DASH parser: Invalid external ressources");let T=y.children[0].children,v=[],E=[];for(let R=0;R<T.length;R++)if(T[R].nodeType===Node.ELEMENT_NODE){let[k,A]=aa(T[R]);E.push(...A),v.push(k)}u.push({url:S,receivedTime:p,sendingTime:g,parsed:v,warnings:E})}let c=s.value.continue(u);return a(c)}}};Xe(s)}}var _f=Wd;function Gd(n,e){return(t,r,i)=>new Promise((o,a)=>{let s=Date.now()-V(),d=!1,f={reject:S=>{var v,E;if(d||i.isCancelled())return;d=!0,i.deregister(g);let I=S,y=(v=I==null?void 0:I.message)!=null?v:"Unknown error when fetching the Manifest through a custom manifestLoader.",T=new nt(y,(E=I==null?void 0:I.canRetry)!=null?E:!1,I==null?void 0:I.xhr);a(T)},resolve:S=>{if(d||i.isCancelled())return;d=!0,i.deregister(g);let I=S.receivingTime!==void 0?S.receivingTime-s:void 0,y=S.sendingTime!==void 0?S.sendingTime-s:void 0;o({responseData:S.data,size:S.size,requestDuration:S.duration,url:S.url,receivedTime:I,sendingTime:y})},fallback:()=>{d||i.isCancelled()||(d=!0,i.deregister(g),e(t,r,i).then(o,a))}},p=n({url:t,timeout:r.timeout},f);i.register(g);function g(S){d||(d=!0,typeof p=="function"&&p(),a(S))}})}function Xh(n){return function(t,r,i){if(t===void 0)throw new Error("Cannot perform HTTP(s) request. URL not known");switch(n){case"arraybuffer":return be({url:t,responseType:"arraybuffer",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"text":return be({url:t,responseType:"text",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"document":return be({url:t,responseType:"document",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});default:Xe(n)}}}function wi({customManifestLoader:n},e){let t=Xh(e);return typeof n!="function"?t:Gd(n,t)}function qd(n){let{referenceDateTime:e}=n,t=n.serverSyncInfos!==void 0?n.serverSyncInfos.serverTimestamp-n.serverSyncInfos.clientTime:void 0;return function(i,o,a,s,d){var T;let{responseData:u}=i,c=o.externalClockOffset,l=(T=i.url)!=null?T:o.originalUrl,f=t!=null?t:c,g={unsafelyBaseOnPreviousManifest:o.unsafeMode?o.previousManifest:null,url:l,referenceDateTime:e,externalClockOffset:f},S=ue.dashParsers;if(S.wasm===null||S.wasm.status==="uninitialized"||S.wasm.status==="failure")return m.debug("DASH: WASM MPD Parser not initialized. Running JS one."),I();{let v=nI(u);if(!rI(v))return m.info("DASH: MPD doesn't seem to be UTF-8-encoded. Running JS parser instead of the WASM one."),I();if(S.wasm.status==="initialized"){m.debug("DASH: Running WASM MPD Parser.");let E=S.wasm.runWasmParser(v,g);return y(E)}else return m.debug("DASH: Awaiting WASM initialization before parsing the MPD."),S.wasm.waitForInitialization().catch(()=>{}).then(()=>{if(S.wasm===null||S.wasm.status!=="initialized")return m.warn("DASH: WASM MPD parser initialization failed. Running JS parser instead"),I();m.debug("DASH: Running WASM MPD Parser.");let R=S.wasm.runWasmParser(v,g);return y(R)})}function I(){if(S.fastJs!==null){let v=eI(u),E=S.fastJs(v,g);return y(E)}else if(S.native!==null){let v=tI(u),E=S.native(v,g);return y(E)}else throw new Error("No MPD parser is imported")}function y(v){if(v.type==="done"){if(v.value.warnings.length>0&&a(v.value.warnings),s.isCancelled())return Promise.reject(s.cancellationError);let k=[];return{manifest:new wn(v.value.parsed,n,k),url:l,warnings:k}}let{value:E}=v,R=E.urls.map(k=>d(()=>{let A=B.getCurrent().DEFAULT_REQUEST_TIMEOUT,C=B.getCurrent().DEFAULT_CONNECTION_TIMEOUT;return E.format==="string"?be({url:k,responseType:"text",timeout:A,connectionTimeout:C,cancelSignal:s}):be({url:k,responseType:"arraybuffer",timeout:A,connectionTimeout:C,cancelSignal:s})}).then(A=>{if(E.format==="string"){if(typeof A.responseData!="string")throw new Error("External DASH resources should have been a string");return Y(A,{responseData:{success:!0,data:A.responseData}})}else{if(!(A.responseData instanceof ArrayBuffer))throw new Error("External DASH resources should have been ArrayBuffers");return Y(A,{responseData:{success:!0,data:A.responseData}})}},A=>{let C=xe(A,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"An unknown error occured when parsing ressources."});return Y({},{size:void 0,requestDuration:void 0,responseData:{success:!1,error:C}})}));return Promise.all(R).then(k=>E.format==="string"?(Zh(k),y(E.continue(k))):(Jh(k),y(E.continue(k))))}}}function Zh(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&typeof t.data=="string")&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function Jh(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&t.data instanceof ArrayBuffer)&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function eI(n){if(n instanceof ArrayBuffer)return we(new Uint8Array(n));if(typeof n=="string")return n;if(n instanceof Document)return n.documentElement.outerHTML;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function tI(n){if(n instanceof ArrayBuffer)return new DOMParser().parseFromString(we(new Uint8Array(n)),"text/xml");if(typeof n=="string")return new DOMParser().parseFromString(n,"text/xml");if(n instanceof Document)return n;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function nI(n){if(n instanceof ArrayBuffer)return n;if(typeof n=="string")return _e(n).buffer;if(n instanceof Document)return _e(n.documentElement.innerHTML).buffer;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function rI(n){let e=new DataView(n);return e.getUint16(0)===61371&&e.getUint8(2)===191?!0:!(e.getUint16(0)===65279||e.getUint16(0)===65534)}function We([n,e]){return e===1/0?`bytes=${n}-`:`bytes=${n}-${e}`}function pt(n,e){if(n==="audio"||n==="video")return e==="video/mp4"||e==="audio/mp4"?"mp4":e==="video/webm"||e==="audio/webm"?"webm":void 0;if(n==="text")return e==="application/mp4"?"mp4":void 0}function Zt(n,e){if(e){if(yt(n,1718909296)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `ftyp` box");if(yt(n,1836019574)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `moov` box")}else{if(yt(n,1836019558)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `moof` box");if(yt(n,1835295092)<0)throw new Ve("INTEGRITY_ERROR","Incomplete `mdat` box")}}function Oi(n){return(e,t,r,i,o)=>{return new Promise((s,d)=>{let u=new F,c=u.linkToSignal(i);u.signal.register(d),n(e,t,r,u.signal,Se(ce({},o),{onNewChunk(f){try{a(f),o.onNewChunk(f)}catch(p){l(),u.cancel(),d(p)}}})).then(f=>{if(l(),!u.isUsed()){if(f.resultType==="segment-loaded")try{a(f.resultData.responseData)}catch(p){d(p);return}s(f)}},f=>{l(),d(f)});function l(){u.signal.deregister(d),c()}});function a(s){!(s instanceof ArrayBuffer)&&!(s instanceof Uint8Array)||pt(t.type,t.mimeType)!=="mp4"||Zt(new Uint8Array(s),t.segment.isInit)}}}function Di(n,e){return n===null?null:e.url===null?n.baseUrl:Yn(n.baseUrl,e.url)}function Li(n,e,t,r,i){if(e.range===void 0)return be({url:n,responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(s=>({resultType:"segment-loaded",resultData:s}));if(e.indexRange===void 0)return be({url:n,headers:{Range:We(e.range)},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(s=>({resultType:"segment-loaded",resultData:s}));if(e.range[1]+1===e.indexRange[0])return be({url:n,headers:{Range:We([e.range[0],e.indexRange[1]])},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(s=>({resultType:"segment-loaded",resultData:s}));let o=be({url:n,headers:{Range:We(e.range)},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}),a=be({url:n,headers:{Range:We(e.indexRange)},responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress});return Promise.all([o,a]).then(([s,d])=>{let u=te(new Uint8Array(s.responseData),new Uint8Array(d.responseData)),c=Math.min(s.sendingTime,d.sendingTime),l=Math.max(s.receivedTime,d.receivedTime);return{resultType:"segment-loaded",resultData:{url:n,responseData:u,size:s.size+d.size,requestDuration:l-c,sendingTime:c,receivedTime:l}}})}function Ni(n,e,t,r,i){let{segment:o}=e,a=o.range!==void 0?{Range:We(o.range)}:void 0,s=null;function d(u){let c=new Uint8Array(u.chunk),l=s!==null?te(s,c):c,f=Ho(l),p=f[0];s=f[1],!(p!==null&&(p.forEach(g=>{r.onNewChunk(g)}),i.isCancelled()))&&(r.onProgress({duration:u.duration,size:u.size,totalSize:u.totalSize}),i.isCancelled())}return po({url:n,headers:a,onData:d,timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:i}).then(u=>({resultType:"chunk-complete",resultData:u}))}function Ef(n,e,t,r,i,o){if(e.segment.isInit)return Li(n,e.segment,r,o,i);let a=pt(e.type,e.mimeType);if(t&&(a==="mp4"||a===void 0)){if(yr())return Ni(n,e,r,i,o);_t("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}let{segment:s}=e;return be({url:n,responseType:"arraybuffer",headers:s.range!==void 0?{Range:We(s.range)}:void 0,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:o,onProgress:i.onProgress}).then(d=>({resultType:"segment-loaded",resultData:d}))}function jd({lowLatencyMode:n,segmentLoader:e,checkMediaSegmentIntegrity:t}){return t!==!0?r:Oi(r);function r(i,o,a,s,d){let u=Di(i,o.segment);return u===null?Promise.resolve({resultType:"segment-created",resultData:null}):n||e===void 0?Ef(u,o,n,a,d,s):new Promise((c,l)=>{let f=!1,y={reject:k=>{var N,D;if(f||s.isCancelled())return;f=!0,s.deregister(R);let A=k,C=(N=A==null?void 0:A.message)!=null?N:"Unknown error when fetching a DASH segment through a custom segmentLoader.",x=new nt(C,(D=A==null?void 0:A.canRetry)!=null?D:!1,A==null?void 0:A.xhr);l(x)},resolve:k=>{f||s.isCancelled()||(f=!0,s.deregister(R),c({resultType:"segment-loaded",resultData:{responseData:k.data,size:k.size,requestDuration:k.duration}}))},progress:k=>{f||s.isCancelled()||d.onProgress({duration:k.duration,size:k.size,totalSize:k.totalSize})},fallback:()=>{f||s.isCancelled()||(f=!0,s.deregister(R),Ef(u,o,n,a,d,s).then(c,l))}},T;o.segment.range!==void 0&&(T=[o.segment.range],o.segment.indexRange!==void 0&&T.push(o.segment.indexRange));let v={isInit:o.segment.isInit,timeout:a.timeout,byteRanges:T,trackType:o.type,url:u},E=e(v,y);s.register(R);function R(k){f||(f=!0,typeof E=="function"&&E(),l(k))}})}}var $d=408125543,vf=357149030,iI=2807729,oI=17545,aI=475249515,sI=187,dI=179,uI=183,lI=241;function Jt(n,e,t,[r,i]){let o=r;for(;o<i;){let a=fI(t,o);if(a===null)return null;let{value:s,length:d}=a,u=o+d,c=mI(t,u);if(c===null)return null;let{length:l,value:f}=c,p=u+l,g=p+f;if(s===n)return[p,g];if(e.length>0){for(let S=0;S<e.length;S++)if(s===e[S]){let I=e.slice(S+1,e.length);return Jt(n,I,t,[p,g])}}o=g}return null}function sa(n,e){let t=Jt(iI,[$d,vf],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return 1e9/Yd(n,t[0],r)}function cI(n,e){let t=Jt(oI,[$d,vf],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return r===4?pI(n,t[0]):r===8?gI(n,t[0]):null}function Qd(n,e){let t=Jt($d,[],n,[e,n.length]);if(t===null)return null;let[r,i]=t,o=sa(n,r);if(o===null)return null;let a=cI(n,r);if(a===null)return null;let s=Jt(aI,[],n,[r,i]);if(s===null)return null;let d=[],u=s[0];for(;u<s[1];){let l=Jt(sI,[],n,[u,s[1]]);if(l===null)break;let f=Jt(dI,[],n,[l[0],l[1]]);if(f===null)return null;let p=Yd(n,f[0],f[1]-f[0]),g=Jt(lI,[uI],n,[l[0],l[1]]);if(g===null)return null;let S=Yd(n,g[0],g[1]-g[0])+r;d.push({time:p,rangeStart:S}),u=l[1]}let c=[];for(let l=0;l<d.length;l++){let f=d[l];l===d.length-1?c.push({time:f.time,timescale:o,duration:l===0?a:a-f.time,range:[f.rangeStart,1/0]}):c.push({time:f.time,timescale:o,duration:d[l+1].time-f.time,range:[f.rangeStart,d[l+1].rangeStart-1]})}return c}function Rf(n,e){for(let t=1;t<=8;t++)if(n[e]>=Math.pow(2,8-t))return t}function fI(n,e){let t=Rf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function mI(n,e){let t=Rf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=(n[e]&(1<<8-t)-1)*Math.pow(2,(t-1)*8);for(let i=1;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function pI(n,e){return new DataView(n.buffer).getFloat32(e)}function gI(n,e){return new DataView(n.buffer).getFloat64(e)}function Yd(n,e,t){let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return r}function Ui(n,e,t,r){let i=Ls(n);if(i===void 0||r===void 0)return null;let o=t.timestampOffset!==void 0?i+t.timestampOffset*r:i,a=Zr(n);if(o<0&&(a!==void 0&&(a+=o),o=0),e||!t.complete)return a===void 0&&m.warn("DASH: Chunked segments should indicate a duration through their trun boxes"),{time:o/r,duration:a!==void 0?a/r:void 0};let s,d=t.duration*r,u=Math.min(r*.9,d/4);return a!==void 0&&Math.abs(a-d)<=u&&(s=a),{time:o/r,duration:s!==void 0?s/r:s}}function hI(n,e){if(n.length<=0)return!1;let t=n.length;for(let r=0;r<t;r++){let i=n[r],o=e,{messageData:a}=i,s=we(a),d=Date.parse(s);if(o===void 0||d===void 0||isNaN(d)||d>=o)return!0}return!1}function Xd(n,e){if(n.length===0)return;let{manifestRefreshEventsFromEMSGs:t,EMSGs:r}=n.reduce((a,s)=>(s.schemeIdUri==="urn:mpeg:dash:event:2012"&&s.value==="1"?(a.manifestRefreshEventsFromEMSGs===void 0&&(a.manifestRefreshEventsFromEMSGs=[]),a.manifestRefreshEventsFromEMSGs.push(s)):(a.EMSGs===void 0&&(a.EMSGs=[]),a.EMSGs.push(s)),a),{manifestRefreshEventsFromEMSGs:void 0,EMSGs:void 0}),i=r==null?void 0:r.map(a=>({type:"emsg",value:a})),o=e===void 0||t===void 0?!1:hI(t,e);return{inbandEvents:i,needsManifestRefresh:o}}function Zd({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var v,E;let{segment:o,periodStart:a,periodEnd:s}=r,{data:d,isChunked:u}=t,c=[a,s];if(d===null)return o.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:0,protectionData:[],appendWindow:c};let l=d instanceof Uint8Array?d:new Uint8Array(d),f=pt(r.type,r.mimeType),p=f==="mp4"||f===void 0,g=[];if(p){let R=Wo(l),k;o.isInit&&(k=(v=Gc(l))!=null?v:void 0),(R.length>0||k!==void 0)&&g.push({initDataType:"cenc",keyId:k,initData:R})}if(!o.isInit){let R=p?Ui(l,u,o,i):null,k=(E=o.timestampOffset)!=null?E:0;if(p){let A=Wc(l);if(A!==void 0){let C=A.filter(N=>o.privateInfos===void 0||o.privateInfos.isEMSGWhitelisted===void 0?!1:o.privateInfos.isEMSGWhitelisted(N)),x=Xd(C,r.manifestPublishTime);if(x!==void 0){let{needsManifestRefresh:N,inbandEvents:D}=x;return{segmentType:"media",chunkData:l,chunkSize:l.length,chunkInfos:R,chunkOffset:k,appendWindow:c,inbandEvents:D,protectionData:g,needsManifestRefresh:N}}}}return{segmentType:"media",chunkData:l,chunkSize:l.length,chunkInfos:R,chunkOffset:k,protectionData:g,appendWindow:c}}let{indexRange:S}=o,I;if(f==="webm")I=Qd(l,0);else if(p&&(I=Xr(l,Array.isArray(S)?S[0]:0),n===!0&&I!==null&&I.length>0)){let R=I[I.length-1];Array.isArray(R.range)&&(R.range[1]=1/0)}let y;p?y=Jr(l):f==="webm"&&(y=sa(l,0));let T=_(y)?void 0:y;return{segmentType:"init",initializationData:l,initializationDataSize:l.length,protectionData:g,initTimescale:T,segmentList:I!=null?I:void 0}}}function Jd({lowLatencyMode:n,checkMediaSegmentIntegrity:e}){return e!==!0?t:Oi(t);function t(r,i,o,a,s){let{segment:d}=i,{range:u}=d,c=Di(r,d);if(c===null)return Promise.resolve({resultType:"segment-created",resultData:null});if(d.isInit)return Li(c,d,o,a,s);let l=pt(i.type,i.mimeType),f=l==="mp4"||l===void 0;if(n&&f){if(yr())return Ni(c,i,o,s,a);_t("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}return f?be({url:c,responseType:"arraybuffer",headers:Array.isArray(u)?{Range:We(u)}:null,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}).then(p=>({resultType:"segment-loaded",resultData:p})):be({url:c,responseType:"text",headers:Array.isArray(u)?{Range:We(u)}:null,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}).then(p=>({resultType:"segment-loaded",resultData:p}))}}function II(n){let e=$r(n);return e===null?"":we(e)}function yI(n){if(n===void 0)throw new Error("Cannot parse subtitles: unknown format");switch(n.toLowerCase()){case"stpp":case"stpp.ttml.im1t":return"ttml";case"wvtt":return"vtt"}throw new Error(`The codec used for the subtitles "${n}" is not managed yet.`)}function SI(n,e){switch(e){case"application/ttml+xml":return"ttml";case"application/x-sami":case"application/smil":return"sami";case"text/vtt":return"vtt"}if(n!==void 0&&n.toLowerCase()==="srt")return"srt";throw new Error(`could not find a text-track parser for the type ${e!=null?e:""}`)}function kf({segment:n,language:e,codecs:t},r,i,o){if(n.isInit)return null;let a,s;i===null?o?(a=n.time,s=n.end):m.warn("Transport: Unavailable time data for current text track."):(a=i.time,i.duration!==void 0?s=a+i.duration:!o&&n.complete&&(s=a+n.duration));let d=yI(t);return{data:II(r),type:d,language:e,start:a,end:s}}function Pf(n,e,t){let{segment:r}=n;if(r.isInit)return null;let i,o;t?m.warn("Transport: Unavailable time data for current text track."):(i=r.time,r.complete&&(o=r.time+r.duration));let a=SI(n.codecs,n.mimeType);return{data:e,type:a,language:n.language,start:i,end:o}}function bI(n,e,t,r,i){var f;let{segment:o}=t,{isInit:a,indexRange:s}=o,d;if(typeof n=="string"?d=_e(n):n instanceof Uint8Array?d=n:d=new Uint8Array(n),a){let p=Xr(d,Array.isArray(s)?s[0]:0);if(i===!0&&p!==null&&p.length>0){let S=p[p.length-1];Array.isArray(S.range)&&(S.range[1]=1/0)}let g=Jr(d);return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:g,segmentList:p!=null?p:void 0}}let u=Ui(d,e,o,r),c=kf(t,d,u,e),l=(f=o.timestampOffset)!=null?f:0;return{segmentType:"media",chunkData:c,chunkSize:d.length,chunkInfos:u,chunkOffset:l,protectionData:[],appendWindow:[t.periodStart,t.periodEnd]}}function TI(n,e,t){let{periodStart:r,periodEnd:i,segment:o}=t,{timestampOffset:a=0}=o;if(o.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};let s,d;if(typeof n!="string"){let c=n instanceof Uint8Array?n:new Uint8Array(n);s=we(c),d=c.length}else s=n;return{segmentType:"media",chunkData:Pf(t,s,e),chunkSize:d,chunkInfos:null,chunkOffset:a,protectionData:[],appendWindow:[r,i]}}function eu({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var l;let{periodStart:o,periodEnd:a,segment:s}=r,{data:d,isChunked:u}=t;if(d===null)return s.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:(l=s.timestampOffset)!=null?l:0,protectionData:[],appendWindow:[o,a]};let c=pt(r.type,r.mimeType);if(c==="webm")throw new Error("Text tracks with a WEBM container are not yet handled.");return c==="mp4"?bI(d,u,r,i,n):TI(d,u,r)}}function Af(n){let e=wi({customManifestLoader:n.manifestLoader},_I()?"text":"arraybuffer"),t=qd(n),r=jd(n),i=Zd(n),o=Jd(n),a=eu(n);return{manifest:{loadManifest:e,parseManifest:t},audio:{loadSegment:r,parseSegment:i},video:{loadSegment:r,parseSegment:i},text:{loadSegment:o,parseSegment:a}}}function _I(){return ue.dashParsers.wasm!==null&&(ue.dashParsers.wasm.status==="initialized"||ue.dashParsers.wasm.status==="initializing")}var Cf=Af;function tu(n){n.transports.dash===void 0&&(n.transports.dash=Cf),n.dashParsers.native=_f,n.mainThreadMediaSourceInit=bn,n.codecSupportProber=Xo}var EI=typeof MediaSource=="function"&&MediaSource.canConstructInDedicatedWorker===!0,Mf=EI;var Bi=class extends Wn{constructor(e){super(),this._settings=e,this._initCanceller=new F}prepare(){}start(e,t){let r=this._initCanceller.signal,{keySystems:i,speed:o,url:a}=this._settings;Gn(e);let s=new W(null);s.finish();let d=gi(e,i,s,{onError:c=>this._onFatalError(c),onWarning:c=>this.trigger("warning",c),onBlackListProtectionData:Q,onKeyIdsCompatibilityUpdate:Q},r);Si(e,c=>this._onFatalError(c),r);let u=new Sn(t,null,o);u.addEventListener("stalled",c=>this.trigger("stalled",c)),u.addEventListener("unstalled",()=>this.trigger("unstalled",null)),u.addEventListener("warning",c=>this.trigger("warning",c)),r.register(()=>{u.destroy()}),u.start(),d.onUpdate((c,l)=>{c.initializationState.type!=="uninitialized"&&(l(),m.info("Setting URL to HTMLMediaElement",a),e.src=a,r.register(()=>{m.info("Init: Removing directfile src from media element",e.src),Gn(e)}),c.initializationState.type==="awaiting-media-link"?(c.initializationState.value.isMediaLinked.setValue(!0),d.onUpdate((f,p)=>{f.initializationState.type==="initialized"&&(p(),this._seekAndPlay(e,t))},{emitCurrentValue:!0,clearSignal:r})):(J(c.initializationState.type==="initialized"),this._seekAndPlay(e,t)))},{emitCurrentValue:!0,clearSignal:r})}updateContentUrls(e,t){throw new Error("Cannot update content URL of directfile contents")}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.cancel(),this.trigger("error",e)}_seekAndPlay(e,t){let r=this._initCanceller.signal,{autoPlay:i,startAt:o}=this._settings;pi({mediaElement:e,playbackObserver:t,startTime:()=>{m.debug("Init: Calculating initial time");let s=vI(e,o);return m.debug("Init: Initial time calculated:",s),s},mustAutoPlay:i,onWarning:s=>this.trigger("warning",s),isDirectfile:!0},r).autoPlayResult.then(()=>mi(t,e,!0,r).onUpdate((s,d)=>{s&&(d(),this.trigger("loaded",{getSegmentSinkMetrics:null}))},{emitCurrentValue:!0,clearSignal:r})).catch(s=>{r.isCancelled()||this._onFatalError(s)})}};function vI(n,e){if(_(e))return 0;if(_(e.position))if(_(e.wallClockTime)){if(!_(e.fromFirstPosition))return e.fromFirstPosition}else return e.wallClockTime;else return e.position;let t=n.duration;if(typeof e.fromLastPosition=="number")return _(t)||!isFinite(t)?(m.warn("startAt.fromLastPosition set but no known duration, beginning at 0."),0):Math.max(0,t+e.fromLastPosition);if(typeof e.fromLivePosition=="number"){let r=n.seekable.length>0?n.seekable.end(0):t;return _(r)?(m.warn("startAt.fromLivePosition set but no known live position, beginning at 0."),0):Math.max(0,r+e.fromLivePosition)}else if(!_(e.percentage)){if(_(t)||!isFinite(t))return m.warn("startAt.percentage set but no known duration, beginning at 0."),0;let{percentage:r}=e;if(r>=100)return t;if(r<=0)return 0;let i=+r/100;return t*i}return 0}function nu(n,e){for(let t=0;t<n.length;t++)(!or||t!==e)&&(n[t].enabled=!1);return e<0||e>=n.length?!1:(n[e].enabled=!0,!0)}function Xn(n,e){var t;if(e.length!==n.length)return!0;for(let r=0;r<e.length;r++)if(e[r].nativeTrack!==((t=n[r])==null?void 0:t.nativeTrack))return!0;return!1}function ru(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_audio_"+a+"_"+s.toString();t[a]=s+1;let u={language:o.language,id:d,normalized:Sr(o.language),audioDescription:o.kind==="descriptions"||o.kind==="description",representations:[]};e.push({track:u,nativeTrack:o})}return e}function iu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_text_"+a+"_"+s.toString();t[a]=s+1;let u=o.kind==="forced"?!0:void 0,c={language:o.language,forced:u,label:o.label,id:d,normalized:Sr(o.language),closedCaption:o.kind==="captions"};e.push({track:c,nativeTrack:o})}return e}function ou(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_video_"+a+"_"+s.toString();t[a]=s+1,e.push({track:{id:d,representations:[]},nativeTrack:o})}return e}var Fi=class extends ie{constructor(e){var t,r,i;super(),this._nativeAudioTracks=e.audioTracks,this._nativeVideoTracks=e.videoTracks,this._nativeTextTracks=e.textTracks,this._audioTracks=this._nativeAudioTracks!==void 0?ru(this._nativeAudioTracks):[],this._videoTracks=this._nativeVideoTracks!==void 0?ou(this._nativeVideoTracks):[],this._textTracks=this._nativeTextTracks!==void 0?iu(this._nativeTextTracks):[],this._lastEmittedNativeAudioTrack=(t=this._getCurrentAudioTrack())==null?void 0:t.nativeTrack,this._lastEmittedNativeVideoTrack=(r=this._getCurrentVideoTrack())==null?void 0:r.nativeTrack,this._lastEmittedNativeTextTrack=(i=this._getCurrentTextTrack())==null?void 0:i.nativeTrack,this._handleNativeTracksCallbacks()}setAudioTrackById(e){for(let t=0;t<this._audioTracks.length;t++){let{track:r,nativeTrack:i}=this._audioTracks[t];if(r.id===e){this._enableAudioTrackFromIndex(t),this._audioTrackLockedOn=i;return}}throw new Error("Audio track not found.")}disableTextTrack(){xf(this._textTracks),this._textTrackLockedOn=null}setTextTrackById(e){let t=!1;for(let r=0;r<this._textTracks.length;r++){let{track:i,nativeTrack:o}=this._textTracks[r];i.id===e?(o.mode="showing",t=!0,this._textTrackLockedOn=o):(o.mode==="showing"||o.mode==="hidden")&&(o.mode="disabled")}if(!t)throw new Error("Text track not found.")}disableVideoTrack(){wf(this._videoTracks),this._videoTrackLockedOn=null}setVideoTrackById(e){for(let t=0;t<this._videoTracks.length;t++){let{track:r,nativeTrack:i}=this._videoTracks[t];if(r.id===e){i.selected=!0,this._videoTrackLockedOn=i;return}}throw new Error("Video track not found.")}getChosenAudioTrack(){let e=this._getCurrentAudioTrack();return _(e)?e:e.track}getChosenTextTrack(){let e=this._getCurrentTextTrack();return _(e)?e:e.track}getChosenVideoTrack(){let e=this._getCurrentVideoTrack();return _(e)?e:e.track}getAvailableAudioTracks(){return this._audioTracks.map(({track:e,nativeTrack:t})=>({id:e.id,language:e.language,normalized:e.normalized,audioDescription:e.audioDescription,active:t.enabled,representations:e.representations}))}getAvailableTextTracks(){return this._textTracks.map(({track:e,nativeTrack:t})=>({id:e.id,label:e.label,forced:e.forced,language:e.language,normalized:e.normalized,closedCaption:e.closedCaption,active:t.mode==="showing"}))}getAvailableVideoTracks(){return this._videoTracks.map(({track:e,nativeTrack:t})=>({id:e.id,representations:e.representations,active:t.selected}))}dispose(){this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onchange=null,this._nativeVideoTracks.onaddtrack=null,this._nativeVideoTracks.onremovetrack=null),this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onchange=null,this._nativeAudioTracks.onaddtrack=null,this._nativeAudioTracks.onremovetrack=null),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onchange=null,this._nativeTextTracks.onaddtrack=null,this._nativeTextTracks.onremovetrack=null),this.removeEventListener()}_getCurrentAudioTrack(){if(this._nativeAudioTracks!==void 0){for(let e=0;e<this._audioTracks.length;e++){let t=this._audioTracks[e];if(t.nativeTrack.enabled)return t}return null}}_getCurrentVideoTrack(){if(this._nativeVideoTracks!==void 0){for(let e=0;e<this._videoTracks.length;e++){let t=this._videoTracks[e];if(t.nativeTrack.selected)return t}return null}}_getCurrentTextTrack(){if(this._nativeTextTracks!==void 0){for(let e=0;e<this._textTracks.length;e++){let t=this._textTracks[e];if(t.nativeTrack.mode==="showing")return t}return null}}_setPreviouslyLockedAudioTrack(){if(this._audioTrackLockedOn!==void 0)if(this._audioTrackLockedOn===null)for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];t.enabled=!1}else for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];if(t===this._audioTrackLockedOn){this._enableAudioTrackFromIndex(e);return}}}_setPreviouslyLockedTextTrack(){if(this._textTrackLockedOn!==void 0)if(this._textTrackLockedOn===null){xf(this._textTracks);return}else for(let e=0;e<this._textTracks.length;e++){let{nativeTrack:t}=this._textTracks[e];if(t===this._textTrackLockedOn){RI(this._textTracks,t),t.mode!=="showing"&&(t.mode="showing");return}}}_setPreviouslyLockedVideoTrack(){if(this._videoTrackLockedOn!==void 0)if(this._videoTrackLockedOn===null){wf(this._videoTracks);return}else for(let e=0;e<this._videoTracks.length;e++){let{nativeTrack:t}=this._videoTracks[e];if(t===this._videoTrackLockedOn){t.selected=!0;return}}}_handleNativeTracksCallbacks(){this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onaddtrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=ru(this._nativeAudioTracks);if(Xn(this._audioTracks,r)){this._audioTracks=r,this._setPreviouslyLockedAudioTrack(),this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onremovetrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=ru(this._nativeAudioTracks);if(Xn(this._audioTracks,r)){this._audioTracks=r,this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onchange=()=>{if(this._audioTracks!==void 0)for(let e=0;e<this._audioTracks.length;e++){let{track:t,nativeTrack:r}=this._audioTracks[e];if(r.enabled){r!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",t),this._lastEmittedNativeAudioTrack=r);return}}this._lastEmittedNativeAudioTrack!==null&&(this.trigger("audioTrackChange",null),this._lastEmittedNativeAudioTrack=null)}),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onaddtrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=iu(this._nativeTextTracks);if(Xn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onremovetrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=iu(this._nativeTextTracks);if(Xn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onchange=()=>{if(this._textTracks!==void 0)for(let e=0;e<this._textTracks.length;e++){let{track:t,nativeTrack:r}=this._textTracks[e];if(r.mode==="showing"){r!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",t),this._lastEmittedNativeTextTrack=r);return}}this._lastEmittedNativeTextTrack!==null&&(this.trigger("textTrackChange",null),this._lastEmittedNativeTextTrack=null)}),this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onaddtrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=ou(this._nativeVideoTracks);if(Xn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onremovetrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=ou(this._nativeVideoTracks);if(Xn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onchange=()=>{if(this._videoTracks!==void 0)for(let e=0;e<this._videoTracks.length;e++){let{track:t,nativeTrack:r}=this._videoTracks[e];if(r.selected){r!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",t),this._lastEmittedNativeVideoTrack=r);return}}this._lastEmittedNativeVideoTrack!==null&&(this.trigger("videoTrackChange",null),this._lastEmittedNativeVideoTrack=null)})}_enableAudioTrackFromIndex(e){nu(this._audioTracks.map(({nativeTrack:t})=>t),e)}};function xf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.mode="disabled"}}function RI(n,e){for(let t=0;t<n.length;t++){let{nativeTrack:r}=n[t];r!==e&&(r.mode==="showing"||r.mode==="hidden")&&(r.mode="disabled")}}function wf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.selected=!1}}function au(n){n.directfile={initDirectFile:Bi,mediaElementTracksStore:Fi}}function su(n){n.decrypt=tf}var Of=re.ResizeObserver;function du(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o=new W({height:r,width:i},t),a=r,s=i;if(Of!==void 0){let d=new Of(u=>{if(u.length===0){m.error("Compat: Resized but no observed element.");return}let c=u[0],{height:l,width:f}=c.contentRect;(l!==a||f!==s)&&(a=l,s=f,o.setValue({height:l,width:f}))});d.observe(n),t.register(()=>{d.disconnect()})}else{let d=setInterval(()=>{let{height:u,width:c}=n.getBoundingClientRect();(u!==a||c!==s)&&(a=u,s=c,o.setValue({height:u,width:c}))},e);t.register(()=>{clearInterval(d)})}return o}var kn=class{constructor(){this._ranges=[],this.length=0}insert(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time")),Vt(this._ranges,{start:e,end:t}),this.length=this._ranges.length}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time"));let r=[];e>0&&r.push({start:0,end:e}),t<1/0&&r.push({start:t,end:1/0}),this._ranges=Ul(this._ranges,r),this.length=this._ranges.length}start(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].start}end(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].end}};function uu(n,e,t,r){m.debug("HTSB: Finding parser for html text tracks:",n);let i=ue.htmlTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("HTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("HTTB: Parsed successfully!",o.length),o}function Ot(n,e,t=.2){return Math.abs(n-e)<=Math.min(t,.2)}var kI=.05;function Df(n,e){let t=n.end-n.start,r=e.end-e.start,i=Math.abs(n.start-e.start),o=Math.min(t,r,.2);return i/o<=kI}function Ki(n,e){for(let t=n.length-1;t>=0;t--)if(n[t].start<e)return n.slice(0,t+1);return[]}function Zn(n,e){for(let t=0;t<n.length;t++)if(n[t].end>e)return n.slice(t,n.length);return[]}function lu(n,e,t){let r=Math.max(n.start,e),i=Ki(n.cues,e),o={start:n.start,end:r,cues:i},a=Math.min(t,n.end),s=Zn(n.cues,t),d={start:a,end:n.end,cues:s};return[o,d]}var Lf=.001,PI=5,Vi=class{constructor(){this._cuesBuffer=[]}isEmpty(){return this._cuesBuffer.length===0}get(e){let t=this._cuesBuffer,r=[];for(let i=t.length-1;i>=0;i--){let o=t[i];if(e<o.end&&e>=o.start){let a=o.cues;for(let s of a)e>=s.start&&e<s.end&&r.push(s.element);if(r.length===0&&a.length>0)for(let s of a)(Ot(e,s.start,Lf)||Ot(e,s.end,Lf))&&r.push(s.element);return r}}return[]}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0),J(t>=0),J(t>e));let r=Math.max(e,t),i=this._cuesBuffer;for(let o=0;o<i.length;o++)if(i[o].end>e){let a=i[o];if(a.start>=r)return;if(a.end>=r){if(e<=a.start)a.cues=Zn(a.cues,r),a.start=r;else{let[s,d]=lu(a,e,r);this._cuesBuffer[o]=s,i.splice(o+1,0,d)}return}a.start>=e?(i.splice(o,1),o--):(a.cues=Ki(a.cues,e),a.end=Math.max(e,a.start))}}insert(e,t,r){let i=this._cuesBuffer,o={start:t,end:r,cues:e},a=Math.abs(t-r)/PI;function s(d){let u=i[d];u===void 0||Ot(o.end,u.end,a)?i[d]=o:(u.start>=o.end||(u.cues=Zn(u.cues,o.end),u.start=o.end),i.splice(d,0,o))}for(let d=0;d<i.length;d++){let u=i[d];if(t<u.end){if(Df(o,u)){if(Ot(r,u.end,a)){i[d]=o;return}else if(r<u.end){u.cues=Zn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}else if(t<u.start){if(r<u.start){i.splice(d,0,o);return}else if(Ot(r,u.start,a)){u.start=r,i.splice(d,0,o);return}else if(Ot(r,u.end,a)){i.splice(d,1,o);return}else if(r<u.end){u.cues=Zn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}if(Ot(u.end,r,a)){u.cues=Ki(u.cues,t),u.end=t,i.splice(d+1,0,o);return}else if(u.end>r){let[c,l]=lu(u,t,r);this._cuesBuffer[d]=c,i.splice(d+1,0,o),i.splice(d+2,0,l);return}else{u.cues=Ki(u.cues,t),u.end=t;let c=d+1;for(u=i[c];u!==void 0&&r>u.end;)i.splice(c,1),u=i[c];s(c);return}}}if(i.length){let d=i[i.length-1];Ot(d.end,t,a)&&(d.end=t)}i.push(o)}};function cu(n,e,t,r){let i=[e/t.columns,n/t.rows],o=r.getElementsByClassName("proportional-style");for(let a=0;a<o.length;a++){let s=o[a];if(s instanceof HTMLElement){let d=s.getAttribute("data-proportional-font-size");d!==null&&!isNaN(+d)&&(s.style.fontSize=String(+d*i[1])+"px");let u=s.getAttribute("data-proportional-width");u!==null&&!isNaN(+u)&&(s.style.width=String(+u*i[0])+"px");let c=s.getAttribute("data-proportional-height");c!==null&&!isNaN(+c)&&(s.style.height=String(+c*i[1])+"px");let l=s.getAttribute("data-proportional-line-height");l!==null&&!isNaN(+l)&&(s.style.lineHeight=String(+l*i[1])+"px");let f=s.getAttribute("data-proportional-left");f!==null&&!isNaN(+f)&&(s.style.left=String(+f*i[0])+"px");let p=s.getAttribute("data-proportional-top");p!==null&&!isNaN(+p)&&(s.style.top=String(+p*i[1])+"px");let g=s.getAttribute("data-proportional-padding-top");g!==null&&!isNaN(+g)&&(s.style.paddingTop=String(+g*i[1])+"px");let S=s.getAttribute("data-proportional-padding-bottom");S!==null&&!isNaN(+S)&&(s.style.paddingBottom=String(+S*i[1])+"px");let I=s.getAttribute("data-proportional-padding-left");I!==null&&!isNaN(+I)&&(s.style.paddingLeft=String(+I*i[0])+"px");let y=s.getAttribute("data-proportional-padding-right");y!==null&&!isNaN(+y)&&(s.style.paddingRight=String(+y*i[0])+"px")}}return o.length>0}function Nf(n,e){try{n.removeChild(e)}catch(t){m.warn("HTD: Can't remove text track: not in the element.")}}function AI(n){let e=n.getAttribute("data-resolution-rows"),t=n.getAttribute("data-resolution-columns");if(e===null||t===null)return null;let r=parseInt(e,10),i=parseInt(t,10);return r===null||i===null?null:{rows:r,columns:i}}var zi=class{constructor(e,t){m.debug("HTD: Creating HTMLTextDisplayer"),this._buffered=new kn,this._videoElement=e,this._textTrackElement=t,this._sizeUpdateCanceller=new F,this._subtitlesIntervalCanceller=new F,this._buffer=new Vi,this._currentCues=[],this._isAutoRefreshing=!1}pushTextData(e){var S,I;m.debug("HTD: Appending new html text tracks");let{timestampOffset:t,appendWindow:r,chunk:i}=e;if(i===null)return Pe(this._buffered);let{start:o,end:a,data:s,type:d,language:u}=i,c=(S=r[0])!=null?S:0,l=(I=r[1])!=null?I:1/0,f=uu(d,s,t,u);if(c!==0&&l!==1/0){let y=0;for(;y<f.length&&f[y].end<=c;)y++;for(f.splice(0,y),y=0;y<f.length&&f[y].start<c;)f[y].start=c,y++;for(y=f.length-1;y>=0&&f[y].start>=l;)y--;for(f.splice(y,f.length),y=f.length-1;y>=0&&f[y].end>l;)f[y].end=l,y--}let p;if(o!==void 0)p=Math.max(c,o);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("HTD: No start time given. Guessing from cues."),p=f[0].start}let g;if(a!==void 0)g=Math.min(l,a);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("HTD: No end time given. Guessing from cues."),g=f[f.length-1].end}return g<=p?(m.warn("HTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered)):(this._buffer.insert(f,p,g),this._buffered.insert(p,g),!this._isAutoRefreshing&&!this._buffer.isEmpty()&&this.autoRefreshSubtitles(this._subtitlesIntervalCanceller.signal),Pe(this._buffered))}removeBuffer(e,t){return m.debug("HTD: Removing html text track data",e,t),this._buffer.remove(e,t),this._buffered.remove(e,t),this._isAutoRefreshing&&this._buffer.isEmpty()&&(this.refreshSubtitles(),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel(),this._subtitlesIntervalCanceller=new F),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("HTD: Resetting HTMLTextDisplayer"),this.stop(),this._subtitlesIntervalCanceller=new F}stop(){this._subtitlesIntervalCanceller.isUsed()||(m.debug("HTD: Stopping HTMLTextDisplayer"),this._disableCurrentCues(),this._buffer.remove(0,1/0),this._buffered.remove(0,1/0),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel())}_disableCurrentCues(){if(this._sizeUpdateCanceller.cancel(),this._currentCues.length>0){for(let e of this._currentCues)Nf(this._textTrackElement,e.element);this._currentCues=[]}}_displayCues(e){if(this._currentCues.length===e.length&&this._currentCues.every((i,o)=>i.element===e[o]))return;this._sizeUpdateCanceller.cancel();for(let i of this._currentCues)Nf(this._textTrackElement,i.element);this._currentCues=[];for(let i of e){let o=AI(i);this._currentCues.push({element:i,resolution:o}),this._textTrackElement.appendChild(i)}let r=this._currentCues.filter(i=>i.resolution!==null);if(r.length>0){this._sizeUpdateCanceller=new F,this._sizeUpdateCanceller.linkToSignal(this._subtitlesIntervalCanceller.signal);let{TEXT_TRACK_SIZE_CHECKS_INTERVAL:i}=B.getCurrent();du(this._textTrackElement,i,this._sizeUpdateCanceller.signal).onUpdate(({height:a,width:s})=>{for(let d of r){let{resolution:u,element:c}=d;cu(a,s,u,c)}},{clearSignal:this._sizeUpdateCanceller.signal,emitCurrentValue:!0})}}autoRefreshSubtitles(e){if(this._isAutoRefreshing||e.isCancelled())return;let t=null,{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:r}=B.getCurrent(),i=()=>{this._isAutoRefreshing=!1,t!==null&&(t.cancel(),t=null)},o=()=>{i(),this._isAutoRefreshing=!0,t=new F,t.linkToSignal(e);let a=setInterval(()=>this.refreshSubtitles(),r);t.signal.register(()=>{clearInterval(a)}),this.refreshSubtitles()};Cc(this._videoElement,()=>{i(),this._disableCurrentCues()},e),Mc(this._videoElement,o,e),xc(this._videoElement,o,e),o()}refreshSubtitles(){let{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:e}=B.getCurrent(),t;this._videoElement.paused||this._videoElement.playbackRate<=0?t=this._videoElement.currentTime:t=Math.max(this._videoElement.currentTime+e/1e3/2,0);let r=this._buffer.get(t);r.length===0?this._disableCurrentCues():this._displayCues(r)}};h.CURRENT_ENV===h.DEV&&(CI=function(e){function t(r){}});var CI;var en=zi;var MI=/&#([0-9]+);/g,xI=/<br>/gi,wI=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,OI=/\s*<p (?:class=([^>]+))?>(.*)/i,DI=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function LI(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;r!==null;){let i=r[1],o=UI(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function NI(n){let t=/p\s*{([^}]*)}/gi.exec(n);return t===null?"":t[1]}function UI(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function BI(n){return n.replace(MI,(e,t)=>String.fromCharCode(Number(t)))}function FI(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=wI.exec(n),s=Array.isArray(a)?a[1]:"",d,u;i.exec(n);let c=LI(s),l=NI(s),f;if(w(t)&&(f=c[t],f===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let g=n.slice(d.index,u.index),S=DI.exec(g);if(!Array.isArray(S))throw new Error("parse error (sync time attribute)");let I=+S[1];if(isNaN(I))throw new Error("parse error (sync time attribute NaN)");p(g.split(`
5
- `),I/1e3)}return o;function p(g,S){let I=g.length;for(;--I>=0;){let y=OI.exec(g[I]);if(!Array.isArray(y))continue;let[,T,v]=y;if(f===T)if(v==="&nbsp;")o[o.length-1].end=S;else{let E=document.createElement("DIV");E.className="rxp-texttrack-region";let R=document.createElement("DIV");R.className="rxp-texttrack-div",R.style.position="absolute",R.style.bottom="0",R.style.width="100%",R.style.color="#fff",R.style.textShadow="-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000";let k=document.createElement("div");k.className="rxp-texttrack-p",w(l)&&(k.style.cssText=l);let A=v.split(xI);for(let C=0;C<A.length;C++){C!==0&&k.appendChild(document.createElement("BR"));let x=document.createElement("SPAN");x.className="rxp-texttrack-span",x.textContent=BI(A[C]),k.appendChild(x)}R.appendChild(k),E.appendChild(R),o.push({element:E,start:S+e,end:-1})}}}}var Uf=FI;function fu(n){n.htmlTextTracksParsers.sami=Uf,n.htmlTextDisplayer=en}function mu(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function Hi(n){let e=[];for(let t=0;t<n.length;t++)if(w(n[t])){let r=mu(n,t),i=n.slice(t,r);i.length>0&&(i.length===1?i[0].indexOf("-->")>=0&&e.push(i):(i[1].indexOf("-->")>=0||i[0].indexOf("-->")>=0)&&e.push(i)),t=r}return e}function da(n){let e=n.split(":");if(w(e[2])){let t=parseInt(e[0],10),r=parseInt(e[1],10),i=parseFloat(e[2].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function Wi(n,e){if(n.length===0)return null;let t,r,i=[];if(w(n[1])&&n[1].indexOf("-->")!==-1&&([t,r]=n[1].split("-->").map(s=>s.trim()),i=n.slice(2,n.length)),(!w(t)||!w(r))&&([t,r]=n[0].split("-->").map(s=>s.trim()),i=n.slice(1,n.length)),!w(t)||!w(r))return null;let o=da(t),a=da(r);return o===void 0||a===void 0?null:{start:o+e,end:a+e,payload:i}}function pu(n,e){let t=n.split(/\r\n|\n|\r/),r=Hi(t),i=[];for(let o=0;o<r.length;o++){let a=Wi(r[o],e);if(a!==null){let s=KI(a);s!==null&&i.push(s)}}return i}function KI(n){let{start:e,end:t,payload:r}=n,i=document.createElement("div");i.className="rxp-texttrack-p",i.style.fontSize="28px",i.style.position="absolute",i.style.bottom="5%",i.style.width="100%",i.style.textAlign="center",i.style.color="#fff",i.style.textShadow="-1px -1px 2px #000,1px -1px 2px #000,-1px 1px 2px #000,1px 1px 2px #000";for(let o=0;o<r.length;o++){o!==0&&i.appendChild(document.createElement("br"));let a=VI(r[o]);i.appendChild(a)}return{start:e,end:t,element:i}}function VI(n){let e=document.createElement("div");e.innerHTML=n;let t=function(r){let i=r.childNodes,o=document.createElement("span");o.className="rxp-texttrack-span";for(let a=0;a<i.length;a++){let s=i[a];if(s.nodeName==="#text"){let d=s.wholeText.split(`
6
- `);for(let u=0;u<d.length;u++)if(u!==0&&o.appendChild(document.createElement("br")),d[u].length>0){let c=document.createTextNode(d[u]);o.appendChild(c)}}else if(s.nodeName==="B"){let d=t(s);d.style.fontWeight="bold",o.appendChild(d)}else if(s.nodeName==="I"){let d=t(s);d.style.fontStyle="italic",o.appendChild(d)}else if(s.nodeName==="U"){let d=t(s);d.style.textDecoration="underline",o.appendChild(d)}else if(zI(s)&&typeof s.color=="string"){let d=t(s);d.style.color=s.color,o.appendChild(d)}else{let d=t(s);o.appendChild(d)}}return o};return t(e)}function zI(n){return n.nodeName==="FONT"&&"color"in n}function gu(n){n.htmlTextTracksParsers.srt=pu,n.htmlTextDisplayer=en}var HI=/(\d+) (\d+)/;function hu(n){let e=n.getAttribute("ttp:frameRate"),t=n.getAttribute("ttp:subFramRate"),r=n.getAttribute("ttp:tickRate"),i=n.getAttribute("ttp:frameRateMultiplier"),o=n.getAttribute("xml:space"),a=n.getAttribute("ttp:cellResolution"),s={columns:32,rows:15};if(a!==null){let S=HI.exec(a);if(S===null||S.length<3)m.warn("TTML Parser: Invalid cellResolution");else{let I=parseInt(S[1],10),y=parseInt(S[2],10);isNaN(I)||isNaN(y)?m.warn("TTML Parser: Invalid cellResolution"):s={columns:I,rows:y}}}if(w(o)&&o!=="default"&&o!=="preserve")throw new Error("Invalid spacing style");let d=Number(e);(isNaN(d)||d<=0)&&(d=30);let u=Number(t);(isNaN(u)||u<=0)&&(u=1);let c=Number(r);(isNaN(c)||c<=0)&&(c=void 0);let l=d,f=u!=null?u:1,p=o!=null?o:"default",g=c!=null?c:d*u;if(i!==null){let S=/^(\d+) (\d+)$/g.exec(i);if(S!==null){let I=Number(S[1]),y=Number(S[2]),T=I/y;l=d*T}}return{cellResolution:s,tickRate:g,frameRate:l,subFrameRate:f,spaceStyle:p}}function Pn(n,e,t,r){let i={},o=n.slice();for(let a=0;a<=e.length-1;a++){let s=e[a];if(s!==void 0){let d,u;if(s.nodeType===Node.ELEMENT_NODE){let c=s;for(let l=0;l<=c.attributes.length-1;l++){let f=c.attributes[l],p=f.name;if(p==="style")d=f.value;else if(p==="region")u=f.value;else{let g=p.substring(4);if($(o,g)&&(i[g]=f.value,o.splice(l,1),o.length===0))return i}}}if(w(d)){let c=X(t,l=>l.id===d);if(c!==void 0)for(let l=0;l<=o.length-1;l++){let f=o[l];if(!w(i[f])&&w(c.style[f])){if(i[f]=c.style[f],o.splice(l,1),o.length===0)return i;l--}}}if(w(u)){let c=X(r,l=>l.id===u);if(c!==void 0)for(let l=0;l<=o.length-1;l++){let f=o[l];if(!w(i[f])&&w(c.style[f])){if(i[f]=c.style[f],o.splice(l,1),o.length===0)return i;l--}}}}}return i}function Iu(n){if(n.nodeType!==Node.ELEMENT_NODE)return{};let e=n,t={};for(let r=0;r<=e.attributes.length-1;r++){let i=e.attributes[r];if(qe(i.name,"tts")){let o=i.name.substring(4);t[o]=i.value}}return t}function yu(n){let e=[];function t(r,i){e.push(i);for(let o=0;o<r.extendsStyles.length;o++){let a=r.extendsStyles[o],s=pe(n,d=>d.id===a);if(s<0)m.warn("TTML Parser: unknown style inheritance: "+a);else{let d=n[s];$(e,s)?m.warn("TTML Parser: infinite style inheritance loop avoided"):t(d,s),r.style=Y({},d.style,r.style)}}r.extendsStyles.length=0}for(let r=0;r<n.length;r++)t(n[r],r),e.length=0}function Bf(n,e){if(!(n.parentNode instanceof Element))return[];function t(r){let i=[];r.tagName.toLowerCase()===e.toLowerCase()&&i.push(r);let o=r.parentNode;return o instanceof Element&&i.push(...t(o)),i}return t(n.parentNode)}function ua(n){let e=Bf(n,"div");if(e.length===0){let t=Bf(n,"tt:div");t.length>0&&(e=t)}return e}function Ff(n){let e=n.getElementsByTagName("body");if(e.length>0)return e[0];let t=n.getElementsByTagName("tt:body");return t.length>0?t[0]:null}function Kf(n){let e=n.getElementsByTagName("style");if(e.length>0)return e;let t=n.getElementsByTagName("tt:style");return t.length>0?t:e}function Vf(n){let e=n.getElementsByTagName("region");if(e.length>0)return e;let t=n.getElementsByTagName("tt:region");return t.length>0?t:e}function zf(n){let e=n.getElementsByTagName("p");if(e.length>0)return e;let t=n.getElementsByTagName("tt:p");return t.length>0?t:e}function la(n){return n.nodeName==="br"||n.nodeName==="tt:br"}function ca(n){return n.nodeName==="span"||n.nodeName==="tt:span"}var Hf=["align","backgroundColor","color","direction","display","displayAlign","extent","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","opacity","origin","overflow","padding","textAlign","textDecoration","textOutline","unicodeBidi","visibility","wrapOption","writingMode"];function Gi(n,e){let t=[],r=new DOMParser().parseFromString(n,"text/xml");if(r!=null){let o=r.getElementsByTagName("tt")[0];if(o===void 0&&(o=r.getElementsByTagNameNS("*","tt")[0],o===void 0))throw new Error("invalid XML");let a=Ff(o),s=Kf(o),d=Vf(o),u=zf(o),c=hu(o),l=[];for(let I=0;I<=s.length-1;I++){let y=s[I];if(y instanceof Element){let T=y.getAttribute("xml:id");if(T!==null){let v=y.getAttribute("style"),E=v===null?[]:v.split(" ");l.push({id:T,style:Iu(y),extendsStyles:E})}}}yu(l);let f=[];for(let I=0;I<=d.length-1;I++){let y=d[I];if(y instanceof Element){let T=y.getAttribute("xml:id");if(T!==null){let v=Iu(y),E=y.getAttribute("style");if(w(E)){let R=X(l,k=>k.id===E);R!==void 0&&(v=Y({},R.style,v))}f.push({id:T,style:v,extendsStyles:[]})}}}let p=Pn(Hf,a!==null?[a]:[],l,f),S=(a!==null?a.getAttribute("xml:space"):void 0)==="default"||c.spaceStyle==="default";for(let I=0;I<u.length;I++){let y=u[I];if(y instanceof Element){let T=ua(y),v=Y({},p,Pn(Hf,[y,...T],l,f)),E=y.getAttribute("xml:space"),R=w(E)?E==="default":S,k={paragraph:y,timeOffset:e,idStyles:l,regionStyles:f,body:a,paragraphStyle:v,ttParams:c,shouldTrimWhiteSpace:R};k!==null&&t.push(k)}}}return t}function Wf(n){return n.extent===void 0&&n.origin===void 0&&n.displayAlign===void 0&&n.display===void 0&&n.textAlign===void 0&&n.fontSize===void 0}function Gf(n){n.extent="70% 20%",n.fontSize="1c",n.origin="15% 80%",n.displayAlign="before",n.textAlign="center"}var Su=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,bu=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/,Tu=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/,_u=/^(\d*\.?\d*)f$/,Eu=/^(\d*\.?\d*)t$/,vu=/^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/,Ru=/^(\d{1,2}|100)% (\d{1,2}|100)%$/,Ge=/^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/,qf=/^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/,jf=/^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/,Yf=/^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/,$f=/^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;function WI(n,e){if(Su.test(n))return jI(e,n);if(bu.test(n))return ku(bu,n);if(Tu.test(n))return ku(Tu,n);if(_u.test(n))return GI(e,n);if(Eu.test(n))return qI(e,n);if(vu.test(n))return ku(vu,n)}function GI(n,e){let t=_u.exec(e);return Number(t[1])/n.frameRate}function qI(n,e){let t=Eu.exec(e);return Number(t[1])/n.tickRate}function jI(n,e){let t=Su.exec(e),r=Number(t[1]),i=Number(t[2]),o=Number(t[3]),a=Number(t[4]),s=Number(t[5]);return isNaN(s)&&(s=0),a+=s/n.subFrameRate,o+=a/n.frameRate,o+i*60+r*3600}function ku(n,e){let t=n.exec(e);if(t===null||t[0]==="")return null;let r=Number(t[1]);isNaN(r)&&(r=0);let i=Number(t[2]);isNaN(i)&&(i=0);let o=Number(t[3]);isNaN(o)&&(o=0);let a=Number(t[4]);return isNaN(a)&&(a=0),a/1e3+o+i*60+r*3600}var fa=WI;function qi(n,e){let t=n.getAttribute("begin"),r=n.getAttribute("dur"),i=n.getAttribute("end"),o=w(t)?fa(t,e):null,a=w(r)?fa(r,e):null,s=w(i)?fa(i,e):null;if(_(o)||_(s)&&_(a))throw new Error("Invalid text cue");let d=_(s)?o+a:s;return{start:o,end:d}}var Pu;function ke(n,e){Pu===void 0&&(Pu=n.classList!==void 0&&typeof n.classList.add=="function"),Pu?n.classList.add(e):(" "+n.className+" ").indexOf(" "+e+" ")<0&&(n.className+=" "+e)}function Au(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.width=i[1]+i[2]:i[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-width",i[1])):m.warn("TTML Parser: unhandled extent unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.height=o[1]+o[2]:o[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-height",o[1])):m.warn("TTML Parser: unhandled extent unit:",o[2]))}function Cu(n,e){let r=e.trim().split(" ");if(r.length===0)return;let i=Ge.exec(r[0]);if(i!==null)if(i[2]==="px"||i[2]==="em")n.style.fontSize=i[1]+i[2];else if(i[2]==="c")n.style.position="relative",ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size",i[1]);else if(i[2]==="%"){let o=Number(i[1]);isNaN(o)?m.warn('TTML Parser: could not parse fontSize value "'+i[1]+'" into a number'):(n.style.position="relative",ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size",String(o/100)))}else m.warn("TTML Parser: unhandled fontSize unit:",i[2])}function Mu(n,e){let t=e.trim(),r=t.split(" ");if(t==="auto")return;let i=Ge.exec(r[0]);i!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.lineHeight=i[1]+i[2]:i[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-line-height",i[1])):m.warn("TTML Parser: unhandled lineHeight unit:",i[2]))}function xu(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.left=i[1]+i[2]:i[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-left",i[1])):m.warn("TTML Parser: unhandled origin unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.top=o[1]+o[2]:o[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-top",o[1])):m.warn("TTML Parser: unhandled origin unit:",o[2]))}function wu(n,e){let r=e.trim().split(" ");if(r.length<1)return;let i=Ge.exec(r[0]);if(i===null)return;if(i[2]==="px"||i[2]==="%"||i[2]==="em"){let d=i[1]+i[2];r.length===1?n.style.padding=d:r.length===2?(n.style.paddingTop=d,n.style.paddingBottom=d):n.style.paddingTop=d}else i[2]==="c"?(ke(n,"proportional-style"),r.length===1?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1]),n.setAttribute("data-proportional-padding-left",i[1]),n.setAttribute("data-proportional-padding-right",i[1])):r.length===2?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1])):n.setAttribute("data-proportional-padding-top",i[1])):m.warn("TTML Parser: unhandled padding unit:",i[2]);if(r.length===1)return;let o=Ge.exec(r[1]);if(o===null)return;if(o[2]==="px"||o[2]==="%"||o[2]==="em"){let d=o[1]+o[2];r.length<4&&(n.style.paddingLeft=d),n.style.paddingRight=d}else o[2]==="c"?(ke(n,"proportional-style"),r.length<4&&n.setAttribute("data-proportional-padding-left",o[1]),n.setAttribute("data-proportional-padding-right",o[1])):m.warn("TTML Parser: unhandled padding unit:",o[2]);if(r.length===2)return;let a=Ge.exec(r[2]);if(a===null)return;if(a[2]==="px"||a[2]==="%"||a[2]==="em"){let d=a[1]+a[2];n.style.paddingBottom=d}else a[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-padding-bottom",a[1])):m.warn("TTML Parser: unhandled padding unit:",a[2]);if(r.length===3)return;let s=Ge.exec(r[3]);if(s!==null)if(s[2]==="px"||s[2]==="%"||s[2]==="em"){let d=s[1]+s[2];n.style.paddingLeft=d}else s[2]==="c"?(ke(n,"proportional-style"),n.setAttribute("data-proportional-padding-left",s[1])):m.warn("TTML Parser: unhandled padding unit:",s[2])}function Jn(n,e){let t=e;return w(e)&&e.trim().endsWith("%")&&(t=e.trim().slice(0,-1),t=(parseInt(t,10)/100).toString()+"em"),`-1px -1px ${t} ${n},1px -1px ${t} ${n},-1px 1px ${t} ${n},1px 1px ${t} ${n}`}function tn(n){let e;return e=qf.exec(n),_(e)?(e=jf.exec(n),_(e)?(e=Yf.exec(n),_(e)?(e=$f.exec(n),_(e)?n:"rgba("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+","+String(+e[4]/255)+")"):"rgb("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+")"):"rgba("+String(parseInt(e[1]+e[1],16))+","+String(parseInt(e[2]+e[2],16))+","+String(parseInt(e[3]+e[3],16))+","+String(parseInt(e[4]+e[4],16)/255)+")"):"rgba("+String(parseInt(e[1],16))+","+String(parseInt(e[2],16))+","+String(parseInt(e[3],16))+","+String(parseInt(e[4],16)/255)+")"}var YI=["color","direction","display","fontFamily","fontSize","fontStyle","fontWeight","textDecoration","textOutline","unicodeBidi","visibility","wrapOption"];function $I(n,e,t){let r=e.color;w(r)&&(n.style.color=tn(r));let i=e.backgroundColor;w(i)&&(n.style.backgroundColor=tn(i));let o=e.textOutline;if(w(o)){let I=o.trim().replace(/\s+/g," ").split(" "),y=I.length;if(y===3){let T=tn(I[0]),v=I[1];n.style.textShadow=Jn(T,v)}else if(w(r)&&y===1){let T=I[0];n.style.textShadow=Jn(r,T)}else if(y===2){let T=/^[#A-Z]/i.test(I[0]),v=/^[0-9]/.test(I[0]);if(T!==v){if(T){let E=tn(I[0]),R=I[1];n.style.textShadow=Jn(E,R)}else if(w(r)){let E=I[0];n.style.textShadow=Jn(r,E)}}}}let a=e.textDecoration;if(w(a))switch(a){case"noUnderline":case"noLineThrough":case"noOverline":n.style.textDecoration="none";break;case"lineThrough":n.style.textDecoration="line-through";break;default:n.style.textDecoration=a;break}let s=e.fontFamily;if(w(s))switch(s){case"proportionalSansSerif":n.style.fontFamily="Arial, Helvetica, Liberation Sans, sans-serif";break;case"monospaceSansSerif":case"sansSerif":n.style.fontFamily="sans-serif";break;case"monospaceSerif":case"default":n.style.fontFamily="Courier New, Liberation Mono, monospace";break;case"proportionalSerif":n.style.fontFamily="serif";break;default:n.style.fontFamily=s}let d=e.fontStyle;w(d)&&(n.style.fontStyle=d);let u=e.fontWeight;w(u)&&(n.style.fontWeight=u);let c=e.fontSize;w(c)?Cu(n,c):(ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1"));let l=e.direction;w(l)&&(n.style.direction=l);let f=e.unicodeBidi;if(w(f))switch(f){case"bidiOverride":n.style.unicodeBidi="bidi-override";break;case"embed":n.style.unicodeBidi="embed";break;default:n.style.unicodeBidi="normal"}let p=e.visibility;w(p)&&(n.style.visibility=p),e.display==="none"&&(n.style.display="none"),e.wrapOption==="noWrap"?t?n.style.whiteSpace="nowrap":n.style.whiteSpace="pre":t?n.style.whiteSpace="normal":n.style.whiteSpace="pre-wrap"}function QI(n,e){n.style.color="white",n.style.position="absolute";let t=e.extent;w(t)&&Au(n,t);let r=e.writingMode;w(r);let i=e.overflow;n.style.overflow=w(i)?i:"hidden";let o=e.padding;w(o)&&wu(n,o);let a=e.origin;w(a)&&xu(n,a);let s=e.displayAlign;if(w(s))switch(n.style.display="flex",n.style.flexDirection="column",s){case"before":n.style.justifyContent="flex-start";break;case"center":n.style.justifyContent="center";break;case"after":n.style.justifyContent="flex-end";break}let d=e.opacity;w(d)&&(n.style.opacity=d);let u=e.visibility;w(u)&&(n.style.visibility=u),e.display==="none"&&(n.style.display="none")}function XI(n,e){n.style.margin="0px",ke(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1");let t=e.backgroundColor;w(t)&&(n.style.backgroundColor=tn(t));let r=e.lineHeight;w(r)&&Mu(n,r);let i=e.textAlign;if(w(i))switch(i){case"center":n.style.textAlign="center";break;case"left":case"start":n.style.textAlign="left";break;case"right":case"end":n.style.textAlign="right";break}}function ZI(n,e,t){let r=document.createElement("span"),i=n.textContent===null?"":n.textContent;if(t){let a=i.trim();a=a.replace(/\s+/g," "),i=a}let o=document.createTextNode(i);return r.appendChild(o),r.className="rxp-texttrack-span",$I(r,e,t),r}function JI(n,e,t,r,i){function o(a,s,d,u){let c=a.childNodes,l=[];for(let f=0;f<c.length;f++){let p=c[f];if(p.nodeName==="#text"){let{backgroundColor:g}=Pn(["backgroundColor"],d,t,e);w(g)?s.backgroundColor=g:delete s.backgroundColor;let S=ZI(p,s,u);l.push(S)}else if(la(p)){let g=document.createElement("BR");l.push(g)}else if(ca(p)&&p.nodeType===Node.ELEMENT_NODE&&p.childNodes.length>0){let g=p.getAttribute("xml:space"),S=w(g)?g==="default":u,I=Y({},s,Pn(YI,[p],t,e));l.push(...o(p,I,[p,...d],S))}}return l}return o(n,Y({},r),[],i)}function Ou(n,e,t,r,i,{cellResolution:o,shouldTrimWhiteSpace:a}){let s=ua(n),d=document.createElement("DIV");if(d.className="rxp-texttrack-region",d.setAttribute("data-resolution-columns",String(o.columns)),d.setAttribute("data-resolution-rows",String(o.rows)),QI(d,i),e!==null){let{bodyBackgroundColor:l}=Pn(["backgroundColor"],[...s,e],r,t);w(l)&&(d.style.backgroundColor=tn(l))}let u=document.createElement("p");u.className="rxp-texttrack-p",XI(u,i);let c=JI(n,t,r,i,a);for(let l=0;l<c.length;l++)u.appendChild(c[l]);return d.appendChild(u),d}function Du(n){let{paragraph:e,ttParams:t,body:r,regionStyles:i,idStyles:o,paragraphStyle:a,timeOffset:s,shouldTrimWhiteSpace:d}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{cellResolution:u}=t,{start:c,end:l}=qi(e,t),f=Ou(e,r,i,o,a,{cellResolution:u,shouldTrimWhiteSpace:d});return{start:c+s,end:l+s,element:f}}function Lu(n,e){let t=Gi(n,e),r=[];for(let i=0;i<t.length;i++){let{paragraphStyle:o}=t[i];Wf(o)&&Gf(o);let a=Du(t[i]);a!==null&&r.push(a)}return r}var Qf=Lu;function Nu(n){n.htmlTextTracksParsers.ttml=Qf,n.htmlTextDisplayer=en}function ma(n){let e=0;for(;e<n.length;){if(n[e]==="")return e+1;e++}return e}function Uu(n,e){return typeof n[e]=="string"&&/^STYLE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function ey(n,e){return typeof n[e]=="string"&&/^NOTE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function ty(n,e){return typeof n[e]=="string"&&/^REGION( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function Xf(n,e){let t=n[e];if(t===void 0||t===""||Uu(n,e)||ty(n,e)||ey(n,e))return!1;if(t.indexOf("-->")>=0)return!0;let r=n[e+1];return r!==void 0&&r.indexOf("-->")>=0}function Zf(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function ji(n,e){let t=[];for(let r=e;r<n.length;r++)if(Xf(n,r)){let i=Zf(n,r);t.push(n.slice(r,i)),r=i}else if(w(n[r]))for(;w(n[r]);)r++;return t}function Bu(n,e){let t=[];for(let r=e;r<n.length;r++)if(Uu(n,r)){let i=r;for(r++;w(n[r]);)r++;let o=n.slice(i,r);t.push(o)}else if(w(n[r]))for(;w(n[r]);)r++;return t}function pa(n){let e=n.split(":").reverse();if(w(e[2])||w(e[1])){let t=w(e[2])?parseInt(e[2],10):0,r=parseInt(e[1],10),i=parseFloat(e[0].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function ny(n){return n.split(/ |\t/).reduce((t,r)=>{let i=r.split(":");return i.length===2&&(t[i[0]]=i[1]),t},{})}function ry(n){let t=/^([\d:.]+)[ |\t]+-->[ |\t]+([\d:.]+)[ |\t]*(.*)$/.exec(n);if(t===null)return null;let r=pa(t[1]),i=pa(t[2]);if(r===void 0||i===void 0)return null;let o=ny(t[3]);return{start:r,end:i,settings:o}}function Yi(n,e){let t=/-->/,r,i,o;if(t.test(n[0]))r=n[0],i=n.slice(1,n.length);else{if(!t.test(n[1]))return null;o=n[0],r=n[1],i=n.slice(2,n.length)}let a=ry(r);if(a===null)return null;let{start:s,end:d,settings:u}=a;return{start:s+e,end:d+e,settings:u,payload:i,header:o}}var Fu={white:"#ffffff",lime:"#00ff00",cyan:"#00ffff",red:"#ff0000",yellow:"#ffff00",magenta:"#ff00ff",blue:"#0000ff",black:"#000000"};function Ku(){return Object.keys(Fu).reduce((n,e)=>(n[e]=`color: ${Fu[e]};`,n[`bg_${e}`]=`background-color: ${Fu[e]};`,n),{})}function Vu(n){let e=Ku(),t="";return n.forEach(r=>{if(r.length>=2)for(let i=1;i<r.length;i++){let o=r[i];if(Array.isArray(/::cue {/.exec(o)))for(o=r[++i];w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)t+=o,o=r[++i];else{let a=[],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);for(;w(o)&&Array.isArray(s);)a.push(s[1]),o=r[++i],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);let d="";for(;w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)d+=o,o=r[++i];a.forEach(u=>{e[u]===void 0?e[u]=d:e[u]+=d})}}}),{classes:e,global:t}}function $i(n,e){let t=["u","i","b"],r=["u","i","b","c","#text"],i=n.nodeName.toLowerCase().split(".")[0],o;if($(r,i))if(i==="#text"){let a=n.wholeText.split(`
7
- `);o=document.createElement("span");for(let s=0;s<a.length;s++)if(s>0&&o.appendChild(document.createElement("br")),a[s].length>0){let d=document.createTextNode(a[s]);o.appendChild(d)}}else{let a=n.nodeName.toLowerCase().split("."),s=[];if(a.forEach(d=>{w(e[d])&&s.push(e[d])}),s.length!==0){let d=document.createAttribute("style");s.forEach(c=>{d.value+=c});let u=$(t,i)?i:"span";o=document.createElement(u),o.setAttributeNode(d)}else{let d=$(t,i)?i:"span";o=document.createElement(d)}for(let d=0;d<n.childNodes.length;d++){let u=$i(n.childNodes[d],e);o.appendChild(u)}}else{o=document.createElement("span");for(let a=0;a<n.childNodes.length;a++){let s=$i(n.childNodes[a],e);o.appendChild(s)}}return o}function zu(n,e){let t=n.replace(/<[0-9]{2}:[0-9]{2}.[0-9]{3}>/,"").replace(/<([u,i,b,c])(\..*?)?(?: .*?)?>(.*?)<\/\1>/g,"<$1$2>$3</$1$2>"),i=new DOMParser().parseFromString(t,"text/html").body.childNodes,o=[];for(let a=0;a<i.length;a++)o.push($i(i[a],e));return o}function Hu(n){let e=document.createAttribute("style");return e.value=iy(n),e}var iy=n=>{if(!(n!==void 0&&xn(n).length!==0))return"text-align:center";let t=oy(n),r=dy(n);return`position: absolute;margin: 0;transform: translate(${t.offset}%,${r.offset}%);width: ${cy(n.size)}%;left: ${t.position}%;top: ${r.position!==null?`${r.position}%`:"auto"};text-align: ${Wu(n.align)};`};var oy=n=>({position:ay(n),offset:sy(n)}),ay=n=>{let e=Gu(n.position);if(e!==null)return e;let t=Wu(n.align);return{left:0,center:50,right:100}[t]},sy=n=>{let e=a=>{let d=/,(line-left|line-right|center)/.exec(a);return!Array.isArray(d)||d.length<2?null:d[1]},t={"line-left":0,center:-50,"line-right":-100},r=n.position!==void 0?e(n.position):null;if(r!==null)return t[r];let i={left:0,center:-50,right:-100},o=n.align!==void 0?Wu(n.align):"center";return i[o]},dy=n=>({position:uy(n.line),offset:ly(n.line)}),uy=n=>Gu(n),ly=n=>{let e=i=>{let a=/,(start|center|end)/.exec(i);return!Array.isArray(a)||a.length<2?null:a[1]},t={start:0,center:-50,end:-100};if(n===void 0)return t.start;let r=e(n);return r!==null?t[r]:t.start},Wu=n=>{switch(n){case"left":case"start":return"left";case"right":case"end":return"right";default:return"center"}},cy=n=>fy(n,100),fy=(n,e)=>{let t=Gu(n);return t!==null?t:e},Gu=n=>{if(n===void 0)return null;let t=/^([\d.]+)%/.exec(n);return!Array.isArray(t)||t.length<2?null:parseInt(t[1],10)};function qu(n,e){let{start:t,end:r,settings:i,header:o,payload:a}=n,s=document.createElement("div"),d=document.createAttribute("style");d.value="width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;",s.setAttributeNode(d);let u=document.createElement("p"),c=Hu(i);u.setAttributeNode(c);let l=document.createElement("span"),f=document.createAttribute("style");f.value="background-color:rgba(0,0,0,0.8);color:white;",l.setAttributeNode(f);let{global:p,classes:g}=e,S=w(o)?g[o]:void 0,I=[p,S].filter(y=>y!==void 0).join("");return f.value+=I,l.setAttributeNode(f),zu(a.join(`
8
- `),g).forEach(y=>{l.appendChild(y)}),s.appendChild(u),u.appendChild(l),{start:t,end:r,element:s}}function ju(n,e){let t=/\r\n|\n|\r/g,r=n.split(t),i=[];if(/^WEBVTT( |\t|\n|\r|$)/.exec(r[0])===null)throw new Error("Can't parse WebVTT: Invalid File.");let o=ma(r),a=Bu(r,o),s=ji(r,o),d=Vu(a);for(let u=0;u<s.length;u++){let c=Yi(s[u],e);if(c!==null){let l=qu(c,d);i.push(l)}}return i}var Jf=ju;function Yu(n){n.htmlTextTracksParsers.vtt=Jf,n.htmlTextDisplayer=en}function $u(n){var i;let e,t,r="subtitles";if(Kt){let o=n.textTracks.length;e=o>0?n.textTracks[o-1]:n.addTextTrack(r),e.mode=(i=e.SHOWING)!=null?i:"showing"}else t=document.createElement("track"),n.appendChild(t),e=t.track,t.kind=r,e.mode="showing";return{track:e,trackElement:t}}function my(n,e){let{activeCues:t}=n;if(t===null)return!1;for(let r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function Qu(n,e){if(on&&my(n,e)){let t=n.mode;n.mode="hidden";try{n.removeCue(e)}catch(r){m.warn("Compat: Could not remove cue from text track.")}n.mode=t;return}try{n.removeCue(e)}catch(t){m.warn("Compat: Could not remove cue from text track.")}}function Xu(n,e,t,r){m.debug("NTSB: Finding parser for native text tracks:",n);let i=ue.nativeTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("NTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("NTSB: Parsed successfully!",o.length),o}var Qi=class{constructor(e){m.debug("NTD: Creating NativeTextDisplayer");let{track:t,trackElement:r}=$u(e);this._buffered=new kn,this._videoElement=e,this._track=t,this._trackElement=r}pushTextData(e){var S,I;if(m.debug("NTD: Appending new native text tracks"),e.chunk===null)return Pe(this._buffered);let{timestampOffset:t,appendWindow:r,chunk:i}=e,{start:o,end:a,data:s,type:d,language:u}=i,c=(S=r[0])!=null?S:0,l=(I=r[1])!=null?I:1/0,f=Xu(d,s,t,u);if(c!==0&&l!==1/0){let y=0;for(;y<f.length&&f[y].endTime<=c;)y++;for(f.splice(0,y),y=0;y<f.length&&f[y].startTime<c;)f[y].startTime=c,y++;for(y=f.length-1;y>=0&&f[y].startTime>=l;)y--;for(f.splice(y,f.length),y=f.length-1;y>=0&&f[y].endTime>l;)f[y].endTime=l,y--}let p;if(o!==void 0)p=Math.max(c,o);else{if(f.length<=0)return m.warn("NTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("NTD: No start time given. Guessing from cues."),p=f[0].startTime}let g;if(a!==void 0)g=Math.min(l,a);else{if(f.length<=0)return m.warn("NTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("NTD: No end time given. Guessing from cues."),g=f[f.length-1].endTime}if(g<=p)return m.warn("NTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered);if(f.length>0){let y=f[0],T=this._track.cues;T!==null&&T.length>0&&y.startTime<T[T.length-1].startTime&&this._removeData(y.startTime,1/0);for(let v of f)this._track.addCue(v)}return this._buffered.insert(p,g),Pe(this._buffered)}removeBuffer(e,t){return this._removeData(e,t),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("NTD: Aborting NativeTextDisplayer"),this._removeData(0,1/0);let{_trackElement:e,_videoElement:t}=this;if(e!==void 0&&t.hasChildNodes())try{t.removeChild(e)}catch(i){m.warn("NTD: Can't remove track element from the video")}let r=this._track.mode;this._track.mode="disabled",this._track.mode=r,this._trackElement!==void 0&&(this._trackElement.innerHTML="")}stop(){m.debug("NTD: Aborting NativeTextDisplayer"),this._removeData(0,1/0);let{_trackElement:e,_videoElement:t}=this;if(e!==void 0&&t.hasChildNodes())try{t.removeChild(e)}catch(r){m.warn("NTD: Can't remove track element from the video")}this._track.mode="disabled",this._trackElement!==void 0&&(this._trackElement.innerHTML="")}_removeData(e,t){m.debug("NTD: Removing native text track data",e,t);let r=this._track,i=r.cues;if(i!==null)for(let o=i.length-1;o>=0;o--){let a=i[o],{startTime:s,endTime:d}=a;s>=e&&s<=t&&d<=t&&Qu(r,a)}this._buffered.remove(e,t)}};h.CURRENT_ENV===h.DEV&&(py=function(e){function t(r){}});var py;var nn=Qi;function Dt(n,e,t){if(n>=e)return m.warn(`Compat: Invalid cue times: ${n} - ${e}`),null;if(_(re.VTTCue)){if(_(re.TextTrackCue))throw new Error("VTT cues not supported in your target");return new TextTrackCue(n,e,t)}else return new VTTCue(n,e,t)}var gy=/&#([0-9]+);/g,hy=/<br>/gi,Iy=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,yy=/\s*<p (?:class=([^>]+))?>(.*)/i,Sy=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function by(n){let e=[];for(let t=0;t<n.length;t++){let{start:r,end:i,text:o}=n[t];if(w(o)&&!_(i)){let a=Dt(r,i,o);a!==null&&e.push(a)}}return e}function Ty(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;Array.isArray(r);){let i=r[1],o=_y(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function _y(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function Ey(n){return n.replace(hy,`
9
- `).replace(gy,(e,t)=>String.fromCharCode(Number(t)))}function vy(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=Iy.exec(n),s=a!==null?a[1]:"",d,u;i.exec(n);let c=Ty(s),l;if(w(t)&&(l=c[t],l===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let p=n.slice(d.index,u.index),g=Sy.exec(p);if(g===null)throw new Error("parse error (sync time attribute)");let S=+g[1];if(isNaN(S))throw new Error("parse error (sync time attribute NaN)");f(p.split(`
10
- `),S/1e3)}return by(o);function f(p,g){let S=p.length,I;for(;--S>=0;){if(I=yy.exec(p[S]),I===null)continue;let[,y,T]=I;l===y&&(T==="&nbsp;"?o[o.length-1].end=g:o.push({text:Ey(T),start:g+e}))}}}var em=vy;function Zu(n){n.nativeTextTracksParsers.sami=em,n.nativeTextDisplayer=nn}function Ju(n,e){let t=n.split(/\r\n|\n|\r/),r=Hi(t),i=[];for(let o=0;o<r.length;o++){let a=Wi(r[o],e);if(a!==null){let s=Ry(a);s!==null&&i.push(s)}}return i}function Ry(n){let{start:e,end:t,payload:r}=n,i=r.join(`
11
- `);return Dt(e,t,i)}function el(n){n.nativeTextTracksParsers.srt=Ju,n.nativeTextDisplayer=nn}function Xi(n){return typeof re.VTTCue=="function"&&n instanceof re.VTTCue}var ky={left:"start",center:"center",right:"end",start:"start",end:"end"},Py={left:"line-left",center:"center",right:"line-right"};function tl(n){let{paragraph:e,timeOffset:t,paragraphStyle:r,ttParams:i,shouldTrimWhiteSpace:o}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{start:a,end:s}=qi(e,i),d=Ay(e,o),u=Dt(a+t,s+t,d);return u===null?null:(Xi(u)&&Cy(u,r),u)}function Ay(n,e){function t(r,i){let o=r.childNodes,a="";for(let s=0;s<o.length;s++){let d=o[s];if(d.nodeName==="#text"){let u=d.textContent;if(u===null&&(u=""),i){let l=u.trim();l=l.replace(/\s+/g," "),u=l}let c=u.replace(/&|\u0026/g,"&amp;").replace(/<|\u003C/g,"&lt;").replace(/>|\u2265/g,"&gt;").replace(/\u200E/g,"&lrm;").replace(/\u200F/g,"&rlm;").replace(/\u00A0/g,"&nbsp;");a+=c}else if(la(d))a+=`
12
- `;else if(ca(d)&&d.nodeType===Node.ELEMENT_NODE&&d.childNodes.length>0){let u=d.getAttribute("xml:space"),c=w(u)?u==="default":i;a+=t(d,c)}}return a}return t(n,e)}function Cy(n,e){let t=e.extent;if(w(t)){let a=Ru.exec(t);_(a)||(n.size=Number(a[1]))}switch(e.writingMode){case"tb":case"tblr":n.vertical="lr";break;case"tbrl":n.vertical="rl";break;default:break}let i=e.origin;if(w(i)){let a=Ru.exec(i);_(a)}let o=e.align;if(w(o)){n.align=o,o==="center"&&(n.align!=="center"&&(n.align="middle"),n.position="auto");let a=Py[o];n.positionAlign=a===void 0?"":a;let s=ky[o];n.lineAlign=s===void 0?"":s}}function nl(n,e){let t=Gi(n,e),r=[];for(let i=0;i<t.length;i++){let o=t[i],a=tl(o);a!==null&&r.push(a)}return r}var tm=nl;function rl(n){n.nativeTextTracksParsers.ttml=tm,n.nativeTextDisplayer=nn}function il(n,e){if(w(n.vertical)&&(n.vertical==="rl"||n.vertical==="lr")&&(e.vertical=n.vertical),w(n.line)){let r=/^(\d+(\.\d+)?)%(,([a-z]+))?/.exec(n.line);if(Array.isArray(r))e.line=Number(r[1]),e.snapToLines=!1,$(["start","center","end"],r[4])&&(e.lineAlign=r[4]);else{let o=/^(-?\d+)(,([a-z]+))?/.exec(n.line);Array.isArray(o)&&(e.line=Number(o[1]),e.snapToLines=!0,$(["start","center","end"],o[3])&&(e.lineAlign=o[3]))}}if(w(n.position)){let r=/^([\d\.]+)%(?:,(line-left|line-right|center))?$/.exec(n.position);if(Array.isArray(r)&&r.length>=2){let i=parseInt(r[1],10);isNaN(i)||(e.position=i,r[2]!==void 0&&(e.positionAlign=r[2]))}}w(n.size)&&(e.size=n.size),typeof n.align=="string"&&$(["start","center","end","left"],n.align)&&(e.align=n.align)}function ol(n){let{start:e,end:t,payload:r}=n,i=r.join(`
13
- `);return Dt(e,t,i)}function al(n,e){let t=n.split(/\r\n|\n|\r/);if(!/^WEBVTT($| |\t)/.test(t[0]))throw new Error("Can't parse WebVTT: Invalid file.");let r=ma(t),i=ji(t,r),o=[];for(let a=0;a<i.length;a++){let s=Yi(i[a],e);if(s!==null){let d=ol(s);d!==null&&(Xi(d)&&il(s.settings,d),o.push(d))}}return o}var nm=al;function sl(n){n.nativeTextTracksParsers.vtt=nm,n.nativeTextDisplayer=nn}function er(n){let e=[];n.periods.forEach(t=>{let r=t.id;if($(e,r)){m.warn("Two periods with the same ID found. Updating.");let a=r+"-dup";t.id=a,er(n),e.push(a)}else e.push(r);let{adaptations:i}=t,o=[];Object.keys(i).forEach(a=>{let s=i[a];s!==void 0&&s.forEach(d=>{let u=d.id;if($(o,u)){m.warn("Two adaptations with the same ID found. Updating.",u);let l=u+"-dup";d.id=l,er(n),o.push(l)}else o.push(u);let c=[];d.representations.forEach(l=>{let f=l.id;if($(c,f)){m.warn("Two representations with the same ID found. Updating.",f);let p=`${f}-dup`;l.id=p,er(n),c.push(p)}else c.push(f)})})})})}function rm(n,e){let t;return e==="AACH"?t=5:t=w(n)?(parseInt(n.substring(0,2),16)&248)>>3:2,t===0?"mp4a.40.2":`mp4a.40.${t}`}function im(n){let e=/00000001\d7([0-9a-fA-F]{6})/.exec(n);return e===null||!w(e[1])?"avc1.4D401E":"avc1."+e[1]}function dl(n){return n.reduce((e,t,r)=>{let i=t.getAttribute("d"),o=t.getAttribute("t"),a=t.getAttribute("r"),s=a!==null?+a-1:0,d=o!==null?+o:void 0,u=i!==null?+i:void 0;if(r===0)d=d===void 0||isNaN(d)?0:d;else{let c=e[r-1];if(d===void 0||isNaN(d)){if(c.duration===void 0||isNaN(c.duration))throw new Error("Smooth: Invalid CNodes. Missing timestamp.");d=c.start+c.duration*(c.repeatCount+1)}}if(u===void 0||isNaN(u)){let c=n[r+1];if(c!==void 0){let l=c.getAttribute("t"),f=w(l)?+l:null;if(f===null)throw new Error("Can't build index timeline from Smooth Manifest.");u=f-d}else return e}return e.push({duration:u,start:d,repeatCount:s}),e},[])}function My(n){return[{systemId:"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",privateData:te([8,1,18,16],n)}]}function ul(n,e=My){if(n.firstElementChild===null||n.firstElementChild.nodeName!=="ProtectionHeader")throw new Error("Protection should have ProtectionHeader child");let t=n.firstElementChild,r=ft(t.textContent===null?"":t.textContent),i=Qr(r),o=je(i),a=t.getAttribute("SystemID"),s=(a!==null?a:"").toLowerCase().replace(/\{|\}/g,"");return{keyId:o,keySystems:[{systemId:s,privateData:r}].concat(e(o))}}function om(n,e,t){return n.replace(/\{bitrate\}/g,String(e)).replace(/{CustomAttributes}/g,t.length>0?t[0]:"")}function am(n,e){return n.replace(/\{start time\}/g,String(e))}function xy(n,e,t){let r=e-n;return r>0?Math.floor(r/t):0}function wy(n,e,t){let r=n===void 0||n===0?1:n;return{up:e*r,to:(e+t)*r}}function Oy(n,e){let t=n.repeatCount;if(n.duration!==void 0&&t<0){let r=e!==void 0?e.start:1/0;t=Math.ceil((r-n.start)/n.duration)-1}return t}var Zi=class{constructor(e){let{isLive:t,segmentPrivateInfos:r,media:i,sharedSmoothTimeline:o}=e;if(this._sharedSmoothTimeline=o,this._initSegmentInfos={bitsPerSample:r.bitsPerSample,channels:r.channels,codecPrivateData:r.codecPrivateData,packetSize:r.packetSize,samplingRate:r.samplingRate,timescale:o.timescale,height:r.height,width:r.width,protection:r.protection},this._isLive=t,this._media=i,o.timeline.length!==0&&t){let{timeline:a,validityTime:s}=o,d=a[a.length-1],u=ve(d,null),c=s/1e3*o.timescale;this._scaledLiveGap=c-u}}getInitSegment(){return{id:"init",isInit:!0,privateInfos:{smoothInitSegment:this._initSegmentInfos},url:null,time:0,end:0,duration:0,timescale:1,complete:!0}}getSegments(e,t){this._refreshTimeline();let{timescale:r,timeline:i}=this._sharedSmoothTimeline,{up:o,to:a}=wy(r,e,t),s=this._media,d,u=[],c=i.length,l=this._scaledLiveGap===void 0?void 0:V()/1e3*r-this._scaledLiveGap;for(let f=0;f<c;f++){let p=i[f],{duration:g,start:S}=p,I=Oy(p,i[f+1]),y=xy(S,o,g),T=S+y*g,v=g;for(;T<a&&y<=I&&(l===void 0||T+v<=l);){let E=T,R=d!==void 0?d+y:void 0,k={id:String(T),isInit:!1,time:E/r,end:(E+g)/r,duration:g/r,timescale:1,number:R,url:am(s,E),complete:!0,privateInfos:{smoothMediaSegment:{time:E,duration:g}}};u.push(k),y++,T=S+y*g}if(T>=a)return u;d!==void 0&&(d+=I+1)}return u}shouldRefresh(e,t){if(this._refreshTimeline(),!this._isLive)return!1;let{timeline:r,timescale:i}=this._sharedSmoothTimeline,o=r[r.length-1];if(o===void 0)return!1;let a=o.repeatCount,s=o.start+(a+1)*o.duration;if(t*i<s)return!1;if(e*i>=s)return!0;let d=o.start+a*o.duration;return e*i>d}getFirstAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;return e.length===0?null:e[0].start/t}getLastAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;if(this._scaledLiveGap===void 0){let r=e[e.length-1];return ve(r,null)/t}for(let r=e.length-1;r>=0;r--){let i=e[r],o=V()/1e3*t,{start:a,duration:s,repeatCount:d}=i;for(let u=d;u>=0;u--){let c=a+s*(u+1);if(c<=o-this._scaledLiveGap)return c/t}}}getEnd(){if(!this._isLive)return this.getLastAvailablePosition()}awaitSegmentBetween(e,t){var i;if(J(e<=t),this.isStillAwaitingFutureSegments())return!1;let r=this.getLastAvailablePosition();return r!==void 0&&t<r?!1:t>((i=this.getFirstAvailablePosition())!=null?i:0)?void 0:!1}checkDiscontinuity(e){return this._refreshTimeline(),Zo(this._sharedSmoothTimeline,e,void 0)}isSegmentStillAvailable(e){if(e.isInit)return!0;this._refreshTimeline();let{timeline:t,timescale:r}=this._sharedSmoothTimeline;for(let i=0;i<t.length;i++){let o=t[i],a=o.start/r;if(a>e.time)return!1;if(a===e.time)return!0;if(o.repeatCount>=0&&o.duration!==void 0){let d=(a-o.start)/o.duration-1;return d%1===0&&d<=o.repeatCount}}return!1}canBeOutOfSyncError(e){return this._isLive?e instanceof rt&&(e.isHttpError(404)||e.isHttpError(412)):!1}_replace(e){this._initialScaledLastPosition=e._initialScaledLastPosition,this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.replace(e._sharedSmoothTimeline)}_update(e){this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.update(e._sharedSmoothTimeline)}isStillAwaitingFutureSegments(){return this._isLive}isInitialized(){return!0}initialize(){m.error("A `SmoothRepresentationIndex` does not need to be initialized")}addPredictedSegments(e,t){this._sharedSmoothTimeline.addPredictedSegments(e,t)}_refreshTimeline(){this._sharedSmoothTimeline.refresh()}};function ll(n,e,t,r){let i=n.length,o=n[i-1],a=t.timescale===e?{time:t.time,duration:t.duration}:{time:t.time/t.timescale*e,duration:t.duration/t.timescale*e};return r.time===a.time?!1:a.time>=ve(o,null)?(o.duration===a.duration?o.repeatCount++:n.push({duration:a.duration,start:a.time,repeatCount:0}),!0):!1}var Ji=class{constructor(e){let{timeline:t,timescale:r,timeShiftBufferDepth:i,manifestReceivedTime:o}=e;this.timeline=t,this.timescale=r;let a=o!=null?o:V();if(this.validityTime=a,this._timeShiftBufferDepth=i,t.length!==0){let s=t[t.length-1],d=ve(s,null);this._initialScaledLastPosition=d}}refresh(){if(this._initialScaledLastPosition===void 0)return;let e=this._timeShiftBufferDepth,r=(V()-this.validityTime)/1e3+this._initialScaledLastPosition/this.timescale;if(e!==void 0){let i=(r-e)*this.timescale;Ti(this.timeline,i)}}replace(e){let t=this.timeline,r=e.timeline,i=this.timescale,o=e.timescale;if(this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime,t.length===0||r.length===0||i!==o)return;let a=t[t.length-1],s=r[r.length-1],d=ve(s,null);if(!(ve(a,null)<=d))for(let u=0;u<t.length;u++){let c=t[u],l=ve(c,null);if(l===d){this.timeline=this.timeline.concat(t.slice(u+1));return}if(l>d){if(c.duration!==s.duration)return;let f=d-c.start;if(f===0){m.warn("Smooth Parser: a discontinuity detected in the previous manifest has been resolved."),this.timeline=this.timeline.concat(t.slice(u));return}if(f<0||f%c.duration!==0)return;let p=f/c.duration-1,g=c.repeatCount-p;if(g<0)return;s.repeatCount+=g;let S=t.slice(u+1);this.timeline=this.timeline.concat(S);return}}}update(e){_i(this.timeline,e.timeline),this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime}addPredictedSegments(e,t){var r;if(((r=t.privateInfos)==null?void 0:r.smoothMediaSegment)===void 0){m.warn("Smooth Parser: should only encounter SmoothRepresentationIndex");return}this.refresh();for(let i=0;i<e.length;i++)ll(this.timeline,this.timescale,e[i],t.privateInfos.smoothMediaSegment)}};function cl(n){return typeof n=="boolean"?n:typeof n=="string"?n.toUpperCase()==="TRUE":!1}function tr(n,e,t){let r=n.firstElementChild,i=t;for(;r!==null;)i=e(i,r.nodeName,r),r=r.nextElementSibling;return i}var Dy={audio:"audio/mp4",video:"video/mp4",text:"application/ttml+xml"},eo={AACL:"audio/mp4",AVC1:"video/mp4",H264:"video/mp4",TTML:"application/ttml+xml+mp4",DFXP:"application/ttml+xml+mp4"};function Ly(n={}){let e=n.referenceDateTime===void 0?Date.UTC(1970,0,1,0,0,0,0)/1e3:n.referenceDateTime,t=n.minRepresentationBitrate===void 0?0:n.minRepresentationBitrate,{serverSyncInfos:r}=n,i=r!==void 0?r.serverTimestamp-r.clientTime:void 0;function o(d,u){let c=tr(d,(f,p,g)=>(p==="CustomAttributes"&&f.push(...tr(g,(S,I,y)=>{if(I==="Attribute"){let T=y.getAttribute("Name"),v=y.getAttribute("Value");T!==null&&v!==null&&S.push(T+"="+v)}return S},[])),f),[]);function l(f){let p=d.getAttribute(f);return p===null?void 0:p}switch(u){case"audio":{let f=l("AudioTag"),p=l("BitsPerSample"),g=l("Channels"),S=l("CodecPrivateData"),I=l("FourCC"),y=l("PacketSize"),T=l("SamplingRate"),v=l("Bitrate"),E=v===void 0?0:parseInt(v,10);if(E=isNaN(E)?0:E,I!==void 0&&eo[I]===void 0||S===void 0)return m.warn("Smooth parser: Unsupported audio codec. Ignoring quality level."),null;let R=rm(S,I);return{audiotag:f!==void 0?parseInt(f,10):f,bitrate:E,bitsPerSample:p!==void 0?parseInt(p,10):p,channels:g!==void 0?parseInt(g,10):g,codecPrivateData:S,codecs:R,customAttributes:c,mimeType:I!==void 0?eo[I]:I,packetSize:y!==void 0?parseInt(y,10):y,samplingRate:T!==void 0?parseInt(T,10):T}}case"video":{let f=l("CodecPrivateData"),p=l("FourCC"),g=l("MaxWidth"),S=l("MaxHeight"),I=l("Bitrate"),y=I===void 0?0:parseInt(I,10);if(y=isNaN(y)?0:y,p!==void 0&&eo[p]===void 0||f===void 0)return m.warn("Smooth parser: Unsupported video codec. Ignoring quality level."),null;let T=im(f);return{bitrate:y,customAttributes:c,mimeType:p!==void 0?eo[p]:p,codecPrivateData:f,codecs:T,width:g!==void 0?parseInt(g,10):void 0,height:S!==void 0?parseInt(S,10):void 0}}case"text":{let f=l("CodecPrivateData"),p=l("FourCC"),g=l("Bitrate"),S=g===void 0?0:parseInt(g,10);return S=isNaN(S)?0:S,{bitrate:S,customAttributes:c,mimeType:p!==void 0?eo[p]:p,codecPrivateData:f!=null?f:""}}default:return m.error("Smooth Parser: Unrecognized StreamIndex type: "+u),null}}function a(d){let{root:u,timescale:c,baseUrl:l,protections:f,timeShiftBufferDepth:p,manifestReceivedTime:g,isLive:S}=d,I=u.getAttribute("Timescale"),y=I===null?c:+I;isNaN(y)&&(y=c);let T=u.getAttribute("Type");if(T===null)throw new Error("StreamIndex without type.");$(Ht,T)||m.warn("Smooth Parser: Unrecognized adaptation type:",T);let v=T,E=u.getAttribute("Subtype"),R=u.getAttribute("Language"),k=u.getAttribute("Url"),A=k===null?"":k;h.CURRENT_ENV===h.DEV&&J(A!=="");let{qualityLevels:C,cNodes:x}=tr(u,(M,O,U)=>{switch(O){case"QualityLevel":let H=o(U,v);if(H===null)return M;(v!=="video"||H.bitrate>t)&&M.qualityLevels.push(H);break;case"c":M.cNodes.push(U);break}return M},{qualityLevels:[],cNodes:[]}),N=new Ji({timeline:dl(x),timescale:y,timeShiftBufferDepth:p,manifestReceivedTime:g});J(C.length!==0,"Adaptation should have at least one playable representation.");let D=v+(w(R)?"_"+R:""),L=C.map(M=>{let O=om(A,M.bitrate,M.customAttributes),U=w(M.mimeType)?M.mimeType:Dy[v],H=M.codecs,q=D+"_"+(_(v)?"":v+"-")+(_(U)?"":U+"-")+(_(H)?"":H+"-")+String(M.bitrate),G=[],K;f.length>0&&(K=f[0],f.forEach(oe=>{let z=oe.keyId;oe.keySystems.forEach(ae=>{G.push({keyId:z,systemId:ae.systemId})})}));let ne={bitsPerSample:M.bitsPerSample,channels:M.channels,codecPrivateData:M.codecPrivateData,packetSize:M.packetSize,samplingRate:M.samplingRate,height:M.height,width:M.width,protection:_(K)?void 0:{keyId:K.keyId}},j=new Zi({isLive:S,sharedSmoothTimeline:N,media:O,segmentPrivateInfos:ne}),se=Y({},M,{index:j,cdnMetadata:[{baseUrl:l}],mimeType:U,codecs:H,id:q});if(G.length>0||K!==void 0){let oe=K===void 0?[]:K.keySystems.map(z=>{let{systemId:ae,privateData:$e}=z,ye=ae.replace(/-/g,""),Re=Ny(ye,$e);return{systemId:ye,data:Re}});if(oe.length>0){let z=[{type:"cenc",values:oe}];se.contentProtections={keyIds:G,initData:z}}else se.contentProtections={keyIds:G,initData:[]}}return se});if(E==="ADVT")return null;let P={id:D,type:v,representations:L,language:R===null?void 0:R};return v==="text"&&E==="DESC"&&(P.closedCaption=!0),P}function s(d,u,c){let l="";if(u!==void 0){let j=Ai(u);l=u.substring(0,j)}let f=d.documentElement;if(_(f)||f.nodeName!=="SmoothStreamingMedia")throw new Error("document root should be SmoothStreamingMedia");let p=f.getAttribute("MajorVersion"),g=f.getAttribute("MinorVersion");if(p===null||g===null||!/^[2]-[0-2]$/.test(p+"-"+g))throw new Error("Version should be 2.0, 2.1 or 2.2");let S=f.getAttribute("Timescale"),I=w(S)?+S:1e7;isNaN(I)&&(I=1e7);let{protections:y,adaptationNodes:T}=tr(f,(j,se,oe)=>{switch(se){case"Protection":{j.protections.push(ul(oe,n.keySystems));break}case"StreamIndex":j.adaptationNodes.push(oe);break}return j},{adaptationNodes:[],protections:[]}),v={},E=cl(f.getAttribute("IsLive")),R;if(E){let j=f.getAttribute("DVRWindowLength");j!==null&&!isNaN(+j)&&+j!=0&&(R=+j/I)}let k=T.reduce((j,se)=>{let oe=a({root:se,baseUrl:l,timescale:I,protections:y,isLive:E,timeShiftBufferDepth:R,manifestReceivedTime:c});if(oe===null)return j;let z=oe.type,ae=j[z];return ae===void 0?j[z]=[oe]:ae.push(oe),j},v),A,C,x,N=null,D,L=k.video!==void 0?k.video[0]:void 0,P=k.audio!==void 0?k.audio[0]:void 0,M,O,U;if(L!==void 0||P!==void 0){let j=[],se=[];if(L!==void 0){let oe=L.representations[0];if(oe!==void 0){let z=oe.index.getFirstAvailablePosition(),ae=oe.index.getLastAvailablePosition();_(z)||j.push(z),_(ae)||se.push(ae)}}if(P!==void 0){let oe=P.representations[0];if(oe!==void 0){let z=oe.index.getFirstAvailablePosition(),ae=oe.index.getLastAvailablePosition();_(z)||j.push(z),_(ae)||se.push(ae)}}j.length>0&&(M=Math.max(...j)),se.length>0&&(O=Math.min(...se),U=Math.max(...se))}let H=f.getAttribute("Duration"),q=H!==null&&+H!=0?+H/I:void 0;if(E){A=n.suggestedPresentationDelay,C=e,x=M!=null?M:C;let j=U;j===void 0&&(j=Date.now()/1e3-C);let se=O;se===void 0&&(se=j),D={isLinear:!0,maximumSafePosition:se,livePosition:j,time:V()},N=R!=null?R:null}else{x=M!=null?M:0;let j=O;j===void 0&&(j=q!==void 0?x+q:1/0),D={isLinear:!1,maximumSafePosition:j,livePosition:void 0,time:V()}}let G=E?0:x,K=E?void 0:D.maximumSafePosition,ne={availabilityStartTime:C===void 0?0:C,clockOffset:i,isLive:E,isDynamic:E,isLastPeriodKnown:!0,timeBounds:{minimumSafePosition:x,timeshiftDepth:N,maximumTimeData:D},periods:[{adaptations:k,duration:K!==void 0?K-G:q,end:K,id:"gen-smooth-period-0",start:G}],suggestedPresentationDelay:A,transportType:"smooth",uris:_(u)?[]:[u]};return er(ne),ne}return s}function Ny(n,e){if(n.length!==32)throw new Error("HSS: wrong system id length");return de("pssh",te([0,0,0,0],je(n),ge(e.length),e))}var sm=Ly;var dm=sm;function um(n,e,t,r,i,o,a){return de("avc1",te(6,le(1),16,le(n),le(e),le(t),2,le(r),6,[0,1,i.length],_e(i),31-i.length,le(o),[255,255],a))}function lm(n,e,t,r,i,o,a,s){return de("encv",te(6,le(1),16,le(n),le(e),le(t),2,le(r),6,[0,1,i.length],_e(i),31-i.length,le(o),[255,255],a,s))}function cm(n,e,t,r,i,o){return de("mp4a",te(6,le(n),8,le(e),le(t),2,le(r),le(i),2,o))}function fm(n,e,t,r,i,o,a){return de("enca",te(6,le(n),8,le(e),le(t),2,le(r),le(i),2,o,a))}function mm(n){return de("dref",te(7,[1],n))}function pm(n,e){let t=te(...[_e(n),[0,0,0,1]].concat(e.map(_e)));return de("ftyp",t)}function ga(n,e){return de("schm",te(4,_e(n),ge(e)))}function gm(n){return de("tfdt",te([1,0,0,0],Yt(n)))}function hm(){let n=new Uint8Array(12);return n[3]=1,de("vmhd",n)}function Im(n){return de("trex",te(4,ge(n),[0,0,0,1],12))}function ym(n){return de("free",new Uint8Array(n-8))}function Sm(n,e){return de("esds",te(4,[3,25],le(n),[0,4,17,64,21],11,[5,2],je(e),[6,1,2]))}function ha(n){return de("frma",_e(n))}function bm(n,e,t){let r;t===2?r=1:t===4?r=3:r=0;let i=n[1],o=n[2],a=n[3];return de("avcC",te([1,i,o,a,252|r,225],le(n.length),n,[1],le(e.length),e))}function Tm(n){let e,t;switch(n){case"video":e="vide",t="VideoHandler";break;case"audio":e="soun",t="SoundHandler";break;default:e="hint",t="";break}return de("hdlr",te(8,_e(e),12,_e(t),1))}function _m(n){return de("mdhd",te(12,ge(n),8))}function Em(n,e){return de("mvhd",te(12,ge(n),4,[0,1],2,[1,0],10,[0,1],14,[0,1],14,[64,0,0,0],26,le(e+1)))}function vm(n,e,t,r){return de("saio",te(4,[0,0,0,1],ge(n.length+e.length+t.length+r.length+8+8+8+8)))}function Rm(n){if(n.length===0)return de("saiz",new Uint8Array(0));let e=ee(n,0),t=ee(n,4),r=new Uint8Array(t+9);r.set(ge(t),5);let i=9,o=8,a,s;for(;o<n.length;)o+=8,(e&2)===2?(s=2,a=Ko(n,o),o+=a*6+2):(a=0,s=0),r[i]=a*6+8+s,i++;return de("saiz",r)}function km(){return de("smhd",new Uint8Array(8))}function nr(n){let e=[7,[n.length]];return de("stsd",te(...e.concat(n)))}function Pm(n,e,t){return de("tkhd",te(ge(7),8,ge(t),20,[1,0,0,0],[0,1,0,0],12,[0,1,0,0],12,[64,0,0,0],le(n),2,le(e),2))}function Ia(n,e,t){return de("tenc",te(6,[n,e],t))}function Uy(n,e,t){return Ce("moov",[n,e,t])}function to(n,e,t,r,i,o){let a=Ce("stbl",[t,de("stts",new Uint8Array(8)),de("stsc",new Uint8Array(8)),de("stsz",new Uint8Array(12)),de("stco",new Uint8Array(8))]),s=de("url ",new Uint8Array([0,0,0,1])),d=mm(s),u=Ce("dinf",[d]),c=Ce("minf",[r,u,a]),l=Tm(e),f=_m(n),p=Ce("mdia",[f,l,c]),g=Pm(i,o,1),S=Ce("trak",[g,p]),I=Im(1),y=Ce("mvex",[I]),T=Em(n,1),v=Uy(T,y,S),E=pm("isom",["isom","iso2","iso6","avc1","dash"]);return te(E,v)}var By=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];function fl(n,e,t){let r=By.indexOf(e),i;return i=(n&63)<<4,i=(i|r&31)<<4,i=(i|t&31)<<3,Oe(le(i))}function ya(n,e,t,r,i,o,a){let s=o.length===0?fl(2,i,e):o,d=Sm(1,s),u=(()=>{if(a===void 0){let I=cm(1,e,t,r,i,d);return nr([I])}let c=Ia(1,8,a),l=Ce("schi",[c]),f=ga("cenc",65536),p=ha("mp4a"),g=Ce("sinf",[p,f,l]),S=fm(1,e,t,r,i,d,g);return nr([S])})();return to(n,"audio",u,km(),0,0)}function Sa(n,e,t,r,i,o,a,s){let[,d,u]=a.split("00000001");if(d===void 0||u===void 0)throw new Error("Smooth: unsupported codec private data.");let c=je(d),l=je(u),f=bm(c,l,o),p;if(s===void 0){let g=um(e,t,r,i,"AVC Coding",24,f);p=nr([g])}else{let g=Ia(1,8,s),S=Ce("schi",[g]),I=ga("cenc",65536),y=ha("avc1"),T=Ce("sinf",[y,I,S]),v=lm(e,t,r,i,"AVC Coding",24,f,T);p=nr([v])}return to(n,"video",p,hm(),e,t)}function ba(n){let e=hn(n,3565190898,3392751253,2387879627,2655430559);if(e===void 0)return[];let t=[],r=e[0],i=e[4];for(let o=0;o<i;o++){let a,s;r===1?(s=Ne(e,o*16+5),a=Ne(e,o*16+5+8)):(s=ee(e,o*8+5),a=ee(e,o*8+5+4)),t.push({time:s,duration:a})}return t}function Ta(n){let e=hn(n,1830656773,1121273062,2162299933,2952222642);if(e!==void 0)return{duration:Ne(e,12),time:Ne(e,4)}}function ml(){return!Kt}function pl(n,e,t,r,i){let o=[n,e,t];return i!==void 0&&o.push(de("senc",i),Rm(i),vm(r,n,e,t)),Ce("traf",o)}function _a(n,e){let t=Ue(n,1836019558);if(t===null)throw new Error("Smooth: Invalid ISOBMFF given");let r=n.subarray(t[1],t[2]),i=xs(r,1835427940),o=Ee(r,1953653094);if(o===null||i===null)throw new Error("Smooth: Invalid ISOBMFF given");let a=Ue(o,1952868452),s=Ue(o,1953658222);if(a===null||s===null)throw new Error("Smooth: Invalid ISOBMFF given");let d=o.subarray(a[0],a[2]),u=o.subarray(s[0],s[2]);d.set([0,0,0,1],a[1]-a[0]+4);let c=gm(e),l=Fy(u,s[1]-s[0]),f=hn(o,2721664850,1520127764,2722393154,2086964724),p=pl(d,c,l,i,f),g=Ce("moof",[i,p]),S=Ue(g,1836019558),I=Ue(p,1953653094),y=Ue(l,1953658222);if(S===null||I===null||y===null)throw new Error("Smooth: Invalid moof, trun or traf generation");let T=S[1]-S[0]+i.length+(I[1]-I[0])+d.length+c.length+(y[1]-y[0])+8,v=t[2]-t[0],E=g.length-v,R=Ue(n,1835295092);if(R===null)throw new Error("Smooth: Invalid ISOBMFF given");if(ml()&&(E===0||E<=-8)){let k=R[1];return g.set(ge(k),T),n.set(g,t[0]),E<=-8&&n.set(ym(-E),g.length),n}else{let k=R[1]+E;g.set(ge(k),T);let A=new Uint8Array(n.length+E),C=n.subarray(0,t[0]),x=n.subarray(t[2],n.length);return A.set(C,0),A.set(g,C.length),A.set(x,C.length+g.length),A}}function Fy(n,e){if((n[e+3]&1)>0)return n;let r=new Uint8Array(n.length+4);return r.set(n.subarray(0,e+8),0),r[e+3]=r[e+3]|1,r.set([0,0,0,0],e+8),r.set(n.subarray(e+8,n.length),e+12),Ns(r)}function Ea(n,e,t,r,i){var p;let o=[],a,s,d;if(i){let g=Yr(n);g!==null?(d=ba(g),s=Ta(g)):m.warn("smooth: could not find traf atom")}if(d!==void 0)for(let g=0;g<d.length;g++)o.push({time:d[g].time,duration:d[g].duration,timescale:t});if(s!==void 0)return a={time:s.time/t,duration:s.duration/t},{nextSegments:o,chunkInfos:a,scaledSegmentTime:s.time};if(e||!r.complete)return{nextSegments:o,chunkInfos:null,scaledSegmentTime:void 0};let u=r.duration*t,c=Math.min(t*.9,u/4),l=Zr(n),f=((p=r.privateInfos)==null?void 0:p.smoothMediaSegment)!==void 0?r.privateInfos.smoothMediaSegment.time:Math.round(r.time*t);return l!==void 0&&Math.abs(l-u)<=c?a={time:r.time,duration:l/t}:a={time:r.time,duration:r.duration},{nextSegments:o,chunkInfos:a,scaledSegmentTime:f}}function An(n){return typeof n=="string"&&n.indexOf("mp4")>=0}function Am(n,e,t,r,i,o){let a,s=e.segment.range;return Array.isArray(s)&&(a={Range:We(s)}),be({url:n,responseType:"arraybuffer",headers:a,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i,onProgress:t.onProgress}).then(d=>{if(!An(e.mimeType)||o!==!0)return{resultType:"segment-loaded",resultData:d};let c=new Uint8Array(d.responseData);return Zt(c,e.segment.isInit),{resultType:"segment-loaded",resultData:Se(ce({},d),{responseData:c})}})}var Ky=({checkMediaSegmentIntegrity:n,segmentLoader:e})=>(t,r,i,o,a)=>{let{segment:s}=r;if(s.isInit){if(s.privateInfos===void 0||s.privateInfos.smoothInitSegment===void 0)throw new Error("Smooth: Invalid segment format");let d=s.privateInfos.smoothInitSegment,u,{codecPrivateData:c,timescale:l,height:f,width:p,protection:g={keyId:void 0,keySystems:void 0}}=d;if(c===void 0)throw new Error("Smooth: no codec private data.");switch(r.type){case"video":{u=Sa(l,p!=null?p:0,f!=null?f:0,72,72,4,c,g.keyId);break}case"audio":{let{channels:S=0,bitsPerSample:I=0,packetSize:y=0,samplingRate:T=0}=d;u=ya(l,S,I,y,T,c,g.keyId);break}default:h.CURRENT_ENV===h.DEV&&J(!1,"responseData should have been set"),u=new Uint8Array(0)}return Promise.resolve({resultType:"segment-created",resultData:u})}else return t===null?Promise.resolve({resultType:"segment-created",resultData:null}):typeof e!="function"?Am(t,r,a,i,o,n):new Promise((d,u)=>{let c=!1,S={reject:E=>{var C,x;if(c||o.isCancelled())return;c=!0,o.deregister(v);let R=E,k=(C=R==null?void 0:R.message)!=null?C:"Unknown error when fetching a Smooth segment through a custom segmentLoader.",A=new nt(k,(x=R==null?void 0:R.canRetry)!=null?x:!1,R==null?void 0:R.xhr);u(A)},resolve:E=>{if(c||o.isCancelled())return;c=!0,o.deregister(v),(!An(r.mimeType)||n!==!0)&&d({resultType:"segment-loaded",resultData:{responseData:E.data,size:E.size,requestDuration:E.duration}});let k=E.data instanceof Uint8Array?E.data:new Uint8Array(E.data);Zt(k,r.segment.isInit),d({resultType:"segment-loaded",resultData:{responseData:k,size:E.size,requestDuration:E.duration}})},fallback:()=>{c||o.isCancelled()||(c=!0,o.deregister(v),Am(t,r,a,i,o,n).then(d,u))},progress:E=>{c||o.isCancelled()||a.onProgress({duration:E.duration,size:E.size,totalSize:E.totalSize})}},I;r.segment.range!==void 0&&(I=[r.segment.range],r.segment.indexRange!==void 0&&I.push(r.segment.indexRange));let y={isInit:r.segment.isInit,timeout:i.timeout,byteRanges:I,trackType:r.type,url:t},T=e(y,S);o.register(v);function v(E){c||(c=!0,!c&&typeof T=="function"&&T(),u(E))}})},Cm=Ky;function gl(n,e){return n===null?null:e.url===null?n.baseUrl:Yn(n.baseUrl,e.url)}function Mm(n){let e=dm(n),t=Cm(n),r={customManifestLoader:n.manifestLoader},o={loadManifest:wi(r,"text"),parseManifest(d,u){var y;let c=(y=d.url)!=null?y:u.originalUrl,{receivedTime:l,responseData:f}=d,p=typeof f=="string"?new DOMParser().parseFromString(f,"text/xml"):f,g=e(p,c,l),S=[];return{manifest:new wn(g,{representationFilter:n.representationFilter},S),url:c,warnings:S}}},a={loadSegment(d,u,c,l,f){let p=gl(d,u.segment);return t(p,u,c,l,f)},parseSegment(d,u,c){var R,k;let{segment:l}=u,{data:f,isChunked:p}=d;if(f===null)return l.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let g=f instanceof Uint8Array?f:new Uint8Array(f);if(l.isInit){let A=(k=(R=l.privateInfos)==null?void 0:R.smoothInitSegment)==null?void 0:k.timescale;return{segmentType:"init",initializationData:f,initializationDataSize:f.byteLength,initTimescale:A,protectionData:[]}}let S=c!==void 0?Ea(g,p,c,l,u.isLive):null;if(S===null||S.chunkInfos===null||S.scaledSegmentTime===void 0)throw new Error("Smooth Segment without time information");let{nextSegments:I,chunkInfos:y,scaledSegmentTime:T}=S,v=_a(g,T),E=I.length>0?I:void 0;return{segmentType:"media",chunkData:v,chunkInfos:y,chunkOffset:0,chunkSize:v.length,protectionData:[],predictedSegments:E,appendWindow:[void 0,void 0]}}};return{manifest:o,audio:a,video:a,text:{loadSegment(d,u,c,l,f){let{segment:p}=u,g=gl(d,p);return p.isInit||g===null?Promise.resolve({resultType:"segment-created",resultData:null}):An(u.mimeType)?be({url:g,responseType:"arraybuffer",timeout:c.timeout,connectionTimeout:c.connectionTimeout,cancelSignal:l,onProgress:f.onProgress}).then(I=>{if(n.checkMediaSegmentIntegrity!==!0)return{resultType:"segment-loaded",resultData:I};let y=new Uint8Array(I.responseData);return Zt(y,u.segment.isInit),{resultType:"segment-loaded",resultData:Se(ce({},I),{responseData:y})}}):be({url:g,responseType:"text",timeout:c.timeout,connectionTimeout:c.connectionTimeout,cancelSignal:l,onProgress:f.onProgress}).then(I=>({resultType:"segment-loaded",resultData:I}))},parseSegment(d,u,c){var D;let{segment:l,language:f,mimeType:p="",codecs:g=""}=u,S=An(u.mimeType),{data:I,isChunked:y}=d,T;if(l.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};if(I===null)return{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let v,E=null,R,k,A,C;if(S){let L;typeof I=="string"?L=_e(I):L=I instanceof Uint8Array?I:new Uint8Array(I),T=L.length;let P=c!==void 0?Ea(L,y,c,l,u.isLive):null;v=P==null?void 0:P.nextSegments,E=(D=P==null?void 0:P.chunkInfos)!=null?D:null,E===null?y?m.warn("Smooth: Unavailable time data for current text track."):(R=l.time,k=l.end):(R=E.time,k=E.duration!==void 0?E.time+E.duration:l.end);let M=g.toLowerCase();if(p==="application/ttml+xml+mp4"||M==="stpp"||M==="stpp.ttml.im1t")C="ttml";else if(M==="wvtt")C="vtt";else throw new Error(`could not find a text-track parser for the type ${p}`);let O=$r(L);A=O===null?"":we(O)}else{R=l.time,k=l.end;let L;if(typeof I!="string"){let P=I instanceof Uint8Array?I:new Uint8Array(I);T=P.length,L=we(P)}else L=I;switch(p){case"application/x-sami":case"application/smil":C="sami";break;case"application/ttml+xml":C="ttml";break;case"text/vtt":C="vtt";break}if(C===void 0)if(g.toLowerCase()==="srt")C="srt";else throw new Error(`could not find a text-track parser for the type ${p}`);A=L}let x=Array.isArray(v)&&v.length>0?v:void 0,N=R!=null?R:0;return{segmentType:"media",chunkData:{type:C,data:A,start:R,end:k,language:f},chunkSize:T,chunkInfos:E,chunkOffset:N,protectionData:[],predictedSegments:x,appendWindow:[void 0,void 0]}}}}}var xm=Mm;function hl(n){n.transports.smooth===void 0&&(n.transports.smooth=xm),n.mainThreadMediaSourceInit=bn,n.codecSupportProber=Xo}function wm(){if(!on)return m.warn("Compat: Can't access Firefox version on no firefox browser."),null;let n=navigator.userAgent,e=/Firefox\/([0-9]+)\./.exec(n);if(e===null)return-1;let t=parseInt(e[1],10);return isNaN(t)?-1:t}function Il(){if(!on)return!0;let n=wm();if(n===null||n<67)return!0;let e=HTMLVideoElement==null?void 0:HTMLVideoElement.prototype;return(e==null?void 0:e.requirePictureInPicture)!==void 0}function no(n){let e=n;if(typeof e.getStartDate=="function"){let t=e.getStartDate();if(typeof t=="object"&&t!==null){let r=+t;if(!isNaN(r))return r/1e3}else if(typeof t=="number"&&!isNaN(t))return t}}function yl(){return xa&&typeof Worker=="object"||typeof Worker=="function"}var Cn=class n extends Error{constructor(e,t){super(ut(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="WorkerInitializationError",this.type="WORKER_INITIALIZATION_ERROR",this.code=e}};var Vy=or,Sl=Vy;function va(n,e,t){let r=e(n.getReference(),t);return{getCurrentTime(){return n.getCurrentTime()},getReadyState(){return n.getReadyState()},getPlaybackRate(){return n.getPlaybackRate()},getIsPaused(){return n.getIsPaused()},getReference(){return r},listen(i,o){var a;t.isCancelled()||((a=o==null?void 0:o.clearSignal)==null?void 0:a.isCancelled())===!0||r.onUpdate(i,{clearSignal:o==null?void 0:o.clearSignal,emitCurrentValue:o==null?void 0:o.includeLastObservation})},deriveReadOnlyObserver(i){return va(this,i,t)}}}var zy=["canplay","ended","play","pause","seeking","seeked","loadedmetadata","ratechange"],ro=class{constructor(e,t){this._internalSeeksIncoming=[],this._mediaElement=e,this._withMediaSource=t.withMediaSource,this._lowLatencyMode=t.lowLatencyMode,this._canceller=new F,this._observationRef=this._createSharedReference(),this._expectedSeekingPosition=null,this._pendingSeek=null;let r=()=>{if(this._pendingSeek!==null){let i=this._pendingSeek;this._pendingSeek=null,this._actuallySetCurrentTime(i)}};e.addEventListener("loadedmetadata",r),this._canceller.signal.register(()=>{e.removeEventListener("loadedmetadata",r)})}stop(){this._canceller.cancel()}getCurrentTime(){return this._mediaElement.currentTime}getPlaybackRate(){return this._mediaElement.playbackRate}getIsPaused(){return this._mediaElement.paused}setCurrentTime(e){this._mediaElement.readyState>=1?this._actuallySetCurrentTime(e):(this._internalSeeksIncoming=[],this._pendingSeek=e,this._generateObservationForEvent("manual"))}setPlaybackRate(e){this._mediaElement.playbackRate=e}getReadyState(){return this._mediaElement.readyState}getReference(){return this._observationRef}listen(e,t){var r;if(this._canceller.isUsed()||((r=t==null?void 0:t.clearSignal)==null?void 0:r.isCancelled())===!0)return Q;this._observationRef.onUpdate(e,{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:t==null?void 0:t.includeLastObservation})}deriveReadOnlyObserver(e){return va(this,e,this._canceller.signal)}_actuallySetCurrentTime(e){m.info("API: Seeking internally",e),this._internalSeeksIncoming.push(e),this._mediaElement.currentTime=e}_createSharedReference(){if(this._observationRef!==void 0)return this._observationRef;let{SAMPLING_INTERVAL_MEDIASOURCE:e,SAMPLING_INTERVAL_LOW_LATENCY:t,SAMPLING_INTERVAL_NO_MEDIASOURCE:r}=B.getCurrent(),i=new W(this._getCurrentObservation("init"),this._canceller.signal),o;this._lowLatencyMode?o=t:this._withMediaSource?o=e:o=r;let a=()=>{this._generateObservationForEvent("timeupdate")},s=setInterval(a,o),d=zy.map(c=>{let l=()=>{u(),this._generateObservationForEvent(c)};return this._mediaElement.addEventListener(c,l),()=>{this._mediaElement.removeEventListener(c,l)}});return this._canceller.signal.register(()=>{clearInterval(s),d.forEach(c=>c()),i.finish()}),i;function u(){clearInterval(s),s=setInterval(a,o)}}_getCurrentObservation(e){var T,v;let t=e,r=this._observationRef===void 0?jy(this._mediaElement):this._observationRef.getValue(),i=!1,o=this._pendingSeek,a=Dm(this._mediaElement),{buffered:s,readyState:d,position:u,seeking:c}=a;if(t==="seeking")if(this._internalSeeksIncoming.length>0){i=!0,t="internal-seeking";let E=this._internalSeeksIncoming.shift();this._expectedSeekingPosition=Sl?Math.max(u,E!=null?E:0):u}else this._expectedSeekingPosition=u;else c?this._expectedSeekingPosition=Math.max(u,(T=this._expectedSeekingPosition)!=null?T:0):Sl&&this._expectedSeekingPosition!==null&&u<this._expectedSeekingPosition?o=this._expectedSeekingPosition:this._expectedSeekingPosition=null;c&&r.seeking===1&&e!=="seeking"&&(i=!0);let l=(v=this._expectedSeekingPosition)!=null?v:u,f,p;!this._withMediaSource&&s.length===0&&d>=3?(f=void 0,p=void 0):(f=Na(s,l),p=f!==null?f.end-l:1/0);let g=Wy({previousObservation:r,currentObservation:a,basePosition:l,observationEvent:t,lowLatencyMode:this._lowLatencyMode,withMediaSource:this._withMediaSource,bufferGap:p,currentRange:f}),S=Gy(r,a,t,p),I;i?I=1:c?I=2:I=0;let y=Y({},a,{position:new qn(a.position,o),event:t,seeking:I,rebuffering:g,freezing:S,bufferGap:p,currentRange:f});return m.hasLevel("DEBUG")&&m.debug("API: current media element state tick","event",y.event,"position",y.position.getPolled(),"seeking",y.seeking,"internalSeek",i,"rebuffering",y.rebuffering!==null,"freezing",y.freezing!==null,"ended",y.ended,"paused",y.paused,"playbackRate",y.playbackRate,"readyState",y.readyState,"pendingPosition",o),y}_generateObservationForEvent(e){let t=this._getCurrentObservation(e);m.hasLevel("DEBUG")&&m.debug(`API: current playback timeline:
14
- `+qy(t.buffered,t.position.getPolled()),`
15
- ${e}`),this._observationRef.setValue(t)}};function Om(n,e){if(n===null)return 0;let t=e?"LOW_LATENCY":"DEFAULT",{RESUME_GAP_AFTER_SEEKING:r,RESUME_GAP_AFTER_NOT_ENOUGH_DATA:i,RESUME_GAP_AFTER_BUFFERING:o}=B.getCurrent();switch(n.reason){case"seeking":return r[t];case"not-ready":return i[t];case"buffering":return o[t]}}function Hy(n,e,t,r,i){let{REBUFFERING_GAP:o}=B.getCurrent(),a=i?"LOW_LATENCY":"DEFAULT";return e===void 0?t&&Math.abs(r-n)<=o[a]:e!==null&&r-e.end<=o[a]}function Dm(n){let{buffered:e,currentTime:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}=n;return{buffered:e,position:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}}function Wy({previousObservation:n,currentObservation:e,basePosition:t,observationEvent:r,withMediaSource:i,lowLatencyMode:o,bufferGap:a,currentRange:s}){let{REBUFFERING_GAP:d}=B.getCurrent(),{position:u,duration:c,paused:l,readyState:f,ended:p}=e,{rebuffering:g,event:S,position:I}=n,y=Hy(t,s,p,c,o),T=f>=1&&r!=="loadedmetadata"&&g===null&&!(y||p),v=null,E,R,k=o?d.LOW_LATENCY:d.DEFAULT;if(i){if(T)a===1/0?(E=!0,v=t):a===void 0?f<3&&(E=!0,v=void 0):a<=k&&(E=!0,v=t+a);else if(g!==null){let A=Om(g,o);E!==!0&&g!==null&&f>1&&(y||p||a!==void 0&&isFinite(a)&&a>A)||a===void 0&&f>=3?R=!0:a===void 0?v=void 0:a===1/0?v=t:a<=A&&(v=t+a)}}else T&&(!l&&r==="timeupdate"&&S==="timeupdate"&&u===I.getPolled()||r==="seeking"&&(a===1/0||a===void 0&&f<3))?E=!0:g!==null&&(r!=="seeking"&&u!==I.getPolled()||r==="canplay"||a===void 0&&f>=3||a!==void 0&&a<1/0&&(a>Om(g,o)||y||p))&&(R=!0);if(R===!0)return null;if(E===!0||g!==null){let A;return r==="seeking"||g!==null&&g.reason==="seeking"||e.seeking?A="seeking":f===1?A="not-ready":A="buffering",g!==null&&g.reason===A?{reason:g.reason,timestamp:g.timestamp,position:v}:{reason:A,timestamp:V(),position:v}}return null}function Gy(n,e,t,r){let{MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:i}=B.getCurrent();return n.freezing?e.ended||e.paused||e.readyState===0||e.playbackRate===0||n.position.getPolled()!==e.position?null:n.freezing:t==="timeupdate"&&r!==void 0&&r>i&&!e.ended&&!e.paused&&e.readyState>=1&&e.playbackRate!==0&&e.position===n.position.getPolled()?{timestamp:V()}:null}function qy(n,e){let t="",r="";for(let i=0;i<n.length;i++){let o=n.start(i),a=n.end(i),s=o.toFixed(2),d=a.toFixed(2),u=(a-o).toFixed(2),c=`${s}|==${u}==|${d}`;if(t+=c,r.length===0&&a>e){let l=t.length-Math.floor(c.length/2);r=" ".repeat(l)+`^${e}`}if(i<n.length-1){let l=n.start(i+1),p=` ~${(l-a).toFixed(2)}~ `;if(t+=p,r.length===0&&e<l){let g=t.length-Math.floor(p.length/2);r=" ".repeat(g)+`^${e}`}}}return r.length===0&&(r=" ".repeat(t.length)+`^${e}`),t+`
16
- `+r}function jy(n){let e=Dm(n);return Y(e,{rebuffering:null,event:"init",seeking:0,position:new qn(e.position,null),freezing:null,bufferGap:0,currentRange:null})}var io=class extends ie{constructor(e){super(),this._canceller=new F,this._adaptationRef=e,this._updateToken=!1,this.refresh=Q}start(e){if(this._updateToken=!0,e===null){this._lastEmitted=null,this._updateToken=!1,this._adaptationRef.setValue(null);return}let t=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:e.adaptation,switchingMode:e.switchingMode,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:e.adaptation.id,switchingMode:e.switchingMode,representations:t,relativeResumingPosition:void 0}))}updateTrack(e){if(this._updateToken=!0,e===null){if(this._lastEmitted===null)return;this._updateToken=!1,this._canceller.cancel(),this._canceller=new F,this._lastEmitted=null,this._adaptationRef.setValue(null);return}let{adaptation:t,switchingMode:r,relativeResumingPosition:i}=e;this._canceller.cancel(),this._canceller=new F;let o=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:t,switchingMode:r,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:t.id,switchingMode:r,representations:o,relativeResumingPosition:i}))}_constructLockedRepresentationsReference(e){let t=new W({representationIds:[],switchingMode:"lazy"}),r=this;return this.refresh=i,this._canceller.signal.register(o),e.lockedRepresentations.onUpdate(i,{clearSignal:this._canceller.signal,emitCurrentValue:!1}),i(),t;function i(){let a=e.lockedRepresentations.getValue(),s,d;if(a===null)d=e.adaptation.representations.filter(l=>l.isSupported===!0&&l.decipherable!==!1),s="lazy";else{let{representationIds:l}=a;if(s=a.switchingMode,d=e.adaptation.representations.filter(p=>$(l,p.id)).filter(p=>p.isSupported===!0&&p.decipherable!==!1),d.length===0){r.trigger("noPlayableLockedRepresentation",null);return}}if(d.length<=0){e.adaptation.isSupported=!1,r.trigger("noPlayableRepresentation",null);return}let u=t.getValue(),c=d.map(l=>l.id).slice().sort();if(c.length!==u.representationIds.length){t.setValue({representationIds:c,switchingMode:s});return}for(let l=0;l<c.length;l++)if(u.representationIds[l]!==c[l]){t.setValue({representationIds:c,switchingMode:s});return}}function o(){r.refresh=Q}}dispose(){this.removeEventListener(),this._canceller.cancel(),this._adaptationRef.finish()}};var oo=class extends ie{constructor(e){var t;super(),this._storedPeriodInfo=[],this._isDisposed=!1,this._cachedPeriodInfo=new WeakMap,this._isTrickModeTrackEnabled=e.preferTrickModeTracks,this._defaultAudioTrackSwitchingMode=(t=e.defaultAudioTrackSwitchingMode)!=null?t:B.getCurrent().DEFAULT_AUDIO_TRACK_SWITCHING_MODE}getAvailablePeriods(){return this._storedPeriodInfo.reduce((e,t)=>(t.isPeriodAdvertised&&e.push(Lt(t.period)),e),[])}onManifestUpdate(e){var a,s,d,u,c,l;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:t}=B.getCurrent(),{periods:r}=e;if(h.CURRENT_ENV===h.DEV)for(let f=1;f<r.length;f++)J(r[f-1].start<=r[f].start);let i=[],o=0;for(let f=0;f<this._storedPeriodInfo.length;f++){let p=this._storedPeriodInfo[f].period,g=r[o];if(g===void 0)for(let S=this._storedPeriodInfo.length-1;S>=f;S--)this._storedPeriodInfo[S].inManifest=!1,bl(this._storedPeriodInfo[S])&&this._removePeriodObject(S);else if(p===g){o++;let S=this._storedPeriodInfo[f].text.storedSettings;if(S!==null&&!lt(g,"text").some(E=>E.id===S.adaptation.id)){m.warn("TS: Chosen text Adaptation not available anymore");let E=this._storedPeriodInfo[f];if(E.text.storedSettings=null,this.trigger("trackUpdate",{period:Lt(g),trackType:"text",reason:"missing"}),this._isDisposed)return;let R=dt(this._storedPeriodInfo,E.period.id);R!==void 0&&R.text.storedSettings===null&&((a=R.text.dispatcher)==null||a.updateTrack(null))}let I=this._storedPeriodInfo[f].video.storedSettings;if(I!==null){let T=lt(g,"video");if(!T.some(E=>E.id===I.adaptation.id)){m.warn("TS: Chosen video Adaptation not available anymore");let E=this._storedPeriodInfo[f],R;if(T.length===0)R=null;else{let A=T[0],C=Ra(A,this._isTrickModeTrackEnabled),x=new W(null);R={adaptationBase:A,adaptation:C,switchingMode:t,lockedRepresentations:x}}if(E.video.storedSettings=R,this.trigger("trackUpdate",{period:Lt(g),trackType:"video",reason:"missing"}),this._isDisposed)return;let k=dt(this._storedPeriodInfo,E.period.id);k!==void 0&&k.video.storedSettings===R&&((s=k.video.dispatcher)==null||s.updateTrack(R))}}let y=this._storedPeriodInfo[f].audio.storedSettings;if(y!==null){let T=lt(g,"audio");if(!T.some(E=>E.id===y.adaptation.id)){m.warn("TS: Chosen audio Adaptation not available anymore");let E=this._storedPeriodInfo[f],R=T.length===0?null:{adaptation:T[0],switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new W(null)};if(E.audio.storedSettings=R,this.trigger("trackUpdate",{period:Lt(g),trackType:"audio",reason:"missing"}),this._isDisposed)return;let k=dt(this._storedPeriodInfo,E.period.id);k!==void 0&&k.audio.storedSettings===R&&((d=k.audio.dispatcher)==null||d.updateTrack(R))}}}else if(p.start<=g.start)this._storedPeriodInfo[f].inManifest=!1,bl(this._storedPeriodInfo[f])&&(this._removePeriodObject(f),f--);else{let S=Tl(g,!0,this._isTrickModeTrackEnabled,this._defaultAudioTrackSwitchingMode);this._storedPeriodInfo.splice(f,0,S),i.push(S),o++}}if(o<r.length){let f=r.slice(o).map(p=>Tl(p,!0,this._isTrickModeTrackEnabled,this._defaultAudioTrackSwitchingMode));this._storedPeriodInfo.push(...f),i.push(...f)}for(let f of this._storedPeriodInfo)(u=f.audio.dispatcher)==null||u.refresh(),(c=f.video.dispatcher)==null||c.refresh(),(l=f.text.dispatcher)==null||l.refresh()}onDecipherabilityUpdates(){var e,t,r;for(let i of this._storedPeriodInfo)(e=i.audio.dispatcher)==null||e.refresh(),(t=i.video.dispatcher)==null||t.refresh(),(r=i.text.dispatcher)==null||r.refresh()}addTrackReference(e,t,r){let i=dt(this._storedPeriodInfo,t.id);if(i===void 0){i=Tl(t,!1,this._isTrickModeTrackEnabled,this._defaultAudioTrackSwitchingMode);let s=!1;for(let d=0;d<this._storedPeriodInfo.length;d++)this._storedPeriodInfo[d].period.start>t.start&&(this._storedPeriodInfo.splice(d,0,i),s=!0);s||this._storedPeriodInfo.push(i)}if(!i.isPeriodAdvertised&&(i.isPeriodAdvertised=!0,this.trigger("newAvailablePeriods",[{id:t.id,start:t.start,end:t.end}]),this._isDisposed))return;if(i[e].dispatcher!==null){m.error(`TS: Subject already added for ${e} and Period ${t.start}`);return}let o=i[e].storedSettings,a=new io(r);i[e].dispatcher=a,a.addEventListener("noPlayableRepresentation",()=>{var l,f,p,g;let s=X((l=t.adaptations[e])!=null?l:[],S=>S.isSupported===!1?!1:S.representations.filter(y=>y.isSupported===!0&&y.decipherable!==!1).length>0);if(s===void 0){let S=new Z("NO_PLAYABLE_REPRESENTATION",`No ${e} Representation can be played`,{tracks:void 0});this.trigger("error",S),this.dispose();return}let d=(f=dt(this._storedPeriodInfo,t.id))==null?void 0:f[e];if(_(d))return;let u=e==="audio"?this._defaultAudioTrackSwitchingMode:"reload",c={adaptation:s,switchingMode:u,lockedRepresentations:new W(null)};d.storedSettings=c,this.trigger("trackUpdate",{period:Lt(t),trackType:e,reason:"no-playable-representation"}),!this._isDisposed&&(d=(p=dt(this._storedPeriodInfo,t.id))==null?void 0:p[e],!(_(d)||d.storedSettings!==c)&&((g=d.dispatcher)==null||g.updateTrack(c)))}),a.addEventListener("noPlayableLockedRepresentation",()=>{o==null||o.lockedRepresentations.setValue(null),this.trigger("brokenRepresentationsLock",{period:{id:t.id,start:t.start,end:t.end},trackType:e})}),a.start(o)}removeTrackReference(e,t){let r=Yy(this._storedPeriodInfo,t);if(r===void 0){m.warn(`TS: ${e} not found for period`,t.start);return}let i=this._storedPeriodInfo[r],o=i[e];if((o==null?void 0:o.dispatcher)===null){m.warn(`TS: TrackDispatcher already removed for ${e} and Period ${t.start}`);return}o.dispatcher.dispose(),o.dispatcher=null,bl(i)&&this._removePeriodObject(r)}getPeriodObjectFromPeriod(e){let t=dt(this._storedPeriodInfo,e.id);return t===void 0&&e!==void 0?this._cachedPeriodInfo.get(e):t}getPeriodObjectFromId(e){return dt(this._storedPeriodInfo,e)}disableVideoTrickModeTracks(){this._isTrickModeTrackEnabled&&(this._isTrickModeTrackEnabled=!1,this._resetVideoTrackChoices("trickmode-disabled"))}enableVideoTrickModeTracks(){this._isTrickModeTrackEnabled||(this._isTrickModeTrackEnabled=!0,this._resetVideoTrackChoices("trickmode-enabled"))}resetPeriodObjects(){var e,t,r;for(let i=this._storedPeriodInfo.length-1;i>=0;i--){let o=this._storedPeriodInfo[i];(e=o.audio.dispatcher)==null||e.dispose(),o.audio.dispatcher=null,(t=o.video.dispatcher)==null||t.dispose(),o.video.dispatcher=null,(r=o.text.dispatcher)==null||r.dispose(),o.text.dispatcher=null,o.inManifest||this._removePeriodObject(i)}}isTrickModeEnabled(){return this._isTrickModeTrackEnabled}setAudioTrack(e){let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;return this._setAudioOrTextTrack({bufferType:"audio",periodRef:t,trackId:r,switchingMode:i!=null?i:this._defaultAudioTrackSwitchingMode,lockedRepresentations:o,relativeResumingPosition:a})}setTextTrack(e,t){return this._setAudioOrTextTrack({bufferType:"text",periodRef:e,trackId:t,switchingMode:"direct",lockedRepresentations:null,relativeResumingPosition:void 0})}_setAudioOrTextTrack({bufferType:e,periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}){var p,g;let s=t.period,d=X((p=s.adaptations[e])!=null?p:[],({id:S,isSupported:I})=>I===!0&&S===r);if(d===void 0)throw new Error(`Wanted ${e} track not found.`);let u=t[e],c;if(o===null)c=new W(null);else{let S=this._getRepresentationsToLock(d,o),I=e==="audio"?this._defaultAudioTrackSwitchingMode:"direct";c=new W({representationIds:S,switchingMode:I})}let l={adaptation:d,switchingMode:i,lockedRepresentations:c,relativeResumingPosition:a};if(u.storedSettings=l,this.trigger("trackUpdate",{period:Lt(s),trackType:e,reason:"manual"}),this._isDisposed)return;let f=dt(this._storedPeriodInfo,s.id);f!==void 0&&f[e].storedSettings===l&&((g=f[e].dispatcher)==null||g.updateTrack(l))}setVideoTrack(e){var S,I;let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e,s=t.period,d=X((S=s.adaptations.video)!=null?S:[],({id:y,isSupported:T})=>T===!0&&y===r);if(d===void 0)throw new Error("Wanted video track not found.");let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:u}=B.getCurrent(),c=t.video,l=Ra(d,this._isTrickModeTrackEnabled),f;if(o===null)f=new W(null);else{let y=this._getRepresentationsToLock(d,o),T=u;f=new W({representationIds:y,switchingMode:T})}let p={adaptationBase:d,switchingMode:i!=null?i:u,adaptation:l,relativeResumingPosition:a,lockedRepresentations:f};if(c.storedSettings=p,this.trigger("trackUpdate",{period:Lt(s),trackType:"video",reason:"manual"}),this._isDisposed)return;let g=dt(this._storedPeriodInfo,s.id);g!==void 0&&g.video.storedSettings===p&&((I=g.video.dispatcher)==null||I.updateTrack(p))}disableTrack(e,t){var o,a;let r=e[t];if(r.storedSettings===null||(t!=="text"&&((o=e[t].storedSettings)==null||o.lockedRepresentations.finish()),r.storedSettings=null,this.trigger("trackUpdate",{period:Lt(e.period),trackType:t,reason:"manual"}),this._isDisposed))return;let i=dt(this._storedPeriodInfo,e.period.id);i!==void 0&&i[t].storedSettings===null&&((a=i[t].dispatcher)==null||a.updateTrack(null))}getChosenAudioTrack(e){return e.audio.storedSettings===null?null:Io(e.audio.storedSettings.adaptation,!0)}getChosenTextTrack(e){return e.text.storedSettings===null?null:yo(e.text.storedSettings.adaptation)}getChosenVideoTrack(e){return e.video.storedSettings===null?null:So(e.video.storedSettings.adaptation,!0)}getAvailableAudioTracks(e){let t=e.audio.storedSettings,r=t!==null?t.adaptation.id:null;return lt(e.period,"audio").map(o=>{let a=r===null?!1:r===o.id;return Y(Io(o,!0),{active:a})})}getAvailableTextTracks(e){let t=e.text.storedSettings,r=t!==null?t.adaptation.id:null;return lt(e.period,"text").map(o=>{let a=r===null?!1:r===o.id;return Y(yo(o),{active:a})})}getAvailableVideoTracks(e){let t=e.video.storedSettings,r=t===null?void 0:t.adaptation.id;return lt(e.period,"video").map(o=>{let a=r===null?!1:r===o.id,s=So(o,!0),d=s.trickModeTracks!==void 0?s.trickModeTracks.map(c=>{let l=r===null?!1:r===c.id;return Y(c,{active:l})}):[],u=Y(s,{active:a});return d!==void 0&&(u.trickModeTracks=d),u})}getLockedAudioRepresentations(e){let{storedSettings:t}=e.audio;if(t===null)return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}getLockedVideoRepresentations(e){let{storedSettings:t}=e.video;if(t===null)return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}lockAudioRepresentations(e,t){var s;let{storedSettings:r}=e.audio;if(r===null)return;let{DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:i}=B.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}lockVideoRepresentations(e,t){var s;let{storedSettings:r}=e.video;if(r===null)return;let{DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:i}=B.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}unlockAudioRepresentations(e){let{storedSettings:t}=e.audio;t===null||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}unlockVideoRepresentations(e){let{storedSettings:t}=e.video;t===null||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}dispose(){for(this._isDisposed=!0;;){let e=this._storedPeriodInfo.pop();if(e===void 0)return;e.isRemoved=!0}}_resetVideoTrackChoices(e){var r;for(let i=0;i<this._storedPeriodInfo.length;i++){let o=this._storedPeriodInfo[i];if(o.video.storedSettings!==null){let a=o.video.storedSettings.adaptationBase;if(a!==null){let s=Ra(a,this._isTrickModeTrackEnabled);o.video.storedSettings.adaptationBase=a,o.video.storedSettings.adaptation=s}}}let t=this._storedPeriodInfo.slice();for(let i=0;i<t.length;i++){let o=t[i].period,s=t[i].video.storedSettings;if(this.trigger("trackUpdate",{period:Lt(o),trackType:"video",reason:e}),this._isDisposed)return;let d=dt(this._storedPeriodInfo,o.id);d!==void 0&&d.video.storedSettings===s&&((r=d.video.dispatcher)==null||r.updateTrack(s))}}_removePeriodObject(e){h.CURRENT_ENV===h.DEV&&J(e<this._storedPeriodInfo.length,"Invalid index for Period removal");let t=this._storedPeriodInfo[e];this._storedPeriodInfo[e].isRemoved=!0,this._storedPeriodInfo.splice(e,1),this._cachedPeriodInfo.set(t.period,t)}_getRepresentationsToLock(e,t){let r=t.reduce((i,o)=>{let a=X(e.representations,s=>s.id===o);return a===void 0?m.warn("API: Wanted locked Representation not found."):i.push(a.id),i},[]);if(r.length===0)throw new Error("Cannot lock Representations: None of the given Representation id are found");return r}};function Yy(n,e){for(let t=0;t<n.length;t++)if(n[t].period.id===e.id)return t}function dt(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.period.id===e)return r}}function bl(n){var e,t,r;return!n.inManifest&&((e=n.text)==null?void 0:e.dispatcher)===null&&((t=n.audio)==null?void 0:t.dispatcher)===null&&((r=n.video)==null?void 0:r.dispatcher)===null}function Ra(n,e){var t;return e&&((t=n.trickModeTracks)==null?void 0:t[0])!==void 0?n.trickModeTracks[0]:n}function Tl(n,e,t,r){var p,g;let i=lt(n,"audio")[0],o=lt(n,"video")[0],a=Ra(o,t),{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:s}=B.getCurrent(),d=i!==void 0?{adaptation:i,switchingMode:r,lockedRepresentations:new W(null)}:null,u=a!==void 0?{adaptation:a,adaptationBase:o,switchingMode:s,lockedRepresentations:new W(null)}:null,c=null,l=((p=n.adaptations.text)!=null?p:[]).filter(S=>S.isForcedSubtitles===!0);if(l.length>0){if(i!=null){let S=X(l,I=>I.normalizedLanguage===i.normalizedLanguage);S!==void 0&&(c=S)}c===null&&(c=(g=X(l,S=>S.normalizedLanguage===void 0))!=null?g:null)}let f=null;return c!==null&&(f={adaptation:c,switchingMode:"direct",lockedRepresentations:new W(null)}),{period:n,inManifest:e,isPeriodAdvertised:!1,isRemoved:!1,audio:{storedSettings:d,dispatcher:null},video:{storedSettings:u,dispatcher:null},text:{storedSettings:f,dispatcher:null}}}function Lt(n){return{start:n.start,end:n.end,id:n.id}}var Lm=oo;function Nm(n){let e,t,r,i,o,a,{DEFAULT_BASE_BANDWIDTH:s,DEFAULT_VIDEO_RESOLUTION_LIMIT:d,DEFAULT_MAX_BUFFER_AHEAD:u,DEFAULT_MAX_BUFFER_BEHIND:c,DEFAULT_MAX_VIDEO_BUFFER_SIZE:l,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:f,DEFAULT_WANTED_BUFFER_AHEAD:p}=B.getCurrent();if(_(n.maxBufferAhead))e=u;else if(e=Number(n.maxBufferAhead),isNaN(e))throw new Error("Invalid maxBufferAhead parameter. Should be a number.");if(_(n.maxBufferBehind))t=c;else if(t=Number(n.maxBufferBehind),isNaN(t))throw new Error("Invalid maxBufferBehind parameter. Should be a number.");if(_(n.wantedBufferAhead))r=p;else if(r=Number(n.wantedBufferAhead),isNaN(r))throw new Error("Invalid wantedBufferAhead parameter. Should be a number.");if(_(n.maxVideoBufferSize))i=l;else if(i=Number(n.maxVideoBufferSize),isNaN(i))throw new Error("Invalid maxVideoBufferSize parameter. Should be a number.");let g=_(n.videoResolutionLimit)?d:n.videoResolutionLimit,S=_(n.throttleVideoBitrateWhenHidden)?f:!!n.throttleVideoBitrateWhenHidden;if(_(n.videoElement))o=document.createElement("video");else if(n.videoElement instanceof HTMLMediaElement)o=n.videoElement;else throw new Error("Invalid videoElement parameter. Should be a HTMLMediaElement.");if(_(n.baseBandwidth))a=s;else if(a=Number(n.baseBandwidth),isNaN(a))throw new Error("Invalid baseBandwidth parameter. Should be a number.");return{maxBufferAhead:e,maxBufferBehind:t,videoResolutionLimit:g,videoElement:o,wantedBufferAhead:r,maxVideoBufferSize:i,throttleVideoBitrateWhenHidden:S,baseBandwidth:a}}function Um(n){var e,t,r,i;if(n===null||typeof n!="object"&&n!==void 0)throw new Error("API: reload - Invalid options format.");if((n==null?void 0:n.reloadAt)===null||typeof(n==null?void 0:n.reloadAt)!="object"&&(n==null?void 0:n.reloadAt)!==void 0)throw new Error("API: reload - Invalid 'reloadAt' option format.");if(typeof((e=n==null?void 0:n.reloadAt)==null?void 0:e.position)!="number"&&((t=n==null?void 0:n.reloadAt)==null?void 0:t.position)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.position' option format.");if(typeof((r=n==null?void 0:n.reloadAt)==null?void 0:r.relative)!="number"&&((i=n==null?void 0:n.reloadAt)==null?void 0:i.relative)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");if(!Array.isArray(n==null?void 0:n.keySystems)&&(n==null?void 0:n.keySystems)!==void 0)throw new Error("API: reload - Invalid 'keySystems' option format.");if((n==null?void 0:n.autoPlay)!==void 0&&typeof n.autoPlay!="boolean")throw new Error("API: reload - Invalid 'autoPlay' option format.")}function Bm(n){var E,R,k;let e,t,r,i,o,a,s,{DEFAULT_AUTO_PLAY:d,DEFAULT_CODEC_SWITCHING_BEHAVIOR:u,DEFAULT_ENABLE_FAST_SWITCHING:c,DEFAULT_TEXT_TRACK_MODE:l}=B.getCurrent();if(_(n))throw new Error("No option set on loadVideo");if(!_(n.url))e=String(n.url);else if(_(n.initialManifest)&&_(n.manifestLoader))throw new Error("Unable to load a content: no url set on loadVideo.\nPlease provide at least either an `url` argument, a `initialManifest` option or a `manifestLoader` option so the RxPlayer can load the content.");if(_(n.transport))throw new Error("No transport set on loadVideo");t=String(n.transport);let f=_(n.autoPlay)?d:!!n.autoPlay;if(_(n.keySystems))r=[];else{r=Array.isArray(n.keySystems)?n.keySystems:[n.keySystems];for(let A of r)if(typeof A.type!="string"||typeof A.getLicense!="function")throw new Error("Invalid key system given: Missing type string or getLicense callback")}let p=n.lowLatencyMode===void 0?!1:!!n.lowLatencyMode,g=n.initialManifest,S=(E=n.minimumManifestUpdateInterval)!=null?E:0,I=(R=n.defaultAudioTrackSwitchingMode)!=null?R:void 0;I!==void 0&&!$(["seamless","direct","reload"],I)&&(m.warn("The `defaultAudioTrackSwitchingMode` loadVideo option must match one of the following strategy name:\n- `seamless`\n- `direct`\n- `reload`"),I=void 0);let y=_(n.onCodecSwitch)?u:n.onCodecSwitch;if($(["continue","reload"],y)||(m.warn("The `onCodecSwitch` loadVideo option must match one of the following string:\n- `continue`\n- `reload`\nIf badly set, "+u+" will be used as default"),y=u),_(n.textTrackMode))i=l;else{if(n.textTrackMode!=="native"&&n.textTrackMode!=="html")throw new Error("Invalid textTrackMode.");i=n.textTrackMode}if(i==="html"){if(_(n.textTrackElement))throw new Error('You have to provide a textTrackElement in "html" textTrackMode.');if(n.textTrackElement instanceof HTMLElement)a=n.textTrackElement;else throw new Error("textTrackElement should be an HTMLElement.")}else _(n.textTrackElement)||m.warn('API: You have set a textTrackElement without being in an "html" textTrackMode. It will be ignored.');if(_(n.mode))o="auto";else{if(!$(["auto","multithread","main"],n.mode))throw new Error("Invalid `mode` option.");o=n.mode}let T=_(n.enableFastSwitching)?c:n.enableFastSwitching;if(!_(n.startAt))if("wallClockTime"in n.startAt&&n.startAt.wallClockTime instanceof Date){let A=n.startAt.wallClockTime.getTime()/1e3;s=Y({},n.startAt,{wallClockTime:A})}else s=n.startAt;let v=(k=n.requestConfig)!=null?k:{};return{__priv_patchLastSegmentInSidx:n.__priv_patchLastSegmentInSidx,__priv_manifestUpdateUrl:n.__priv_manifestUpdateUrl,checkMediaSegmentIntegrity:n.checkMediaSegmentIntegrity,autoPlay:f,defaultAudioTrackSwitchingMode:I,enableFastSwitching:T,initialManifest:g,keySystems:r,lowLatencyMode:p,manifestLoader:n.manifestLoader,minimumManifestUpdateInterval:S,requestConfig:v,onCodecSwitch:y,referenceDateTime:n.referenceDateTime,representationFilter:n.representationFilter,segmentLoader:n.segmentLoader,serverSyncInfos:n.serverSyncInfos,startAt:s,textTrackElement:a,textTrackMode:i,transport:t,mode:o,url:e}}function Fm(n,e,t,r,i){if(i.isCancelled()||n===null)return;let o=e.getReference().getValue().seeking===2;o&&(t(),i.isCancelled())||e.listen(a=>{a.event==="seeking"?(o=!0,t()):o&&a.event==="seeked"&&(o=!1,r())},{includeLastObservation:!0,clearSignal:i})}function Km(n,e,t,r){r.isCancelled()||n===null||(n.addEventListener("play",e),n.addEventListener("pause",t),r.register(()=>{n.removeEventListener("play",e),n.removeEventListener("pause",t)}))}function Vm(n,e,t,r){let i=new W("LOADING",r);n.addEventListener("loaded",()=>{if(i.getValue()==="LOADING"){if(i.setValue("LOADED"),!r.isCancelled()){let s=_l(e,null);s!=="PAUSED"&&i.setValue(s)}}else i.getValue()==="RELOADING"?i.setValue(_l(e,null)):a(null)},r),n.addEventListener("reloadingMediaSource",()=>{rr(i.getValue())&&i.setValueIfChanged("RELOADING")},r);let o=null;return n.addEventListener("stalled",s=>{s!==o&&(a(s),o=s)},r),n.addEventListener("unstalled",()=>{o!==null&&(a(null),o=null)},r),t.listen(s=>{$(["seeking","ended","play","pause"],s.event)&&a(o)},{clearSignal:r}),i;function a(s){if(!rr(i.getValue()))return;let d=_l(e,s);i.getValue()==="LOADED"&&d==="PAUSED"||i.setValueIfChanged(d)}}function _l(n,e){let{FORCED_ENDED_THRESHOLD:t}=B.getCurrent();if(n.ended)return"ENDED";if(e!==null){let r=Math.abs(n.duration-n.currentTime);return!_(t)&&r<t?"ENDED":e==="seeking"?"SEEKING":e==="freezing"?"FREEZING":"BUFFERING"}return n.paused?"PAUSED":"PLAYING"}function rr(n){return n!=="LOADING"&&n!=="RELOADING"&&n!=="STOPPED"}var $y=Je(),Qy=["manifestLoader","segmentLoader"],Nt=class Nt extends ie{static get ErrorTypes(){return Ze}static get ErrorCodes(){return Wa}static get LogLevel(){return m.getLevel()}static set LogLevel(e){m.setLevel(e)}static addFeatures(e){go(e)}static _priv_registerVideoElement(e){Nt._priv_currentlyUsedVideoElements.has(e)&&console.warn(`The video element is already attached to another RxPlayer instance.
17
- Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Nt._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Nt._priv_currentlyUsedVideoElements.has(e)&&Nt._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=Nm(e);s.preload="auto",this.version="4.1.0",this.log=m,this.state="STOPPED",this.videoElement=s,Nt._priv_registerVideoElement(this.videoElement);let c=new F;this._destroyCanceller=c,this._priv_pictureInPictureRef=Tc(s,c.signal),this._priv_speed=new W(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new W(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new W(d,this._destroyCanceller.signal),maxBufferAhead:new W(i,this._destroyCanceller.signal),maxBufferBehind:new W(o,this._destroyCanceller.signal),maxVideoBufferSize:new W(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null,this._priv_segmentSinkMetricsCallback=null;let l=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",l),c.signal.register(()=>{s.removeEventListener("volumechange",l)})}attachWorker(e){return new Promise((t,r)=>{var o;if(!yl())return m.warn("API: Cannot rely on a WebWorker: Worker API unavailable"),r(new Cn("INCOMPATIBLE_ERROR","Worker unavailable"));if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let a=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(a),URL.revokeObjectURL(a)}this._priv_worker.onerror=a=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API: Unexpected worker error",a.error instanceof Error?a.error:void 0),r(new Cn("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=a=>{let s=a.data;s.type==="init-error"?(m.warn("API: Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new Cn("SETUP_ERROR","Worker parser initialization failed: "+s.value.errorMessage))):s.type==="init-success"&&(m.info("API: InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("---> Sending To Worker:","init"),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),sendBackLogs:Mn(),date:Date.now(),timestamp:V(),hasVideo:((o=this.videoElement)==null?void 0:o.nodeName.toLowerCase())==="video",hasMseInWorker:Mf}}),m.addEventListener("onLogLevelChange",a=>{this._priv_worker!==null&&(m.debug("---> Sending To Worker:","log-level-update"),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:a,sendBackLogs:Mn()}}))},this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Nt._priv_deregisterVideoElement(this.videoElement),Nn(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API: Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=Bm(e);m.info("API: Calling loadvideo",t.url,t.transport),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var c,l,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");Um(e);let a;if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.position)!==void 0)a={position:e.reloadAt.position};else if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=Se(ce({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(ue.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new F;return ue.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}_priv_initializeContentPlayback(e){var G,K,ne,j,se,oe;let{autoPlay:t,defaultAudioTrackSwitchingMode:r,enableFastSwitching:i,initialManifest:o,keySystems:a,lowLatencyMode:s,minimumManifestUpdateInterval:d,requestConfig:u,onCodecSwitch:c,startAt:l,transport:f,checkMediaSegmentIntegrity:p,manifestLoader:g,referenceDateTime:S,segmentLoader:I,serverSyncInfos:y,mode:T,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E,url:R}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let k=f==="directfile",A=new F,C=this.videoElement,x,N=!1,D=null;if(k){if(ue.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(_(R))throw new Error("No URL for a DirectFile content");if(m.info("API: Initializing DirectFile mode in the main thread"),D=this._priv_initializeMediaElementTracksStore(A.signal),A.isUsed())return;x=new ue.directfile.initDirectFile({autoPlay:t,keySystems:a,speed:this._priv_speed,startAt:l,url:R})}else{let z={lowLatencyMode:s,maxRetry:(G=u.manifest)==null?void 0:G.maxRetry,requestTimeout:(K=u.manifest)==null?void 0:K.timeout,connectionTimeout:(ne=u.manifest)==null?void 0:ne.connectionTimeout,minimumManifestUpdateInterval:d,initialManifest:o},ae=Il(),$e={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ae?$e.throttleBitrate={video:dn(_c(this._priv_pictureInPictureRef,A.signal),Ke=>Ke?1/0:0,A.signal)}:m.warn("API: Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ae?$e.limitResolution={video:vc(C,this._priv_pictureInPictureRef,A.signal)}:m.warn("API: Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&($e.limitResolution={video:Ec(A.signal)});let ye={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:s,throttlers:$e},Re=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},Ut=Y({enableFastSwitching:i,onCodecSwitch:c},this._priv_bufferOptions),Qe={lowLatencyMode:s,maxRetry:(j=u.segment)==null?void 0:j.maxRetry,requestTimeout:(se=u.segment)==null?void 0:se.timeout,connectionTimeout:(oe=u.segment)==null?void 0:oe.connectionTimeout},Fe=ue.multithread!==null&&this._priv_worker!==null&&f==="dash"&&Qy.every(Ke=>_(e[Ke]))&&typeof e.representationFilter!="function";if(T==="main"||T==="auto"&&!Fe){if(ue.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Ke=ue.transports[f];if(typeof Ke!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${f}" not supported`);let gt=typeof e.representationFilter=="string"?Jl(e.representationFilter):e.representationFilter;m.info("API: Initializing MediaSource mode in the main thread");let ht=Ke({lowLatencyMode:s,checkMediaSegmentIntegrity:p,manifestLoader:g,referenceDateTime:S,representationFilter:gt,segmentLoader:I,serverSyncInfos:y,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E});x=new ue.mainThreadMediaSourceInit({adaptiveOptions:ye,autoPlay:t,bufferOptions:Ut,keySystems:a,lowLatencyMode:s,transport:ht,manifestRequestSettings:z,segmentRequestOptions:Qe,speed:this._priv_speed,startAt:l,textTrackOptions:Re,url:R})}else{if(ue.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");J(typeof e.representationFilter!="function"),N=!0,m.info("API: Initializing MediaSource mode in a WebWorker");let Ke={lowLatencyMode:s,checkMediaSegmentIntegrity:p,referenceDateTime:S,serverSyncInfos:y,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:v,__priv_patchLastSegmentInSidx:E};x=new ue.multithread.init({adaptiveOptions:ye,autoPlay:t,bufferOptions:Ut,keySystems:a,lowLatencyMode:s,transportOptions:Ke,manifestRequestSettings:z,segmentRequestOptions:Qe,speed:this._priv_speed,startAt:l,textTrackOptions:Re,worker:this._priv_worker,url:R})}}let L={contentId:$y(),originalUrl:R,currentContentCanceller:A,defaultAudioTrackSwitchingMode:r,initializer:x,isDirectFile:k,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:D,useWorker:N};x.addEventListener("error",z=>{this._priv_onFatalError(z,L)}),x.addEventListener("warning",z=>{let ae=xe(z,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API: Sending warning:",ae),this.trigger("warning",ae)}),x.addEventListener("reloadingMediaSource",z=>{L.tracksStore!==null&&L.tracksStore.resetPeriodObjects(),this._priv_segmentSinkMetricsCallback=null,this._priv_lastAutoPlay=z.autoPlay}),x.addEventListener("inbandEvents",z=>this.trigger("inbandEvents",z)),x.addEventListener("streamEvent",z=>this.trigger("streamEvent",z)),x.addEventListener("streamEventSkip",z=>this.trigger("streamEventSkip",z)),x.addEventListener("activePeriodChanged",z=>this._priv_onActivePeriodChanged(L,z)),x.addEventListener("periodStreamReady",z=>this._priv_onPeriodStreamReady(L,z)),x.addEventListener("periodStreamCleared",z=>this._priv_onPeriodStreamCleared(L,z)),x.addEventListener("representationChange",z=>this._priv_onRepresentationChange(L,z)),x.addEventListener("adaptationChange",z=>this._priv_onAdaptationChange(L,z)),x.addEventListener("bitrateEstimateChange",z=>this._priv_onBitrateEstimateChange(z)),x.addEventListener("manifestReady",z=>this._priv_onManifestReady(L,z)),x.addEventListener("manifestUpdate",z=>this._priv_onManifestUpdate(L,z)),x.addEventListener("decipherabilityUpdate",z=>this._priv_onDecipherabilityUpdate(L,z)),x.addEventListener("loaded",z=>{this._priv_segmentSinkMetricsCallback=z.getSegmentSinkMetrics}),x.prepare(),this.stop();let P=new ro(C,{withMediaSource:!k,lowLatencyMode:s});A.signal.register(()=>{P.stop()});let M=Vm(x,C,P,A.signal);A.signal.register(()=>{x.dispose()});let O=z=>{switch(z){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=P.getReference().getValue().position.getPolled();break;default:let ae=P.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ae.paused,this._priv_reloadingMetadata.reloadPosition=ae.position.getWanted();break}},U=null,H=z=>{U!==null&&(U.cancel(),U=null),M.onUpdate((ae,$e)=>{rr(ae)&&($e(),U!==null&&U.cancel(),U=new F,U.linkToSignal(A.signal),z!==!C.paused&&(C.paused?this.trigger("pause",null):this.trigger("play",null)),Km(C,()=>this.trigger("play",null),()=>this.trigger("pause",null),A.signal))},{emitCurrentValue:!1,clearSignal:A.signal})};H(t),x.addEventListener("reloadingMediaSource",z=>{H(z.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=L;let q=null;M.onUpdate(z=>{O(z),this._priv_setPlayerState(z),!A.isUsed()&&(q!==null?rr(this.state)||(q.cancel(),q=null):rr(this.state)&&(q=new F,q.linkToSignal(A.signal),Fm(C,P,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),q.signal)))},{emitCurrentValue:!0,clearSignal:A.signal}),P.listen(z=>{O(this.state),this._priv_triggerPositionUpdate(L,z)},{clearSignal:A.signal}),A.signal.register(()=>{x.removeEventListener()}),this._priv_contentLock.onUpdate((z,ae)=>{z||(ae(),x.start(C,P))},{emitCurrentValue:!0,clearSignal:A.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!$(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return $(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement?$(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=Ll(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let r=no(this.videoElement);return(r!=null?r:0)+this.videoElement.currentTime}if(t!==null){let r=this.videoElement.currentTime,i=t.availabilityStartTime!==void 0?t.availabilityStartTime:0;return r+i}return 0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;_(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.video}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.audio}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return _(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new Z("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos;if(!t&&r===null)throw new Error("player: the content did not load yet");let i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!_(a.relative))i=s+a.relative;else if(!_(a.position))i=a.position;else{if(_(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t&&this.videoElement!==null){let d=no(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API: API Seek to",i),this.videoElement.currentTime=i,i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return _(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Hn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableAudioTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableAudioTracks(a))!=null?s:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableVideoTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableVideoTracks(a))!=null?s:[]})}getAudioTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenAudioTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenAudioTrack(o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenVideoTrack(o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(c);return}catch(c){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setAudioTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(c);return}catch(c){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setVideoTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?ln(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:cn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:It(t):null}async __priv_getSegmentSinkMetrics(){if(this._priv_segmentSinkMetricsCallback!==null)return this._priv_segmentSinkMetricsCallback()}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_segmentSinkMetricsCallback=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};_(this.videoElement)?e():ko(this.videoElement).then(()=>{m.debug("API: DRM session cleaned-up with success!"),e()},a=>{m.error("API: An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Lm({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),e.tracksStore.addEventListener("warning",o=>{this.trigger("warning",o)}),e.tracksStore.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),e.tracksStore.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||_(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(X(i,c=>c[0].id===o.period.id&&c[1]===o.adaptation.type)!==void 0)){let c=e.tracksStore;if(c===null)return i;let l=!1,f=c.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":l=((s=c.getChosenAudioTrack(f))==null?void 0:s.id)===o.adaptation.id;break;case"video":l=((d=c.getChosenVideoTrack(f))==null?void 0:d.id)===o.adaptation.id;break;case"text":l=((u=c.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}l&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,c,l,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(_(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let p=i.getPeriodObjectFromPeriod(t);if(p){let g=i.getChosenAudioTrack(p);this._priv_triggerEventIfNotStopped("audioTrackChange",g,r);let S=i.getChosenTextTrack(p);this._priv_triggerEventIfNotStopped("textTrackChange",S,r);let I=i.getChosenVideoTrack(p);this._priv_triggerEventIfNotStopped("videoTrackChange",I,r)}}let o=(c=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?c:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",o,r);let a=(f=(l=this.__priv_getCurrentRepresentations())==null?void 0:l.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",a,r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":_(a)?(m.error(`API: TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:Xe(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,period:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":_(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!_(a)&&!_(a[i.id])){let u=a[i.id];delete u[r],Object.keys(u).length===0&&delete a[i.id]}if(!_(s)&&!_(s[i.id])){let u=s[i.id];delete u[r],Object.keys(u).length===0&&delete s[i.id]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var c;if(e.contentId!==((c=this._priv_contentInfos)==null?void 0:c.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];_(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!_(i)&&i.id===a.id){let l=d.getPeriodObjectFromPeriod(i);if(l===void 0)return;switch(t){case"audio":let f=d.getChosenAudioTrack(l);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break;case"text":let p=d.getChosenTextTrack(l);this._priv_triggerEventIfNotStopped("textTrackChange",p,u);break;case"video":let g=d.getChosenVideoTrack(l);this._priv_triggerEventIfNotStopped("videoTrackChange",g,u);break}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(_(s)?o[r.id]={[t]:i}:s[t]=i,!_(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",i,u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",i,u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API: playerStateChange event",e),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||_(t))return;let o=i!==null?It(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let c=cn(i);c!==void 0&&(a.liveGap=c-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=no(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;J(ue.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),J(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new ue.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API: Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(_(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":let u=o.getAvailableVideoTracks(d);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break;case"audio":let c=o.getAvailableAudioTracks(d);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",c!=null?c:[],s);break;case"text":let l=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",l!=null?l:[],s);break;default:Xe(e)}}_priv_onFatalError(e,t){let r=xe(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API: The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Nt._priv_currentlyUsedVideoElements=new WeakSet;var ka=Nt;ka.version="4.1.0";var zm=ka;var El=zm;Pa();El.addFeatures([hl,tu,au,su,rl,Zu,sl,el,Nu,fu,Yu,gu]);Mn()?m.setLevel("DEBUG"):h.CURRENT_ENV===h.DEV&&m.setLevel(b.CURRENT_LEVEL);var Cie=El;})();
1
+ "use strict";(()=>{var ep=Object.defineProperty,tp=Object.defineProperties;var np=Object.getOwnPropertyDescriptors;var Ml=Object.getOwnPropertySymbols;var rp=Object.prototype.hasOwnProperty,ip=Object.prototype.propertyIsEnumerable;var Al=(n,e,t)=>e in n?ep(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ae=(n,e)=>{for(var t in e||(e={}))rp.call(e,t)&&Al(n,t,e[t]);if(Ml)for(var t of Ml(e))ip.call(e,t)&&Al(n,t,e[t]);return n},le=(n,e)=>tp(n,np(e));var y={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var S={CURRENT_LEVEL:"NONE"};function xn(){return typeof __RX_PLAYER_DEBUG_MODE__=="boolean"&&__RX_PLAYER_DEBUG_MODE__}function _(n){return n==null}var ie=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(_(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(_(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(y.CURRENT_ENV===y.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Ft=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var sp=typeof window=="undefined"&&!Ft,Kt=sp;var uo;Ft?uo=self:Kt?uo=global:uo=window;var ee=uo;var _t=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function wa(){if(!Kt&&!_(ee.WebKitSourceBuffer)&&ee.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=ee.WebKitSourceBuffer.prototype;for(let t in ie.prototype)ie.prototype.hasOwnProperty(t)&&(e[t]=ie.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){_t(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend")})},e.appendBuffer=function(t){if(this.updating)throw new Error("updating");this.trigger("updatestart"),this.updating=!0;try{this.append(t)}catch(r){this._emitUpdate("error",r);return}this._emitUpdate("update")}}}function ye(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}function Z(){}var lo=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){y.CURRENT_ENV===y.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if((t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),(t==null?void 0:t.emitCurrentValue)===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}(t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return Z;let r=()=>{let a=ye(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function on(n,e,t){let r=new lo(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var G=lo;var xl=new G(0);var dp=typeof performance!="undefined"?()=>performance.now()+xl.getValue():()=>Date.now()+xl.getValue(),K=dp;var up="NONE",or=class extends ie{constructor(){super(),this.error=Z,this.warn=Z,this.info=Z,this.debug=Z,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentFormat="standard",this._currentLevel=up}setLevel(e,t,r){let i,o=this._levels[e];typeof o=="number"?(i=o,this._currentLevel=e):(i=0,this._currentLevel="NONE");let a;if(t==="standard"||t==="full"?a=t:a="standard",a==="full"&&a!==this._currentFormat){let d=K();console.log(String(d.toFixed(2)),"[Init]",`Local-Date: ${Date.now()}`)}this._currentFormat=a;let s=this._currentFormat==="full"?(d,u)=>(...c)=>{let l=K();return u(String(l.toFixed(2)),`[${d}]`,...c)}:(d,u)=>u;if(r===void 0)this.error=i>=this._levels.ERROR?s("error",console.error.bind(console)):Z,this.warn=i>=this._levels.WARNING?s("warn",console.warn.bind(console)):Z,this.info=i>=this._levels.INFO?s("info",console.info.bind(console)):Z,this.debug=i>=this._levels.DEBUG?s("log",console.log.bind(console)):Z;else{let d=(u,c)=>i>=this._levels[u]?(...l)=>{let f=K();return r(u,[f,c,...l])}:Z;this.error=d("ERROR","error"),this.warn=d("WARNING","warn"),this.info=d("INFO","info"),this.debug=d("DEBUG","log")}this.trigger("onLogLevelChange",{level:this._currentLevel,format:this._currentFormat})}getLevel(){return this._currentLevel}getFormat(){return this._currentFormat}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};var lp=new or,m=lp;var Vt=ee,an=Vt===void 0?void 0:_(Vt.MediaSource)?_(Vt.MozMediaSource)?_(Vt.WebKitMediaSource)?Vt.MSMediaSource:Vt.WebKitMediaSource:Vt.MozMediaSource:Vt.MediaSource;var cp=200,co=new Map;function Oa(n){if(_(an))return Ft&&m.error("Compat: Cannot request codec support in a worker without MSE."),!1;if(typeof an.isTypeSupported=="function"){let e=co.get(n);if(e!==void 0)return e;{let t=an.isTypeSupported(n);return co.size>=cp&&co.clear(),co.set(n,t),t}}return!0}var ar=!1,sn=!1,zt=!1,dn=!1,Da=!1,un=!1,La=!1,sr=!1,dr=!1,fp=!1,mp=!1,Na=!1,Ua=!1,ln=!1,pp=!1;(function(){var e,t,r;Kt||(typeof ee.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?(sn=!0,zt=!0):navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?zt=!0:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?ar=!0:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?dn=!0:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?un=!0:(Object.prototype.toString.call(ee.HTMLElement).indexOf("Constructor")>=0||((t=(e=ee.safari)==null?void 0:e.pushNotification)==null?void 0:t.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((r=navigator.vendor)==null?void 0:r.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Da=!0),/SamsungBrowser/.test(navigator.userAgent)&&(La=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?Ua=!0:navigator.userAgent.indexOf("PlayStation 5")!==-1?ln=!0:/Tizen/.test(navigator.userAgent)?sr=!0:/[Ww]eb[O0]S/.test(navigator.userAgent)?(dr=!0,/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?mp=!0:(/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent))&&(fp=!0)):/[Pp]anasonic/.test(navigator.userAgent)?Na=!0:navigator.userAgent.indexOf("Xbox")!==-1&&(pp=!0))})();var gp=ln,wl=gp;function Ba(n){return n===void 0||n.indexOf("widevine")<0}var hp={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/mp4;codecs="hvc1.1.6.L93.B0"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"',"audio/webm;codecs=opus"],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless"},Ol=hp;function yp(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r=0;r<e.length;r++){let i=e[r];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&(t[o]=i[o])}return t}var j=typeof Object.assign=="function"?Object.assign:yp;function Fa(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function ur(n,...e){if(e.length===0)return n;let t=e.shift();if(Fa(n)&&Fa(t))for(let r in t)if(Fa(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),ur(i,t[r])}else j(n,{[r]:t[r]});return ur(n,...e)}var Ka=class{constructor(){this._config=Ol}update(e){let t=ur(this._config,e);this._config=t}getCurrent(){return this._config}},Ip=new Ka,U=Ip;var bp=.016666666666666666;function Dl(n,e){return Math.abs(n-e)<bp}function Nl(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function Sp(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function Tp(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(Bl(t,r)){let i=Nl(t,r);n.splice(--e,2,i)}}return n}function Va(n,e){return n.end<=e.start}function Ll({start:n,end:e},t){return n<=t&&t<e}function Ul(n,e){return Ll(n,e.start)||n.start<e.end&&e.end<n.end||Ll(e,n.start)}function Bl(n,e){return Dl(e.start,n.end)||Dl(e.end,n.start)}function Pe(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function za(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function _p(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function Fl(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function Kl(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function Vl(n,e){let t=za(n,e);return t!==null?t.end-e:1/0}function fo(n,e){let t=_p(n,e);return t!==null?t.end-e:1/0}function Ht(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=Ul(t,i),a=Bl(t,i);if(o||a)t=Nl(t,i),n.splice(r--,1);else if(r===0){if(Va(t,n[0]))break}else if(Va(n[r-1],t)&&Va(t,i))break}return n.splice(r,0,t),Tp(Sp(n))}function zl(n,e){let t=[];for(let r=0;r<e.length;r++)Ul(n,e[r])&&t.push(e[r]);return t}function Hl(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=zl(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function mo(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=zl(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}var po=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function te(n,e){if(y.DEV===y.CURRENT_ENV&&!n)throw new po(e===void 0?"invalid assertion":e)}function Wl(n,e,t="object"){te(!_(n),`${t} should be an object`);for(let r in e)e.hasOwnProperty(r)&&te(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function Qe(n){throw new po("Unreachable path taken")}var B=class{constructor(){let[e,t]=Ep();this._isUsed=!1,this._trigger=e,this.signal=new lr(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new Me;this._trigger(t)}static isCancellationError(e){return e instanceof Me}},lr=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("Error while calling clean up listener",r instanceof Error?r.toString():"Unknown error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(te(this.cancellationError!==null),e(this.cancellationError),Z):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},Me=class n extends Error{constructor(){super("This task was cancelled."),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function Ep(){let n=Z;return[function(t){n(t)},function(t){n=t}]}function Ha(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var tt=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var cr=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new tt(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR: New last stable representation",e.bitrate),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var Gl=6e3,vp=15e3,Rp=3e3,kp=1e3,Cp=9e3,fr=class{constructor(e){this._levelsMap=Ha(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=Gl,m.debug("ABR: Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(_(o)){this._currentEstimate=r[0];return}let d=-1;for(let p=0;p<r.length;p++){let I=r[p];if(I===o)d=p;else if(I>o)break}if(d<0||r.length!==t.length){m.info("ABR: Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let c=isFinite(i)?i:0,l=K();if(c<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:l-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+Cp){let h=this._blockRaiseDelay+Rp;this._blockRaiseDelay=Math.min(h,vp),m.debug("ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality",this._blockRaiseDelay)}else{let h=this._blockRaiseDelay-kp;this._blockRaiseDelay=Math.max(Gl,h),m.debug("ABR: Lowering quality in BufferBasedChooser",this._blockRaiseDelay)}this._lastUnsuitableQualityTimestamp=l;let I=ye(r,h=>h===o);for(let h=I-1;h>=0;h--)if(c>=t[h]){this._currentEstimate=r[h];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&l-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],g=(()=>{for(let p=d+1;p<t.length;p++)if(t[p]>f)return p})();if(g!==void 0){let p=t[g];if(i>=p){m.debug("ABR: Raising quality in BufferBasedChooser",r[g]),this._currentEstimate=r[g];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function X(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function Pp(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function go(n){if(n.progress.length<5)return;let e=new tt(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function ql(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function Mp(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,c=Pp(n,u);if(c.length!==1)return;let l=c[0],f=K(),g=l.content.segment.duration*1.5;if(g=Math.min(g,3e3),g=Math.max(g,12e3),f-l.requestTimestamp<g)return;let p=l.progress.length>0?l.progress[l.progress.length-1]:void 0,I=go(l);if(p!==void 0&&I!==void 0){let R=ql(p,I);if((f-p.timestamp)/1e3<=R&&R-d/a>2500)return I}if(!l.content.segment.complete)return;let h=l.content.segment.duration,b=(f-l.requestTimestamp)/1e3,T=b<=(h*1.5+2)/a;if(_(t)||T)return;let v=h/b,E=t.bitrate*Math.min(.7,v);if(i===void 0||E<i)return E}function Ap(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=X(e,({content:l})=>l.segment.duration>0&&l.segment.time+l.segment.duration>i);if(o===void 0)return!0;let a=K(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=go(o);if(s===void 0||d===void 0)return!0;let u=ql(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var mr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=U.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:c,duration:l}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:g}=U.getCurrent();return isNaN(l)||f+c.getWanted()<l-g?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR: enter starvation mode."),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1),this._inStarvationMode&&(s=Mp(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR: starvation mode emergency estimate:",s),t.reset(),a=_(r)?s:Math.min(s,r.bitrate))),_(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:Ap(i,r,this._lowLatencyMode)}};var pr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var gr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let l=jl(e,r);if(l!==null)return l}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR: Guessed Representation validated",d.bitrate),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=K()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),xp(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let l=jl(e,r);if(l!==null)return l}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&K()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=K();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=go(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function jl(n,e){let t=n.length,r=ye(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR: Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function xp(n,e){let t=ye(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR: Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var hr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=U.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=U.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=U.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=U.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}};function Wa(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=ye(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function Ga(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,c;return((u=s.width)!=null?u:0)-((c=d.width)!=null?c:0)}),o=X(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function yr(n){return Object.keys(n).map(e=>n[e])}var wn=typeof Object.values=="function"?Object.values:yr;var Ir=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(_(t)){if(y.CURRENT_ENV===y.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR: progress for a request not added");return}t.progress.push(e)}remove(e){if(_(this._currentRequests[e])){if(y.CURRENT_ENV===y.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR: can't remove unknown request")}delete this._currentRequests[e]}getRequests(){return wn(this._currentRequests).filter(e=>!_(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function ho(n,e){let t=ye(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var Yl=new G(void 0);Yl.finish();var $l=new G(1/0);$l.finish();function qa(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,c,l){var h,b,T;let{type:f}=s.adaptation,g=o(f),p=(h=t[f])!=null?h:0,I={limitResolution:(b=r.limitResolution[f])!=null?b:Yl,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:$l};return wp({bandwidthEstimator:g,context:s,currentRepresentation:d,filters:I,initialBitrate:p,playbackObserver:c,representations:u,lowLatencyMode:i},l)};function o(a){let s=e[a];if(_(s)){m.debug("ABR: Creating new BandwidthEstimator for ",a);let d=new hr;return e[a]=d,d}return s}}function wp({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new cr,c=new mr(i!=null?i:0,o),l=new Ir,f=Z,g={metrics:T,requestBegin:v,requestProgress:E,requestEnd:R,addedSegment(k){f(k)}},p=new B;p.linkToSignal(d);let I=h(s.getValue(),p.signal);return s.onUpdate(b,{clearSignal:d}),{estimates:I,callbacks:g};function h(k,A){if(k.length<=1)return new G({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let M=!1,x=k.sort((V,$)=>V.bitrate-$.bitrate),L=new fr(x.map(V=>V.bitrate)),O=new pr,N=new gr(u,O),C=a.getReference().getValue(),P=new G(F());return a.listen(V=>{C=V,D()},{includeLastObservation:!1,clearSignal:A}),f=function(V){if(C===null)return;let{position:$,speed:q}=C,W=V.buffered,z=fo(W,$.getWanted()),{representation:H}=V.content,se=u.getEstimate(H),oe=H.bitrate,ue={bufferGap:z,currentBitrate:oe,currentScore:se,speed:q};L.onAddedSegment(ue),D()},A.register(()=>{f=Z}),r.throttleBitrate.onUpdate(D,{clearSignal:A}),r.limitResolution.onUpdate(D,{clearSignal:A}),P;function D(){P.setValue(F())}function F(){let{bufferGap:V,position:$,maximumPosition:q}=C,W=r.limitResolution.getValue(),z=r.throttleBitrate.getValue(),H=t.getValue(),se=Op(x,W,z),oe=l.getRequests(),{bandwidthEstimate:ue,bitrateChosen:he}=c.getBandwidthEstimate(C,n,H,oe,O.bandwidth),Y=u.getLastStableRepresentation(),ce=Y===null?void 0:Y.bitrate/(C.speed>0?C.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:Ie,ABR_EXIT_BUFFER_BASED_ALGO:Bt}=U.getCurrent();M&&V<=Bt?M=!1:!M&&isFinite(V)&&V>=Ie&&(M=!0);let $e=ho(se,he),Ue=L.getLastEstimate(),Tt=$e.bitrate,ht=null;M&&Ue!==void 0&&Ue>Tt&&(ht=ho(se,Ue),Tt=ht.bitrate);let Oe=null;return o&&H!==null&&e.manifest.isDynamic&&q-$.getWanted()<40&&(Oe=N.getGuess(x,C,H,Tt,oe)),Oe!==null&&Oe.bitrate>Tt?(m.debug("ABR: Choosing representation with guess-based estimation.",Oe.bitrate,Oe.id),O.update(Oe,ue,2),{bitrate:ue,representation:Oe,urgent:H===null||Oe.bitrate<H.bitrate,knownStableBitrate:ce}):ht!==null?(m.debug("ABR: Choosing representation with buffer-based estimation.",ht.bitrate,ht.id),O.update(ht,ue,0),{bitrate:ue,representation:ht,urgent:c.isUrgent(ht.bitrate,H,oe,C),knownStableBitrate:ce}):(m.debug("ABR: Choosing representation with bandwidth estimation.",$e.bitrate,$e.id),O.update($e,ue,1),{bitrate:ue,representation:$e,urgent:c.isUrgent($e.bitrate,H,oe,C),knownStableBitrate:ce})}}function b(){let k=s.getValue();p.cancel(),p=new B,p.linkToSignal(d),h(k,p.signal).onUpdate(function(x){I.setValue(x)},{clearSignal:p.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:A,segmentDuration:M,size:x,content:L}=k;if(n.addSample(A,x),!L.segment.isInit){let{segment:O,representation:N}=L;if(M===void 0&&!O.complete)return;let C=M!=null?M:O.duration;u.addSample(N,A/1e3,C)}}function v(k){l.add(k)}function E(k){l.addProgress(k)}function R(k){l.remove(k.id)}}function Op(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=Wa(r,t)),e!==void 0&&(r=Ga(r,e)),r}var Ql=qa;function yo(){var t;if(typeof((t=ee.crypto)==null?void 0:t.randomUUID)=="function")return ee.crypto.randomUUID();let n=new Date().getTime(),e=K();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let i=Math.random()*16;return n>0?(i=(n+i)%16|0,n=Math.floor(n/16)):(i=(e+i)%16|0,e=Math.floor(e/16)),(r==="x"?i:i&3|8).toString(16)})}var Dp=4,br=class{constructor(e){var t,r;this._sessionId=(t=e.sessionId)!=null?t:yo(),this._contentId=(r=e.contentId)!=null?r:yo(),this._typePreference=e.communicationType==="headers"?0:1,this._bufferStarvationToggle=!1,this._playbackObserver=null,this._lastThroughput={},this._canceller=null}startMonitoringPlayback(e){var t;(t=this._canceller)==null||t.cancel(),this._canceller=new B,this._playbackObserver=e,e.listen(r=>{r.rebuffering!==null&&(this._bufferStarvationToggle=!0)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}stopMonitoringPlayback(){var e;(e=this._canceller)==null||e.cancel(),this._canceller=null,this._playbackObserver=null}updateThroughput(e,t){this._lastThroughput[e]=t}_getCommonCmcdData(e){var i;let t={};t.bs=this._bufferStarvationToggle,this._bufferStarvationToggle=!1,t.cid=this._contentId,t.mtp=e!==void 0?Math.floor(Math.round(e/1e3/100)*100):void 0,t.sid=this._sessionId;let r=(i=this._playbackObserver)==null?void 0:i.getReference().getValue();return t.pr=r===void 0||r.speed===1?void 0:r.speed,r!==void 0&&(t.su=r.rebuffering!==null),t}getCmcdDataForManifest(e){var r;let t=this._getCommonCmcdData((r=this._lastThroughput.video)!=null?r:this._lastThroughput.audio);switch(t.ot="m",e){case"dash":t.sf="d";break;case"smooth":t.sf="s";break;default:t.sf="o";break}return this._producePayload(t)}getCmcdDataForSegmentRequest(e){var a,s,d,u;let t=(a=this._playbackObserver)==null?void 0:a.getReference().getValue(),r=this._getCommonCmcdData(this._lastThroughput[e.adaptation.type]);switch(r.br=Math.round(e.representation.bitrate/1e3),r.d=Math.round(e.segment.duration*1e3),e.adaptation.type){case"video":r.ot="v";break;case"audio":r.ot="a";break;case"text":r.ot="c";break}e.segment.isInit&&(r.ot="i");let i;if(t!==void 0&&(r.ot==="v"||r.ot==="a"||r.ot==="av")){let c=t.buffered[e.adaptation.type];if(!_(c)){let l=(u=(d=(s=this._playbackObserver)==null?void 0:s.getCurrentTime())!=null?d:t.position.getWanted())!=null?u:t.position.getPolled();for(let f of c)if(l>=f.start&&l<f.end){i=(f.end-l)*1e3,r.bl=Math.floor(Math.round(i/100)*100);break}}}let o=i===void 0||t===void 0?void 0:i/t.speed;if(r.dl=o===void 0?void 0:Math.floor(Math.round(o/100)*100),o!==void 0){let l=e.representation.bitrate*e.segment.duration/1e3/(o/1e3);r.rtp=Math.floor(Math.round(l*Dp/100)*100)}switch(e.manifest.transport){case"dash":r.sf="d";break;case"smooth":r.sf="s";break;default:r.sf="o";break}return r.st=e.manifest.isDynamic?"l":"v",r.tb=e.adaptation.representations.reduce((c,l)=>l.isSupported!==!0||l.decipherable===!1?c:c===void 0?Math.round(l.bitrate/1e3):Math.max(c,Math.round(l.bitrate/1e3)),void 0),this._producePayload(r)}_producePayload(e){let t={object:"",request:"",session:"",status:""},r="",i=(u,c)=>{this._typePreference===0?t[c]+=u:r+=u},o=(u,c)=>{let l=e[u];if(l!==void 0){let f=`${u}=${String(l)},`;i(f,c)}},a=(u,c)=>{if(e[u]===!0){let l=`${u},`;i(l,c)}},s=(u,c)=>{let l=e[u];if(l!==void 0){let g=`prop=${`"${l.replace("\\","\\\\").replace('"','\\"')}"`},`;i(g,c)}},d=(u,c)=>{let l=e[u];if(l!==void 0){let f=`prop=${l},`;i(f,c)}};return o("br","object"),o("bl","request"),a("bs","status"),s("cid","session"),o("d","object"),o("dl","request"),o("mtp","request"),d("ot","object"),o("pr","session"),o("rtp","status"),d("sf","session"),s("sid","session"),d("st","session"),a("su","request"),o("tb","object"),this._typePreference===0?(t.object[t.object.length-1]===","&&(t.object=t.object.substring(0,t.object.length-1)),t.request[t.request.length-1]===","&&(t.request=t.request.substring(0,t.request.length-1)),t.session[t.session.length-1]===","&&(t.session=t.session.substring(0,t.session.length-1)),t.status[t.status.length-1]===","&&(t.status=t.status.substring(0,t.status.length-1)),m.debug("CMCD: proposing headers payload"),{type:"headers",value:{"CMCD-Object":t.object,"CMCD-Request":t.request,"CMCD-Session":t.session,"CMCD-Status":t.status}}):(r[r.length-1]===","&&(r=r.substring(0,r.length-1)),r=encodeURIComponent(r),m.debug("CMCD: proposing query string payload",r),{type:"query",value:[["CMCD",r]]})}};var Xl=br;var nt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Ee=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},Be={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var ja=typeof Headers=="function"?Headers:null,Ya=typeof AbortController=="function"?AbortController:null;function Io(n){var f,g;let e;if(!_(n.headers))if(_(ja))e=n.headers;else{e=new ja;let p=Object.keys(n.headers);for(let I=0;I<p.length;I++){let h=p[I];e.append(h,n.headers[h])}}m.debug("Fetch: Called with URL",n.url);let t=null,r=!1,i=!1,o=K(),a=_(Ya)?null:new Ya;function s(){if(_(a)){m.warn("Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let c=n.cancelSignal.register(function(I){t=I,s()}),l={method:"GET"};if(e!==void 0&&(l.headers=e),l.signal=_(a)?null:a.signal,m.hasLevel("DEBUG")){let p="FETCH: Sending GET "+n.url;n.timeout!==void 0&&(p+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(p+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(p+=" Range="+((g=n.headers)==null?void 0:g.Range)),m.debug(p)}return fetch(n.url,l).then(p=>{if(u!==void 0&&clearTimeout(u),p.status>=300)throw m.warn("Fetch: Request HTTP Error",p.status,p.url),new Ee(p.url,p.status,Be.ERROR_HTTP_CODE);if(_(p.body))throw new Ee(p.url,p.status,Be.PARSE_ERROR);let I=p.headers.get("Content-Length"),h=!_(I)&&!isNaN(+I)?+I:void 0,b=p.body.getReader(),T=0;return v();async function v(){let E=await b.read();if(!E.done&&!_(E.value)){T+=E.value.byteLength;let R=K(),k={url:p.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:E.value.byteLength,chunk:E.value.buffer,size:T,totalSize:h};return n.onData(k),v()}else if(E.done){d!==void 0&&clearTimeout(d),c();let R=K();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:p.status,url:p.url}}return v()}}).catch(p=>{throw t!==null?t:(c(),r?(m.warn("Fetch: Request timed out."),new Ee(n.url,0,Be.TIMEOUT)):i?(m.warn("Fetch: Request connection timed out."),new Ee(n.url,0,Be.TIMEOUT)):p instanceof Ee?p:(m.warn("Fetch: Request Error",p instanceof Error?p.toString():""),new Ee(n.url,0,Be.ERROR_EVENT)))})}function Sr(){return typeof ee.fetch=="function"&&!_(Ya)&&!_(ja)}function w(n){return typeof n=="string"&&n.length>0}var Lp="json";function $a(n){let e={url:n.url,headers:n.headers,responseType:_(n.responseType)?Lp:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:c}=e,l=new XMLHttpRequest;l.open("GET",a,!0);let f;u!==void 0&&(l.timeout=u,f=setTimeout(()=>{h(),r(new Ee(a,l.status,Be.TIMEOUT))},u+3e3));let g;if(c!==void 0&&(g=setTimeout(()=>{h(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(new Ee(a,l.status,Be.TIMEOUT))},c)),l.responseType=d,l.responseType==="document"&&l.overrideMimeType("text/xml"),!_(s)){let b=s;for(let T in b)b.hasOwnProperty(T)&&l.setRequestHeader(T,b[T])}let p=K(),I=null;if(o!==void 0&&(I=o.register(function(T){h(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(T)}),o.isCancelled()))return;if(l.onerror=function(){h(),r(new Ee(a,l.status,Be.ERROR_EVENT))},l.ontimeout=function(){h(),r(new Ee(a,l.status,Be.TIMEOUT))},c!==void 0&&(l.onreadystatechange=function(){l.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(g)}),i!==void 0&&(l.onprogress=function(T){let v=K();i({url:a,duration:v-p,sendingTime:p,currentTime:v,size:T.loaded,totalSize:T.total})}),l.onload=function(T){if(l.readyState===XMLHttpRequest.DONE)if(h(),l.status>=200&&l.status<300){let v=K(),E=l.response instanceof ArrayBuffer?l.response.byteLength:T.total,R=l.status,k=l.responseType,A=w(l.responseURL)?l.responseURL:a,M;if(k==="json"?M=typeof l.response=="object"?l.response:Np(l.responseText):M=l.response,_(M)){r(new Ee(a,l.status,Be.PARSE_ERROR));return}t({status:R,url:A,responseType:k,sendingTime:p,receivedTime:v,requestDuration:v-p,size:E,responseData:M})}else r(new Ee(a,l.status,Be.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let b="XHR: Sending GET "+a;n.responseType!==void 0&&(b+=" type="+n.responseType),u!==void 0&&(b+=" to="+String(u/1e3)),c!==void 0&&(b+=" cto="+String(c/1e3)),(s==null?void 0:s.Range)!==void 0&&(b+=" Range="+(s==null?void 0:s.Range)),m.debug(b)}l.send();function h(){f!==void 0&&clearTimeout(f),g!==void 0&&clearTimeout(g),I!==null&&I()}})}function Np(n){try{return JSON.parse(n)}catch(e){return null}}var Te=$a;var cn=Be,Xe={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},Qa={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE"};function lt(n,e){return`${n}: ${e}`}var pe=class n extends Error{constructor(e,t,r){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=Xe.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,typeof(r==null?void 0:r.keyStatuses)=="string"&&(this.keyStatuses=r.keyStatuses)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses}}};var J=class n extends Error{constructor(e,t,r){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=Xe.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var rt=class n extends Error{constructor(e,t){super(lt(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=Xe.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===cn.ERROR_HTTP_CODE&&this.status===e}serialize(){return{name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var De=class n extends Error{constructor(e,t){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=Xe.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage}}};function Wt(n){return(n instanceof pe||n instanceof J||n instanceof De||n instanceof rt)&&Object.keys(Xe).indexOf(n.type)>=0}function we(n,{defaultCode:e,defaultReason:t}){if(Wt(n))return n;let r=n instanceof Error?n.toString():t;return new De(e,r)}var it=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var Up={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},Zl=Up;var Bp={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},Jl=Bp;function Fp(n){if(_(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=Kp(t);return w(r)?r:n}function Kp(n){let e;switch(n.length){case 2:e=Zl[n];break;case 3:e=Jl[n];break}return e}var ec=Fp;var Tr=ec;function ge(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}function Ze(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var Vp=Ze(),Xa=class{constructor(e,t,r){var o,a,s,d,u;this.id=e.id,this.uniqueId=Vp(),this.bitrate=e.bitrate,this.codecs=[],this.trackType=t,e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index;let i=this.contentProtections!==void 0;if(t==="audio"||t==="video"){if(e.supplementalCodecs!==void 0){let c=r.isSupported((o=this.mimeType)!=null?o:"",(a=e.supplementalCodecs)!=null?a:"",i);c!==!1&&(this.codecs=[e.supplementalCodecs],this.isSupported=c)}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((s=e.codecs)!=null?s:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=r.isSupported((d=this.mimeType)!=null?d:"",(u=e.codecs)!=null?u:"",i)))}else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var s,d;if(this.isSupported!==void 0)return;let t=this.contentProtections!==void 0,r=!1,i=(s=this.mimeType)!=null?s:"",o=(d=this.codecs)!=null?d:[];o.length===0&&(o=[""]);let a=!1;for(let u of o){if(r=e.isSupported(i,u,t),r===!0){this.codecs=[u];break}r===void 0&&(a=!0)}r===!0?this.isSupported=!0:a?this.isSupported=void 0:this.isSupported=!1}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i,o;let t=this.getAllEncryptionData(),r=[];for(let a=0;a<t.length;a++){let s=!1,d=t[a];for(let u=0;u<d.values.length;u++)if(d.values[u].systemId.toLowerCase()===e.toLowerCase())if(s)r[r.length-1].values.push(d.values[u]);else{let c=(o=(i=this.contentProtections)==null?void 0:i.keyIds)==null?void 0:o.map(l=>l.keyId);r.push({type:d.type,keyIds:c,values:[d.values[u]]}),s=!0}}return r}getAllEncryptionData(){var t,r;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(r=(t=this.contentProtections)==null?void 0:t.keyIds)==null?void 0:r.map(i=>i.keyId);return this.contentProtections.initData.map(i=>({type:i.type,keyIds:e,values:i.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[{keyId:t}]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[{keyId:t}];else{let s=!1;for(let d of a)ge(d.keyId,t)&&(s=!0);s||(m.warn("Manifest: found unanounced key id."),a.push({keyId:t}))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],c;for(c=0;c<s.length;c++)if(u.systemId===s[c].systemId){if(ge(u.data,s[c].data))break;m.warn("Manifest: different init data for the same system ID")}c===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable}}},tc=Xa;var _r=class n{constructor(e,t,r={}){let{trickModeTracks:i}=e,{representationFilter:o,isManuallyAdded:a}=r;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=Tr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),i!==void 0&&i.length>0&&(this.trickModeTracks=i.map(u=>new n(u,t)));let s=e.representations,d=[];this.supportStatus={hasSupportedCodec:!1,hasCodecWithUndefinedSupport:!1,isDecipherable:!1};for(let u=0;u<s.length;u++){let c=new tc(s[u],this.type,t),l=!0;if(!_(o)){let f={id:c.id,bitrate:c.bitrate,codecs:c.codecs,height:c.height,width:c.width,frameRate:c.frameRate,hdrInfo:c.hdrInfo};if(c.contentProtections!==void 0&&(f.contentProtections={},c.contentProtections.keyIds!==void 0)){let g=c.contentProtections.keyIds.map(({keyId:p})=>p);f.contentProtections.keyIds=g}l=o(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}l?(d.push(c),c.isSupported===void 0?(this.supportStatus.hasCodecWithUndefinedSupport=!0,this.supportStatus.hasSupportedCodec===!1&&(this.supportStatus.hasSupportedCodec=void 0)):c.isSupported&&(this.supportStatus.hasSupportedCodec=!0),c.decipherable===void 0?this.supportStatus.isDecipherable===!1&&(this.supportStatus.isDecipherable=void 0):c.decipherable&&(this.supportStatus.isDecipherable=!0)):m.debug("Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${c.id}`,`(${c.bitrate})`)}d.sort((u,c)=>u.bitrate-c.bitrate),this.representations=d,this.manuallyAdded=a===!0}refreshCodecSupport(e){let t=!1,r=!1;for(let i of this.representations)i.refreshCodecSupport(e),i.isSupported===void 0?t=!0:i.isSupported&&(r=!0);r?this.supportStatus.hasSupportedCodec=!0:t?this.supportStatus.hasSupportedCodec=void 0:this.supportStatus.hasSupportedCodec=!1,this.supportStatus.hasCodecWithUndefinedSupport=t}getRepresentation(e){return X(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,supportStatus:this.supportStatus,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function Za(){return sn}function fn(n){return new Promise(e=>{setTimeout(e,n)})}function Ja(){return dr}function Er(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("Compat: MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("Compat: Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("Compat: Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return Ja()?r:Promise.race([r,fn(1e3)])}var es=new WeakMap,Fe={setState(n,e){es.set(n,e)},getState(n){let e=es.get(n);return e===void 0?null:e},clearState(n){es.set(n,null)}};async function On(n){let e=Fe.getState(n);if(e===null)return;m.info("DRM: Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e;return Fe.clearState(n),await t.closeAllSessions(),Er(e.emeImplementation,n,null)}function bo(n){if(m.info("DRM: Clearing-up DRM session."),Za())return m.info("DRM: disposing current MediaKeys."),On(n);let e=Fe.getState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM: closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM: Nothing to clear. Returning right away. No state =",e===null),Promise.resolve())}function ot(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function Gt(n,e){return ot(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function So(n){let e=new B;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await Gt(1e3,e.signal),await r()}catch(i){if(i instanceof Me)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error(`DRM: ${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await Gt(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var zp=["","webkit","moz","ms"];function Hp(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function Wp(n,e){return e.filter(t=>Hp(n,t))[0]}function Gp(n,e){return n.reduce((t,r)=>t.concat((e===void 0?zp:e).map(i=>i+r)),[])}function _e(n,e){let t,r=Gp(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=Wp(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{y.CURRENT_ENV===y.DEV&&m.warn(`compat: element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function qp(n){let e,t=document;_(t.hidden)?_(t.mozHidden)?_(t.msHidden)?_(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new G(!o,n);return mn(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function nc(n,e){if(n.webkitSupportsPresentationMode===!0&&typeof n.webkitSetPresentationMode=="function"){let i=n.webkitPresentationMode==="picture-in-picture",o=new G({isEnabled:i,pipWindow:null},e);return mn(n,"webkitpresentationmodechanged",()=>{let a=n.webkitPresentationMode==="picture-in-picture";o.setValue({isEnabled:a,pipWindow:null})},e),o}let t=document.pictureInPictureElement===n,r=new G({isEnabled:t,pipWindow:null},e);return mn(n,"enterpictureinpicture",i=>{var o;r.setValue({isEnabled:!0,pipWindow:(o=i.pictureInPictureWindow)!=null?o:null})},e),mn(n,"leavepictureinpicture",()=>{r.setValue({isEnabled:!1,pipWindow:null})},e),r}function rc(n,e){let t=qp(e),r,i=new G(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=U.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function ic(n){var o,a;let e=_(ee.devicePixelRatio)||ee.devicePixelRatio===0?1:ee.devicePixelRatio,t=new G({width:(o=ee.screen)==null?void 0:o.width,height:(a=ee.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function oc(n,e,t){let r=_(ee.devicePixelRatio)||ee.devicePixelRatio===0?1:ee.devicePixelRatio,i=new G({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=Z;e.onUpdate(s,{clearSignal:t}),mn(ee,"resize",s,t),mn(n,"enterpictureinpicture",s,t),mn(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(_(u)){let l=i.getValue();(l.width!==void 0||l.height!==void 0||l.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let l=()=>{c()};u.addEventListener("resize",l),o=()=>{u.removeEventListener("resize",l),o=Z},c()}else{let l=i.getValue();(l.width!==n.clientWidth||l.height!==n.clientHeight||l.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function c(){let l=i.getValue();(l.width!==(u==null?void 0:u.width)||l.height!==(u==null?void 0:u.height)||l.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var xk=_e(["loadedmetadata"]),wk=_e(["timeupdate"]),Ok=_e(["addtrack"]),Dk=_e(["removetrack"]),Dn=_e(["sourceopen","webkitsourceopen"]),To=_e(["sourceclose","webkitsourceclose"]),_o=_e(["sourceended","webkitsourceended"]),ac=_e(["update"]),sc=_e(["removesourcebuffer"]),Eo=_e(["keymessage","message"]),dc=_e(["keyadded","ready"]),vo=_e(["keyerror","error"]),uc=_e(["keystatuseschange"]),lc=_e(["seeking"]),cc=_e(["seeked"]),fc=_e(["ended"]);function mn(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}var ct,{WebKitMediaKeys:Ro}=ee;Ro!==void 0&&typeof Ro.isTypeSupported=="function"&&typeof Ro.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function"&&(ct=Ro);function ts(){return(Da||un)&&ct!==void 0}var vr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function Et(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var vt,{MSMediaKeys:Rr}=ee;Rr!==void 0&&Rr.prototype!==void 0&&typeof Rr.isTypeSupported=="function"&&typeof Rr.prototype.createSession=="function"&&(vt=Rr);var ns=class extends ie{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new B,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t())}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Eo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),dc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),vo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{_(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},ko=class{constructor(e){if(vt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new vt(e)}_setVideo(e){return Et(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new ns(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function rs(){return{isTypeSupported:(r,i)=>{if(vt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?vt.isTypeSupported(r,i):vt.isTypeSupported(r)},createCustomMediaKeys:r=>new ko(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof ko))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var qt,{MozMediaKeys:kr}=ee;kr!==void 0&&kr.prototype!==void 0&&typeof kr.isTypeSupported=="function"&&typeof kr.prototype.createSession=="function"&&(qt=kr);function is(){return{isTypeSupported:(r,i)=>{if(qt===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?qt.isTypeSupported(r,i):qt.isTypeSupported(r)},createCustomMediaKeys:r=>{if(qt===void 0)throw new Error("No MozMediaKeys API.");return new qt(r)},setMediaKeys:(r,i)=>Et(()=>{if(r.mozSetMediaKeys===void 0||typeof r.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return r.mozSetMediaKeys(i)})}}var Rt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],mc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Co(n){if(n>=mc.length)throw new Error("Unable to parse base64 string.");let e=mc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function Po(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Rt[(n[t-1]&15)<<2|n[t]>>6],e+=Rt[n[t]&63];return t===r+1&&(e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Rt[(n[t-1]&15)<<2],e+="="),e}function ft(n){let e=n.length%4,t=n;e!==0&&(m.warn("base64ToBytes: base64 given miss padding"),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Co(t.charCodeAt(d))<<18|Co(t.charCodeAt(d+1))<<12|Co(t.charCodeAt(d+2))<<6|Co(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}var gc=typeof ee=="object"&&typeof ee.TextDecoder=="function",Yp=typeof ee=="object"&&typeof ee.TextEncoder=="function";function Mo(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Ao(n){if(gc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"";m.warn("Utils: could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function ve(n){if(Yp)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function $p(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function pc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function Le(n){if(gc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=$p(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_\+-\.\/]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+pc(a,4):"%"+pc(a,2)}}return decodeURIComponent(r)}function qe(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Ne(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function xo(n){te(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function os(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:Le(r)}}function ss(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var as=class extends ie{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=Z,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i()}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=e instanceof ArrayBuffer?new Uint8Array(e):e,o=JSON.parse(Le(i)),a=ft(o.keys[0].k),s=ft(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},wo=class{constructor(e){this._keySystem=e}_setVideo(e){return Et(()=>{if(!ss(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(_(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new as(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function ds(){return{isTypeSupported:function(r){let i=document.querySelector("video");return _(i)&&(i=document.createElement("video")),!_(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new wo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof wo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function Je(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}function re(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Oo(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function us(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function ne(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function Ke(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function fe(n){return new Uint8Array([n>>>8&255,n&255])}function be(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function jt(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function hc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function yc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function Ic(n){return new Uint8Array([n&255,n>>>8&255])}function Cr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function ls(n,e){let t=n instanceof Uint8Array?n:new Uint8Array(n),r=e instanceof Uint8Array?e:new Uint8Array(e);if(yc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Ao(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=Mo(s),u=0,c=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return c.set(t),u+=t.length,c.set(Cr(d.byteLength),u),u+=4,c.set(d,u),u+=d.byteLength,c.set(Cr(r.byteLength),u),u+=4,c.set(r,u),c}function Qp(n){return Je(n,"com.apple.fps")}function bc(n,e){return Et(()=>{if(n.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");n.webkitSetMediaKeys(e)})}var cs=class extends ie{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=Z,this._closeSession=Z,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i;e instanceof ArrayBuffer?i=new Uint8Array(e):e instanceof Uint8Array?i=e:i=new Uint8Array(e.buffer),t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Qp(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=ls(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession(),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},Do=class{constructor(e){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new ct(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return bc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new cs(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve()}};function Lo(){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:ct.isTypeSupported,createCustomMediaKeys:r=>new Do(r),setMediaKeys:(r,i)=>{if(i===null)return bc(r,i);if(!(i instanceof Do))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return i._setVideo(r)}}}var Xp=Zp("auto"),Tc=Xp;function Zp(n){var o;let e,t,r=Jp,i;if((n==="standard"||n==="auto"&&!ts())&&(Kt||!_(navigator.requestMediaKeySystemAccess)))e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=_e(["encrypted"]),i="standard";else{let a,s;if(n==="webkit"&&ct!==void 0){let d=Lo();t=Sc(),a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(ss((o=ee.HTMLVideoElement)==null?void 0:o.prototype)){t=_e(["needkey"]);let d=ds();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(ct!==void 0){t=Sc();let d=Lo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(sn&&vt!==void 0){t=_e(["encrypted","needkey"]);let d=rs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(qt!==void 0){t=_e(["encrypted","needkey"]);let d=is();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=_e(["encrypted","needkey"]);let d=ee.MediaKeys,u=()=>{if(d===void 0)throw new J("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let c="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(c)}};a=c=>(u(),te(typeof d.isTypeSupported=="function"),d.isTypeSupported(c)),s=c=>(u(),new d(c)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let c=0;c<u.length;c++){let l=u[c],{videoCapabilities:f,audioCapabilities:g,initDataTypes:p,distinctiveIdentifier:I}=l,h=!0;if(h=h&&(_(p)||p.some(b=>b==="cenc")),h=h&&I!=="required",h){let b={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(b.videoCapabilities=f),g!==void 0&&(b.audioCapabilities=g);let T=s(d);return Promise.resolve(new vr(d,T,b))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function Sc(){let n=_e(["needkey"],void 0);return(t,r,i)=>{n(t,o=>{let a=j({forceSessionRecreation:!0},o);r(a)},i)}}function Jp(n,e){try{let t;return typeof n.setMediaKeys=="function"?t=n.setMediaKeys(e):typeof n.webkitSetMediaKeys=="function"?t=n.webkitSetMediaKeys(e):typeof n.mozSetMediaKeys=="function"?t=n.mozSetMediaKeys(e):typeof n.msSetMediaKeys=="function"&&e!==null&&(t=n.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function yt(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=ne(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=Ke(n,r+8)}if(isNaN(i)||i<=0)return-1;if(ne(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function No(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=yt(r,1836019558);if(i<0)break;let o=ne(n,i+e),a=e+i+o;if(a>n.length)break;let s=yt(r,1835295092);if(s<0)break;let d=ne(n,s+e),u=e+s+d;if(u>n.length)break;let c=Math.max(a,u),l=n.subarray(e,c);t.push(l),e=c}return t.length===0?[null,r]:[t,r]}function eg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function tg(n,e,t){return n.slice(e,t)}var fs=typeof Uint8Array.prototype.slice=="function"?tg:eg;function ms(n,e){let t=n;for(let r of e){let i=Re(t,r);if(i===null)return null;t=i}return t}function Re(n,e){let t=Ve(n,e);return t!==null?n.subarray(t[1],t[2]):null}function _c(n,e){let t=[],r=n;for(;;){let i=Ve(r,e);if(i===null)return t;te(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function ps(n,e){let t=Ve(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ve(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=ne(n,a),a+=4,i=ne(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=Ke(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function pn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=ne(n,d),d+=4;let u=ne(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=Ke(n,d),d+=8}if(u===1970628964&&d+16<=o&&ne(n,d)===e&&ne(n,d+4)===t&&ne(n,d+8)===r&&ne(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function gs(n){let e=n.length;if(e<8)return m.warn("ISOBMFF: box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=ne(n,t);t+=4;let i=ne(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("ISOBMFF: box too short, cannot find offsets"),null;r=Ke(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function Uo(n){let e=0,t=Re(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ve(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=fs(t,i[0],i[2]),a=Bo(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function Bo(n,e){if(n[e]>1){m.warn("ISOBMFF: un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=fs(n,t,t+16);return Ne(r)}var Pr=Math.pow(2,32)-1;var hs={};function Ec(n){if(hs[n]!==void 0)return hs[n];let e=ve(n);return hs[n]=e,e}function de(n,e){let t=e.length+8;return t<=Pr?re(be(t),Ec(n),e):re(be(1),Ec(n),jt(t+8),e)}function Ae(n,e){return de(n,re(...e))}function Mr(n){let e=Re(n,1836019558);return e===null?null:Re(e,1953653094)}function vc(n){return _c(n,1836019558).reduce((t,r)=>{let i=Re(r,1953653094);return i!==null&&t.push(i),t},[])}function Ar(n){return Re(n,1835295092)}function ys(n){let e=Re(n,1836019574);if(e===null)return null;let t=Re(e,1953653099);return t===null?null:Re(t,1835297121)}function Rc(n,e=0){return Re(n.subarray(e),1701671783)}function xr(n){let e=hc(n,8),t=Ao(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=xo(ft(o));return Ne(a).toLowerCase()}function wr(n,e){let t=Ve(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=ne(n,o);o+=4;let d;if(a===0)d=ne(n,o),o+=4,r+=ne(n,o)+i,o+=4;else if(a===1)d=Ke(n,o),o+=8,r+=Ke(n,o)+i,o+=8;else return null;let u=[];o+=2;let c=Oo(n,o);for(o+=2;--c>=0;){let l=ne(n,o);o+=4;let f=(l&2147483648)>>>31,g=l&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let p=ne(n,o);o+=4,o+=4,u.push({time:d,duration:p,timescale:s,range:[r,r+g-1]}),d+=p,r+=g}return u}function Is(n){let e=Mr(n);if(e===null)return;let t=Re(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return Ke(t,4);if(r===0)return ne(t,4)}function ng(n){let e=Re(n,1952868452);if(e===null)return;let t=1,r=us(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),ne(e,t)):void 0}function Or(n){let e=vc(n);if(e.length===0)return;let t=0;for(let r of e){let i=Re(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=us(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=ng(r),u===void 0))return;let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,g=(s&1024)>0,p=(s&2048)>0,I=ne(i,o);o+=4,c&&(o+=4),l&&(o+=4);let h=I,b=0;for(;h-- >0;)d?(b+=ne(i,o),o+=4):b+=u,f&&(o+=4),g&&(o+=4),p&&(o+=4);t+=b}return t}function Dr(n){let e=ys(n);if(e===null)return;let t=Re(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return ne(t,r+16);if(i===0)return ne(t,r+8)}function bs(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=ne(n,0);if(t===0)if(e>Pr){let r=new Uint8Array(e+8);return r.set(be(1),0),r.set(n.subarray(4,8),4),r.set(jt(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(be(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(jt(e),8),n}else{if(e<=Pr)return n.set(be(e),0),n;{let r=new Uint8Array(e+8);return r.set(be(1),0),r.set(n.subarray(4,8),4),r.set(jt(e+8),8),r.set(n.subarray(8,e),16),r}}}function kc(n){let e=[],t=0;for(;t<n.length;){let r=Rc(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("ISOBMFF: EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=os(r,a);a=s;let{end:u,string:c}=os(r,a);a=u;let l=ne(r,a);a+=4;let f=ne(r,a);a+=4;let g=ne(r,a);a+=4;let p=ne(r,a);a+=4;let I=r.subarray(a,i),h={schemeIdUri:d,value:c,timescale:l,presentationTimeDelta:f,eventDuration:g,id:p,messageData:I};e.push(h)}}if(e.length!==0)return e}function Cc(n){let e=ms(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Re(t,1701733238),i=0;if(r===null?(i=28,r=Re(t,1701733217)):i=78,r===null)return null;let o=ms(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var Fo=ne(ve("pssh"),0);function rg(n){m.info("Compat: Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||ne(n,i+4)!==Fo)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=ne(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=gs(a),d=s===null?void 0:a[s[1]];m.info("Compat: CENC PSSH found with version",d),d===void 0?m.warn("Compat: could not read version of CENC PSSH"):e===(d===1)?t=re(t,a):d===1?(m.warn("Compat: cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("Compat: filtering out cenc pssh box with wrong version",d)}else r=re(r,a);i+=o}if(i!==n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return re(r,t)}function Lr(n,e,t){m.debug("Compat: Calling generateRequest on the MediaKeySession");let r;try{r=rg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn('Compat: error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function ig(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||ne(n,t+4)!==Fo)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=ne(new Uint8Array(n),t);if(t+r>n.length)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:Bo(i,8),data:i};og(e,a)?m.warn("Compat: Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function og(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&ge(e.data,r.data))return!0}return!1}function Ko(n){let{initData:e,initDataType:t,forceSessionRecreation:r}=n;if(_(e))return m.warn("Compat: No init data found on media encrypted event."),null;let i=new Uint8Array(e),o=ig(i);return{type:t,values:o,forceSessionRecreation:r}}var ag=100;async function Nr(n,e){m.info("DRM: Load persisted session",e);let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,ag);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var It=Tc;function Q(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}function Pc(n){var t;let e=Fe.getState(n);return Fe.setState(n,null),Er((t=e==null?void 0:e.emeImplementation)!=null?t:It,n,null)}async function Ss(n,{emeImplementation:e,keySystemOptions:t,loadedSessionsStore:r,mediaKeySystemAccess:i,mediaKeys:o},a){let s=Fe.getState(n);if(await(s!==null&&s.loadedSessionsStore!==r?s.loadedSessionsStore.closeAllSessions():Promise.resolve()),a.isCancelled())throw a.cancellationError;if(Fe.setState(n,{emeImplementation:e,keySystemOptions:t,mediaKeySystemAccess:i,mediaKeys:o,loadedSessionsStore:r}),n.mediaKeys!==o)return m.info("DRM: Attaching MediaKeys to the media element"),Er(e,n,o).then(()=>{m.info("DRM: MediaKeys attached with success")}).catch(u=>{let c=u instanceof Error?u.toString():"Unknown Error";throw new pe("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+c)})}function Ur(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM: isSessionUsable: MediaKeySession given has an empty keyStatuses",n.sessionId),!1):Q(t,"expired")?(m.debug("DRM: isSessionUsable: MediaKeySession given has an expired key",n.sessionId),!1):Q(t,"internal-error")?(m.debug("DRM: isSessionUsable: MediaKeySession given has a key with an internal-error",n.sessionId),!1):(m.debug("DRM: isSessionUsable: MediaKeySession is usable",n.sessionId),!0)}function Ts(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?Mc(i,e):o===null?(m.warn("DRM: Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),Mc(i,e)):sg(i,o,e,r)}function Mc(n,e){m.info("DRM: Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function sg(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM: No data stored for the loaded session"),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&Ur(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM: Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM: Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM: Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function _s(n,e){if(e<0||e>=n.getLength())return;m.info("DRM: LSS cache limit exceeded",e,n.getLength());let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Es(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,Ur(o))return m.info("DRM: Reuse loaded session",o.sessionId),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await _s(a,r),i.cancellationError!==null))throw i.cancellationError;let u=await Ts(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function vs(){return!dr&&!Na}function Ac(n){return!(ar&&n.indexOf("playready")!==-1)}var xc='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function wc(n){let e=Mo(n),t=Ic(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=Cr(e.length+6),a=re(o,i,r,t,e),s=qe("9a04f07998404286ab92e65be0885f95");return dg(a,s)}function dg(n,e){let t=ve("pssh"),r=new Uint8Array([0,0,0,0]),i=be(n.length),o=be(32+n.length);return re(o,t,r,e,i,n)}function Rs(){return sn}function ug(n,e){let{mimeType:t,codecs:r}=Vo(n),{mimeType:i,codecs:o}=Vo(e);return!(t!==i||r===""||o===""||r.split(".")[0]!==o.split(".")[0])}var lg=7;function Vo(n){var i;let[e,...t]=n.split(";"),r=(i=X(t,o=>Je(o,"codecs=")))!=null?i:"";return r=r.substring(lg),r[0]==='"'&&(r=r.substring(1,r.length-2)),{mimeType:e,codecs:r}}var zo=ug;function Ln(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function cg(n,e,t){let r=e.getConfiguration();if(Rs()||_(r))return null;let i=n.filter(o=>!(o.type!==t.type||(!_(o.persistentLicenseConfig)||o.persistentState==="required")&&r.persistentState!=="required"||o.distinctiveIdentifier==="required"&&r.distinctiveIdentifier!=="required"))[0];return i!==void 0?{keySystemOptions:i,keySystemAccess:e}:null}function fg(n){let{EME_KEY_SYSTEMS:e}=U.getCurrent();for(let t of Object.keys(e))if(Q(e[t],n))return t}function mg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i=["temporary"],o="optional",a="optional";_(r.persistentLicenseConfig)||(o="required",i.push("persistent-license")),_(r.persistentState)||(o=r.persistentState),_(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:c}=U.getCurrent(),l,f,{audioCapabilitiesConfig:g,videoCapabilitiesConfig:p}=r;if((g==null?void 0:g.type)==="full")l=g.value;else{let h;(g==null?void 0:g.type)==="robustness"?h=g.value:e==="widevine"?h=u:t==="com.microsoft.playready.recommendation"?h=c:h=[],h.length===0&&h.push(void 0);let b=(g==null?void 0:g.type)==="contentType"?g.value:s;l=Ln(h,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((p==null?void 0:p.type)==="full")f=p.value;else{let h;(p==null?void 0:p.type)==="robustness"?h=p.value:e==="widevine"?h=u:t==="com.microsoft.playready.recommendation"?h=c:h=[],h.length===0&&h.push(void 0);let b=(p==null?void 0:p.type)==="contentType"?p.value:d;f=Ln(h,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let I={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:l,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return[I,le(ae({},I),{audioCapabilities:void 0,videoCapabilities:void 0})]}function Oc(n,e,t){var f,g;let{EME_DEFAULT_AUDIO_CODECS:r,EME_DEFAULT_VIDEO_CODECS:i}=U.getCurrent(),o=(n==null?void 0:n.type)==="contentType"?n==null?void 0:n.value:r,a=(e==null?void 0:e.type)==="contentType"?e.value:i,s=o.concat(a),d=(f=t.videoCapabilities)==null?void 0:f.map(p=>p.contentType),u=(g=t.audioCapabilities)==null?void 0:g.map(p=>p.contentType),c=[...d!=null?d:[],...u!=null?u:[]].filter(p=>p!==void 0);return c.length===0?[]:s.map(p=>{let{codecs:I,mimeType:h}=Vo(p),b=Q(c,p);return{codec:I,mimeType:h,result:b}})}function ks(n,e,t){m.info("DRM: Searching for compatible MediaKeySystemAccess");let r=Fe.getState(n);if(r!==null&&It.implementation===r.emeImplementation.implementation){let a=cg(e,r.mediaKeySystemAccess,r.keySystemOptions);if(a!==null)return m.info("DRM: Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:a.keySystemAccess,options:a.keySystemOptions,codecSupport:Oc(a.keySystemOptions.audioCapabilitiesConfig,a.keySystemOptions.videoCapabilitiesConfig,a.keySystemAccess.getConfiguration())}})}let i=e.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=U.getCurrent(),u=d[s.type],c;if(!_(u))c=u.map(l=>({keyName:s.type,keyType:l,keySystemOptions:s}));else{let l=fg(s.type),f=s.type;c=[{keyName:l,keyType:f,keySystemOptions:s}]}return a.concat(c)},[]);return o(0);async function o(a){if(a>=i.length)throw new pe("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.");if(_(It.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,c=mg(s);m.debug(`DRM: Request keysystem access ${d},${a+1} of ${i.length}`);try{let l=await pg(d,c);return m.info("DRM: Found compatible keysystem",d,a+1),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:l,codecSupport:Oc(u.audioCapabilitiesConfig,u.videoCapabilitiesConfig,l.getConfiguration())}}}catch(l){if(m.debug("DRM: Rejected access to keysystem",d,a+1),t.cancellationError!==null)throw t.cancellationError;return o(a+1)}}}async function pg(n,e){let t=await It.requestMediaKeySystemAccess(n,e);if(!Ac(n))try{let i=(await t.createMediaKeys()).createSession(),o=wc(xc);await i.generateRequest("cenc",o)}catch(r){throw m.debug("DRM: KeySystemAccess was granted but it is not usable"),r}return t}function Nn(n,e){for(let t of n)if(!e.some(i=>ge(i,t)))return!1;return!0}function Dc(n,e){for(let t of n)if(e.some(i=>ge(i,t)))return!0;return!1}var Br=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(ge(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Nn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Nn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Nn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var Fr=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new Br(e);m.debug("DRM-LSS: calling `createSession`",t);let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return _(i.closed)||i.closed.then(()=>{m.info("DRM-LSS: session was closed, removing it.",i.sessionId);let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn(`DRM-LSS: MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ae({},o)),m.debug("DRM-LSS: MediaKeySession added",o.sessionType,this._storage.length),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM-LSS: Reusing session:",r.mediaKeySession.sessionId,r.sessionType),ae({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ae({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM-LSS: generateRequest error. No MediaKeySession found with the given initData and initDataType"),Lr(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await Lr(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),Nr(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await Nr(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM-LSS: No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM-LSS: Closing all current MediaKeySessions",e.length),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){te(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM-LSS: Removing session without closing it",e.sessionId),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),gg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function gg(n){m.debug("DRM: Trying to close a MediaKeySession",n.sessionId);try{await So(n),m.debug("DRM: Succeeded to close MediaKeySession");return}catch(e){m.error("DRM: Could not close MediaKeySession: "+(e instanceof Error?e.toString():"Unknown error"));return}}function Yt(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var at=class{constructor(e){this.initData=e}toJSON(){return Po(this.initData)}static decode(e){return ft(e)}};function Un(n,e){var t,r;return(r=(t=Lc(n,e))!=null?t:Lc(e,n))!=null?r:!1}function Lc(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=at.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=at.decode(o.data):s=o.data.initData,!ge(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let c;d.data instanceof Uint8Array?c=d.data:typeof d.data=="string"?c=at.decode(d.data):c=d.data.initData;let l;if(u.data instanceof Uint8Array?l=u.data:typeof u.data=="string"?l=at.decode(u.data):l=u.data.initData,!ge(c,l))return!1;break}if(r===e.length)return null}return!0}return null}function hg(n){Wl(n,{save:"function",load:"function"},"persistentLicenseConfig")}var Kr=class{constructor(e){hg(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM-PSS: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(_(r)||!w(r.sessionId)){m.warn("DRM-PSS: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM-PSS: Updating session info.",i),this._entries.splice(o,1)}else m.info("DRM-PSS: Add new session",i);let a=yg(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new at(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM-PSS: initData to delete not found.");return}let r=this._entries[t];m.warn("DRM-PSS: Delete session from store",r.sessionId),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info(`DRM-PSS: Deleting last ${e} sessions.`),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM-PSS: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:Yt(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(e.keyIds!==void 0){if(e.keyIds.every(d=>{let u=Po(d);for(let c of o.keyIds)if(typeof c=="string"){if(u===c)return!0}else if(ge(c.initData,d))return!0;return!1}))return i}else{let s=e.values.getFormattedValues();if(Un(s,o.values))return i}break;case 3:let a=e.values.getFormattedValues();if(Un(a,o.values))return i;break;case 2:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d)try{let u=typeof o.initData=="string"?at.decode(o.initData):o.initData.initData;if(ge(u,s))return i}catch(u){m.warn("DRM-PSS: Could not decode initialization data.",u instanceof Error?u:"")}break}case 1:{let{initData:s,initDataHash:d}=r();if(o.initDataHash===d){if(typeof o.initData.length=="undefined")return i;if(ge(o.initData,s))return i}break}default:{let{initDataHash:s}=r();if(o.initData===s)return i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM-PSS: Could not save MediaKeySession information",t)}}};function yg(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new at(t)}))}var Ho=new WeakMap,gn={prepare(n){Ho.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=Yt(t);Ho.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=Ho.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=Ho.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if(Yt(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function Ig(n){let{persistentLicenseConfig:e}=n;return _(e)?null:(m.debug("DRM: Set the given license storage"),new Kr(e))}async function Cs(n,e,t){let r=await ks(n,e,t);if(t.cancellationError!==null)throw t.cancellationError;let{options:i,mediaKeySystemAccess:o,codecSupport:a}=r.value,s=Fe.getState(n),d=Ig(i);if(vs()&&s!==null&&r.type==="reuse-media-key-system-access"){let{mediaKeys:l,loadedSessionsStore:f}=s;if(gn.hasOne(l)===!1||!_(i.serverCertificate)&&gn.has(l,i.serverCertificate))return{mediaKeys:l,mediaKeySystemAccess:o,stores:{loadedSessionsStore:f,persistentSessionsStore:d},options:i,codecSupport:a}}let u=await bg(o);m.info("DRM: MediaKeys created with success");let c=new Fr(u);return{mediaKeys:u,mediaKeySystemAccess:o,stores:{loadedSessionsStore:c,persistentSessionsStore:d},options:i,codecSupport:a}}async function bg(n){m.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new pe("CREATE_MEDIA_KEYS_ERROR",t)}}async function Ps(n,e,t){let r=await Cs(n,e,t),{mediaKeys:i}=r;return n.mediaKeys!==null&&n.mediaKeys!==void 0&&i!==n.mediaKeys&&(m.debug("DRM: Disabling old MediaKeys"),await Pc(n)),r}function Vr(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function Ms(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(c){if(t.cancellationError!==null)throw t.cancellationError;if(!_(a)&&!a(c)||d++>=o)throw c;typeof s=="function"&&s(c,d);let l=Sg(r,d,i);return await fn(l),u()}}}function Sg(n,e,t){let r=n*Math.pow(2,e-1),i=Vr(r);return Math.min(i,t)}function As(n,e){return n.indexOf("playready")!==-1&&(zt||ar)?xo(e):e}var Bn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},xs={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function ws(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((c,l)=>{let[f,g]=typeof c=="string"?[c,l]:[l,c],p=As(t,new Uint8Array(g)),I={keyId:p.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug(`DRM: key status update (${Ne(p)}): ${f}`),f){case xs.EXPIRED:{let h=new pe("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Ne(p)})`,{keyStatuses:[I,...d]});if(o==="error"||o===void 0)throw h;switch(o){case"close-session":throw new Bn(h);case"fallback":a.push(p);break;default:o==="continue"||o===void 0?s.push(p):Qe(o);break}d.push(I);break}case xs.INTERNAL_ERROR:{let h=new pe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(p)})`,{keyStatuses:[I,...d]});switch(r){case void 0:case"error":throw h;case"close-session":throw new Bn(h);case"fallback":a.push(p);break;case"continue":s.push(p);break;default:if(r!==void 0)Qe(r);else throw h}d.push(I);break}case xs.OUTPUT_RESTRICTED:{let h=new pe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(p)})`,{keyStatuses:[I,...d]});switch(i){case void 0:case"error":throw h;case"fallback":a.push(p);break;case"continue":s.push(p);break;default:if(i!==void 0)Qe(i);else throw h}d.push(I);break}default:s.push(p);break}});let u;return d.length>0&&(u=new pe("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Os(n,e,t,r,i){m.info("DRM: Binding session events",n.sessionId);let{getLicenseConfig:o={}}=e,a=new B;a.linkToSignal(i),_(n.closed)||n.closed.then(()=>a.cancel()).catch(c=>{i.isCancelled()||(a.cancel(),r.onError(c))}),vo(n,c=>{a.cancel(),r.onError(new pe("KEY_ERROR",c.type))},a.signal),uc(n,()=>{m.info("DRM: keystatuseschange event received",n.sessionId);try{s()}catch(c){if(i.isCancelled()||a.isUsed()&&c instanceof lr)return;a.cancel(),r.onError(c)}},a.signal),Eo(n,c=>{let l=c,f=new Uint8Array(l.message),g=w(l.messageType)?l.messageType:"license-request";m.info(`DRM: Received message event, type ${g}`,n.sessionId);let p=u(o.retry);Ms(()=>d(f,g),p,a.signal).then(I=>{if(a.isUsed())return Promise.resolve();if(_(I))m.info("DRM: No license given, skipping session.update");else try{return Tg(n,I)}catch(h){a.cancel(),r.onError(h)}}).catch(I=>{if(a.isUsed())return;a.cancel();let h=Nc(I);if(!_(I)){let{fallbackOnLastTry:b}=I;if(b===!0){m.warn("DRM: Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new Fn(h));return}}r.onError(h)})},a.signal),m.info("DRM: transmitting current keystatuses",n.sessionId),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:c,blacklistedKeyIds:l,whitelistedKeyIds:f}=ws(n,e,t);c!==void 0&&(r.onWarning(c),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:l})}function d(c,l){let f;return new Promise((g,p)=>{try{m.debug("DRM: Calling `getLicense`",l);let b=e.getLicense(c,l),T=_(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{p(new zr(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(b).then(I,h)}catch(b){h(b)}function I(b){f!==void 0&&clearTimeout(f),g(b)}function h(b){f!==void 0&&clearTimeout(f),p(b)}})}function u(c){return{totalRetry:c!=null?c:2,baseDelay:200,maxDelay:3e3,shouldRetry:l=>l instanceof zr||_(l)||l.noRetry!==!0,onRetry:l=>r.onWarning(Nc(l))}}}function Nc(n){if(n instanceof zr)return new pe("KEY_LOAD_TIMEOUT","The license server took too much time to respond.");let e=new pe("KEY_LOAD_ERROR","An error occured when calling `getLicense`.");return!_(n)&&w(n.message)&&(e.message=n.message),e}async function Tg(n,e){m.info("DRM: Updating MediaKeySession with message");try{await n.update(e)}catch(t){let r=t instanceof Error?t.toString():"`session.update` failed";throw new pe("KEY_UPDATE_ERROR",r)}m.info("DRM: MediaKeySession update succeeded.")}var Fn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},zr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Fn.prototype),this.message=e}};async function _g(n,e){try{return await n.setServerCertificate(e)}catch(t){m.warn("DRM: mediaKeys.setServerCertificate returned an error",t instanceof Error?t:"");let r=t instanceof Error?t.toString():"`setServerCertificate` error";throw new pe("LICENSE_SERVER_CERTIFICATE_ERROR",r)}}async function Ds(n,e){if(gn.hasOne(n)===!0)return m.info("DRM: The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM: Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM: Setting server certificate on the MediaKeys"),gn.prepare(n);try{let t=await _g(n,e);return gn.set(n,e),{type:"success",value:t}}catch(t){return{type:"error",value:Wt(t)?t:new pe("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.")}}}function Ls(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM: Too many stored persistent sessions, removing some.",t,r),n.deleteOldSessions(r)}function Ns(n){if(Je(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(Je(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(Je(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var Hr=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return re(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Un(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=Eg(this._innerValues)),this._lazyFormattedValues}};function Eg(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:Yt(t)}))}function Us(n,e,t){let r=`${n};codecs="${e}"`,i=t.filter(o=>o.mimeType===n);if(i.length!==0)for(let{codec:o,mimeType:a,result:s}of i){let d=`${a};codecs="${o}"`;if(zo(r,d))return s}}var Wr=class extends ie{static hasEmeApis(){return!_(It.requestMediaKeySystemAccess)}constructor(e,t){super(),m.debug("DRM: Starting ContentDecryptor logic.");let r=new B;this._currentSessions=[],this._canceller=r,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this._supportedCodecWhenEncrypted=[],this.error=null,It.onEncrypted(e,i=>{m.debug("DRM: Encrypted event received from media element.");let o=Ko(i);o!==null&&this.onInitializationData(o)},r.signal),Ps(e,t,r.signal).then(i=>{let{options:o,mediaKeySystemAccess:a}=i;this._supportedCodecWhenEncrypted=i.codecSupport;let s;(_(o.persistentLicenseConfig)||o.persistentLicenseConfig.disableRetroCompatibility===!0)&&(s=Ns(a.keySystem)),this.systemId=s,this._stateData.state===0&&(this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:i,mediaElement:e}},this.trigger("stateChange",this._stateData.state))}).catch(i=>{this._onFatalError(i)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM: ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a}=t;if(r.disableMediaKeysAttachmentLock===!0&&(this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let d={emeImplementation:It,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,keySystemOptions:r};m.debug("DRM: Attaching current MediaKeys"),Ss(e,d,this._canceller.signal).then(async()=>{this._stateData.isMediaKeysAttached=2;let{serverCertificate:u}=r;if(!_(u)){let l=await Ds(i,u);l.type==="error"&&this.trigger("warning",l.value)}if(this._isStopped())return;let c=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},c!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(u=>{this._onFatalError(u)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}isCodecSupported(e,t){if(this._stateData.state===0){m.error("DRM: Asking for codec support while the ContentDecryptor is still initializing");return}return(this._stateData.state===3||this._stateData.state===4)&&m.error("DRM: Asking for codec support while the ContentDecryptor is disposed"),Us(e,t,this._supportedCodecWhenEncrypted)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=le(ae({},e),{values:new Hr(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var I,h,b;m.hasLevel("DEBUG")&&m.debug("DRM: processing init data",(I=e.content)==null?void 0:I.adaptation.type,(h=e.content)==null?void 0:h.representation.bitrate,((b=e.keyIds)!=null?b:[]).map(T=>Ne(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=X(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM: Unable to fallback from a non-decipherable quality."):(m.debug("DRM: Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM: Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let E=v.reduce((R,k)=>`${R}, ${Ne(k)}`,"");m.debug("DRM: Blacklisting new key ids",E)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),E=new Set;Fs(E,T);for(let R of v){let k=Array.from(E);for(let A of k)if(R.record.isAssociatedWithKeyId(A)){R.record.associateKeyIds(E.values());for(let M of k)!R.keyStatuses.whitelisted.some(x=>ge(x,M))&&!R.keyStatuses.blacklisted.some(x=>ge(x,M))&&R.keyStatuses.blacklisted.push(M);m.hasLevel("DEBUG")&&m.debug("DRM: Session already created for",Ne(A),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;_(o.persistentLicenseConfig)?a="temporary":vg(r)?a="persistent-license":(m.warn('DRM: Cannot create "persistent-license" session: not supported'),a="temporary");let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=U.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,c=await Es(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let l={record:c.value.keySessionRecord,source:c.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(l);let{mediaKeySession:f,sessionType:g}=c.value,p=!1;if(Os(f,o,r.keySystem,{onKeyUpdate:T=>{let v=Cg(e,l.record,o.singleLicensePer,l.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(l.record.associateKeyIds(v.whitelisted),l.record.associateKeyIds(v.blacklisted),l.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},l.record.getAssociatedKeyIds().length!==0&&g==="persistent-license"&&i.persistentSessionsStore!==null&&!p){let{persistentSessionsStore:E}=i;Ls(E,d-1),E.add(e,l.record.getAssociatedKeyIds(),f),p=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof Bn){m.warn("DRM: A session's closing condition has been triggered"),this._lockInitDataQueue();let E=this._currentSessions.indexOf(l);E>=0&&this._currentSessions.splice(E),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:l.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM: failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof Fn)){this._onFatalError(T);return}l.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM: blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),c.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let E=i.loadedSessionsStore.getEntryForSession(f);if(E===null||E.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(l);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new pe("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error")}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=X(this._currentSessions,c=>c.record.isCompatibleWith(e));if(o===void 0)return!1;if(e.forceSessionRecreation===!0)return this.removeSessionForInitData(e,t),!1;let s=o.blacklistedSessionError;if(!_(s))return e.type===void 0||e.content===void 0?(m.error("DRM: This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM: This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let c;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:l}=o.keyStatuses;c=Dc(e.keyIds,l)}else{let{whitelisted:l}=o.keyStatuses;c=!Nn(e.keyIds,l)}if(c)return e.content===void 0?(m.error("DRM: Cannot forbid key id, the content is unknown."),!0):(m.info("DRM: Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM: Init data already processed. Skipping it."),!0;let u=this._currentSessions.indexOf(o);return u===-1?m.error("DRM: Unable to remove processed init data: not found."):(m.debug("DRM: A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(u,1)),!1}removeSessionForInitData(e,t){let{stores:r}=t,i=r.loadedSessionsStore.reuse(e);i!==null&&r.loadedSessionsStore.closeSession(i.mediaKeySession).catch(()=>m.error("DRM: Cannot close the session from the loaded session store"));let o=X(this._currentSessions,s=>s.record.isCompatibleWith(e));if(o===void 0)return;let a=this._currentSessions.indexOf(o);a!==-1&&(m.debug("DRM: A session from a processed init is removed due to forceSessionRecreation policy."),this._currentSessions.splice(a,1))}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new De("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM: Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function vg(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&Q(e,"persistent-license")}function Uc(n,e){return n.filter(t=>!e.some(r=>ge(r,t)))}function Rg(n,e){let t=n.getAssociatedKeyIds(),r=Uc(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Ne(i)).join(", ")),r}function kg(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=Uc(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: init data keys missing in the license, blacklisting them",t.map(i=>Ne(i)).join(", ")),t}function Cg(n,e,t,r,i,o){var u;let a=[...i,...o],s=Rg(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let c=kg(n,d);d.push(...c);let{content:l}=n;if(r&&l!==void 0){if(t==="content"){let f=new Set,{manifest:g}=l;for(let p of g.periods)Fs(f,p);Bs(f,d)}else if(t==="periods"){let{manifest:f}=l;for(let g of f.periods){let p=new Set;if(Fs(p,g),((u=n.content)==null?void 0:u.period.id)===g.id)Bs(p,d);else{let I=Array.from(p);for(let h of I)if(d.some(T=>ge(T,h))){Bs(p,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function Bs(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>ge(o,r))||e.push(r)}function Fs(n,e){let t=e.adaptations,r=yr(t).reduce((i,o)=>_(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a.keyId)}function Kn(n){let e=Fe.getState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var Bc=Wr;function Fc(n){var t,r,i,o,a;let e=[];for(let s of n.periods){let d=[...(t=s.adaptations.video)!=null?t:[],...(r=s.adaptations.audio)!=null?r:[]];for(let u of d)if(u.supportStatus.hasCodecWithUndefinedSupport)for(let c of u.representations)c.isSupported===void 0&&e.push({mimeType:(i=c.mimeType)!=null?i:"",codec:(a=(o=c.codecs)==null?void 0:o[0])!=null?a:""})}return e}var Kc=[];function kt(n){Q(Kc,n)||(console.warn(n),Kc.push(n))}var $t=["audio","video","text"];function hn(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=K()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function yn(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=K()-e.time;return e.livePosition+t/1e3}function bt(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=K()-e.time;return e.maximumSafePosition+t/1e3}function mt(n,e){if(e===void 0)return Vs(n).filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1)}function zc(n,e){let t=null;for(let r=n.periods.length-1;r>=0;r--){let i=n.periods[r];if(Ks(i,e,t))return i;t=i}}function Wo(n,e){let t=e.end;if(t===void 0)return null;let r=X(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function Ks(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function Vs(n){let e=n.adaptations;return yr(e).reduce((t,r)=>_(r)?t:t.concat(r),[])}function Go(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>o.isSupported===!0&&o.decipherable!==!1):n.representations).map(Pg),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function qo(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function jo(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>s.isSupported===!0&&s.decipherable!==!1):i.representations).map(Vc),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>i.isSupported===!0&&i.decipherable!==!1):n.representations).map(Vc),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Pg(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function Vc(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u}}function Qt(n){switch(n.type){case"audio":return{type:"audio",track:Go(n,!1)};case"video":return{type:"video",track:jo(n,!1)};case"text":return{type:"text",track:qo(n)}}}function Hc(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}var Gr=class{constructor(e){this.supportMap=new Map,this.addCodecs(e)}addCodecs(e){for(let t of e){let r=this.supportMap.get(t.mimeType);r===void 0&&(r=new Map,this.supportMap.set(t.mimeType,r)),r.set(t.codec,{supported:t.supported,supportedIfEncrypted:t.supportedIfEncrypted})}}isSupported(e,t,r){let i=this.supportMap.get(e);if(i===void 0)return;let o=i.get(t);if(o!==void 0)return r?o.supportedIfEncrypted:o.supported}};var qr=class{constructor(e,t,r,i){if(this.id=e.id,this.adaptations=Object.keys(e.adaptations).reduce((o,a)=>{let s=e.adaptations[a];if(_(s))return o;let d=s.map(u=>{let c=new _r(u,r,{representationFilter:i});return c.representations.length>0&&c.supportStatus.hasSupportedCodec===!1&&t.push(c),c}).filter(u=>u.representations.length>0);if(d.every(u=>u.supportStatus.hasSupportedCodec===!1)&&s.length>0&&(a==="video"||a==="audio"))throw new J("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+a+" adaptations",{tracks:void 0});return d.length>0&&(o[a]=d),o},{}),!Array.isArray(this.adaptations.video)&&!Array.isArray(this.adaptations.audio))throw new J("MANIFEST_PARSE_ERROR","No supported audio and video tracks.");this.duration=e.duration,this.start=e.start,!_(this.duration)&&!_(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i===void 0)return;let o=!1;for(let a of i){if(!a.supportStatus.hasCodecWithUndefinedSupport){a.supportStatus.hasSupportedCodec===!0&&(o=!0);continue}let s=a.supportStatus.hasSupportedCodec;a.refreshCodecSupport(t),s!==!1&&a.supportStatus.hasSupportedCodec===!1&&e.push(a),o===!1?o=a.supportStatus.hasSupportedCodec:o===void 0&&a.supportStatus.hasSupportedCodec===!0&&(o=!0)}if((r==="video"||r==="audio")&&o===!1)throw new J("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+r+" adaptations",{tracks:void 0})},{})}getAdaptations(){return Vs(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return X(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return mt(this,e)}containsTime(e,t){return Ks(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e}}};function jr(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.getAdaptations(),o=e.getAdaptations();for(let a=0;a<i.length;a++){let s=i[a],d=ye(o,u=>u.id===s.id);if(d===-1){m.warn('Manifest: Adaptation "'+i[a].id+'" not found when merging.');let[u]=i.splice(a,1);a--,r.removedAdaptations.push({id:u.id,trackType:u.type})}else{let[u]=o.splice(d,1),c=[],l=[],f=[];r.updatedAdaptations.push({adaptation:s.id,trackType:s.type,updatedRepresentations:c,addedRepresentations:l,removedRepresentations:f});let g=s.representations,p=u.representations.slice();for(let I=0;I<g.length;I++){let h=g[I],b=ye(p,T=>T.id===h.id);if(b===-1){m.warn(`Manifest: Representation "${g[I].id}" not found when merging.`);let[T]=g.splice(I,1);I--,f.push(T.id)}else{let[T]=p.splice(b,1);c.push(h.getMetadataSnapshot()),h.cdnMetadata=T.cdnMetadata,t===0?h.index._replace(T.index):h.index._update(T.index)}}p.length>0&&(m.warn(`Manifest: ${p.length} new Representations found when merging.`),s.representations.push(...p),l.push(...p.map(I=>I.getMetadataSnapshot())))}}if(o.length>0){m.warn(`Manifest: ${o.length} new Adaptations found when merging.`);for(let a of o){let s=n.adaptations[a.type];s===void 0?n.adaptations[a.type]=[a]:s.push(a),r.addedAdaptations.push(a.getMetadataSnapshot())}}return r}function Wc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=jr(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let c=e.slice(r,o),l=s-r,f=n.splice(r,l,...c);t.removedPeriods.push(...f.map(g=>({id:g.id,start:g.start,end:g.end}))),t.addedPeriods.push(...c.map(g=>g.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("Manifest: error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function Gc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new J("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=ye(n,({id:s})=>s===e[0].id);if(i<0)throw new J("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=jr(n[i],e[0],1);t.updatedPeriods.push({period:j(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let c=a;c<n.length;c++)if(d.id===n[c].id){u=c;break}if(u<0){let c=-1;for(let g=a;g<n.length;g++)if(d.start<n[g].start){c=g;break}let l=c-a,f=n.splice(a,l,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(g=>({id:g.id,start:g.start,end:g.end})))}else{if(u>a){m.warn("Manifest: old Periods not found in new when updating, removing");let l=n.splice(a,u-a);t.removedPeriods.push(...l.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let c=jr(n[u],d,0);t.updatedPeriods.push({period:j(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:c})}a++}if(a<n.length){m.warn("Manifest: Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var Mg=Ze(),Yr=class extends ie{constructor(e,t,r){var s;super();let{representationFilter:i,manifestUpdateUrl:o}=t;this.manifestFormat=0,this.id=Mg(),this.expired=(s=e.expired)!=null?s:null,this.transport=e.transportType,this.clockOffset=e.clockOffset,this._cachedCodecSupport=new Gr([]);let a=[];if(this.periods=e.periods.map(d=>new qr(d,a,this._cachedCodecSupport,i)).sort((d,u)=>d.start-u.start),a.length>0){let d=new J("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:a.map(Qt)});r.push(d)}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=o,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}updateCodecSupport(e=[]){if(e.length===0)return null;this._cachedCodecSupport.addCodecs(e);let t=[];for(let r of this.periods)r.refreshCodecSupport(t,this._cachedCodecSupport);return this.trigger("supportUpdate",null),t.length>0?new J("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Qt)}):null}getPeriod(e){return X(this.periods,t=>e===t.id)}getPeriodForTime(e){return zc(this,e)}getNextPeriod(e){return X(this.periods,t=>t.start>e)}getPeriodAfter(e){return Wo(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return hn(this)}getLivePosition(){return yn(this)}getMaximumSafePosition(){return bt(this)}updateCodecSupportList(e){this._cachedCodecSupport=e}updateRepresentationsDeciperability(e){let t=Ag(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}getAdaptations(){kt("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){kt("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return kt("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),X(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}getCodecsWithUnknownSupport(){return Fc(this)}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=Wc(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=Gc(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.updateCodecSupport(),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function Ag(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations()){let o=!0;for(let a of i.representations){let s={manifest:n,period:r,adaptation:i,representation:a},d=e(s);d!==!1&&(o=!1),d!==a.decipherable&&(t.push(s),a.decipherable=d,d===!0?i.supportStatus.isDecipherable=!0:d===void 0&&i.supportStatus.isDecipherable===!1&&(i.supportStatus.isDecipherable=void 0),m.debug(`Decipherability changed for "${a.id}"`,`(${a.bitrate})`,String(a.decipherable)))}o&&(i.supportStatus.isDecipherable=!1)}return t}function Ct(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function In(n){if(_(n))return"";let{period:e,adaptation:t,representation:r,segment:i}=n,o;return i.isInit?o="init":i.complete?o=`${i.time}-${i.duration}`:o=`${i.time}`,`${t.type} P: ${e.id} A: ${t.id} R: ${r.id} S: ${o}`}var Vn=Yr;function Pt(n){return n instanceof Ee?new rt("PIPELINE_LOAD_ERROR",n):we(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function xg(n){return n instanceof Ee?n.type===cn.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===cn.TIMEOUT||n.type===cn.ERROR_EVENT:n instanceof nt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:Wt(n)&&n.code==="INTEGRITY_ERROR"}async function zs(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("Fetchers: no CDN given to `scheduleRequestWithCdns`.");let u=new Map,c=l();if(c===void 0)throw new Error("No CDN to request");return f(c);function l(){if(n===null){let h=u.get(null);return h!==void 0&&h.isBlacklisted?void 0:null}else{if(e===null)return I(n);{let h=e.getCdnPreferenceForResource(n);return I(h)}}}async function f(h){try{return await t(h,i)}catch(b){if(B.isCancellationError(b))throw b;h!==null&&e!==null&&e.downgradeCdn(h);let T=u.get(h);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(h,T)):T.errorCounter++,!xg(b))return T.blockedUntil=void 0,T.isBlacklisted=!0,g(b);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,E=Math.min(o*Math.pow(2,v-1),a),R=Vr(E);T.blockedUntil=K()+R}return g(b)}}async function g(h){let b=l();if(i.isCancelled())throw i.cancellationError;if(b===void 0)throw h;if(d(h),i.isCancelled())throw i.cancellationError;return p(b,h)}function p(h,b){let T=u.get(h);if(T===void 0||T.blockedUntil===void 0)return f(h);let v=K(),E=T.blockedUntil-v;if(E<=0)return f(h);let R=new B,k=R.linkToSignal(i);return new Promise((A,M)=>{e==null||e.addEventListener("priorityChange",()=>{let O=l();if(i.isCancelled())throw i.cancellationError;if(O===void 0)return L(b);O!==h&&(R.cancel(),p(O,b).then(x,L))},R.signal),Gt(E,R.signal).then(()=>f(h).then(x,L),Z);function x(O){k(),A(O)}function L(O){k(),M(O)}})}function I(h){var T;if(u.size===0)return h[0];let b=K();return(T=h.filter(v=>{var E;return((E=u.get(v))==null?void 0:E.isBlacklisted)!==!0}).reduce((v,E)=>{var k;let R=(k=u.get(E))==null?void 0:k.blockedUntil;return R!==void 0&&R<=b&&(R=void 0),v===void 0?[E,R]:v[1]===void 0?v:R===void 0?[E,void 0]:R<v[1]?[E,R]:v},void 0))==null?void 0:T[0]}}function Hs(n,e,t){return zs(null,null,n,e,t)}var $r=class extends ie{constructor(e,t,r){super(),this.scheduleManualRefresh=Z,this._manifestUrls=e,this._pipelines=t.manifest,this._transportName=t.transportName,this._settings=r,this._canceller=new B,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof Vn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var u;let t=this._canceller.signal,r=this._settings,i=this._transportName,o=this._pipelines,a=e!=null?e:(u=this._manifestUrls)==null?void 0:u[0],s=this._getBackoffSetting(c=>{this.trigger("warning",Pt(c))});try{let c=await d(a);return{parse:l=>this._parseLoadedManifest(c,l,a)}}catch(c){throw Pt(c)}function d(c){var h;let{loadManifest:l}=o,f=r.requestTimeout===void 0?U.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,g=r.connectionTimeout===void 0?U.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;f<0&&(f=void 0),g<0&&(g=void 0);let p={timeout:f,connectionTimeout:g,cmcdPayload:(h=r.cmcdDataBuilder)==null?void 0:h.getCmcdDataForManifest(i)};return Hs(()=>l(c,p,t),s,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var I;let i=K(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(h=>{this.trigger("warning",Pt(h))}),c=r!=null?r:(I=this._manifestUrls)==null?void 0:I[0],l={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:c};try{let h=this._pipelines.parseManifest(e,l,g,o,f);if(wg(h)){let{manifest:b,warnings:T}=await h;return p(b,T)}else return p(h.manifest,h.warnings)}catch(h){throw we(h,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(h){try{return await Hs(h,u,o)}catch(b){throw Pt(b)}}function g(h){for(let b of h){if(o.isCancelled())return;let T=we(b,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function p(h,b){g(b);let T=K()-i;return m.info(`MF: Manifest parsed in ${T}ms`),{manifest:h,sendingTime:s,receivedTime:d,parsingTime:T}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=U.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=U.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:K()-t,c=Math.max(this._settings.minimumManifestUpdateInterval-u,0),l=new B;if(l.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:g,delay:p,canUseUnsafeMode:I}=f,h=I&&d,b=t===void 0?0:K()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:g,unsafeMode:h})},Math.max((p!=null?p:0)-b,T));l.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var g;(g=e.expired)==null||g.then(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Z)},c);l.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,g;s===void 0?g=f:e.lifetime<3&&s>=100?(g=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MUS: Manifest update rythm is too frequent. Postponing next request.",f,g)):s>=e.lifetime*1e3/10?(g=Math.min(Math.max(f,0)+s,f*6),m.info("MUS: Manifest took too long to parse. Postponing next request",g,g)):g=f;let p=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(g,c));l.signal.register(()=>{clearTimeout(p)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info('Init: Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info('Init: Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:c,parsingTime:l}=d,f=K();if(o)e.replace(u);else try{e.update(u)}catch(p){let I=p instanceof Error?p.message:"unknown error";m.warn(`MUS: Attempt to update Manifest failed: ${I}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:h}=U.getCurrent(),b=c===void 0?0:K()-c,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=Z,E=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(h-b,T));v=this._canceller.signal.register(()=>{clearTimeout(E)});return}let g=K()-f;this._recursivelyRefreshManifest(e,{sendingTime:c,parsingTime:l,updatingTime:g})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function wg(n){return n instanceof Promise}var Ws=$r;var Qr=class extends ie{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=qc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=U.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=qc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function qc(n,e){return n.length===0?-1:e.id!==void 0?ye(n,t=>t.id===e.id):ye(n,t=>t.baseUrl===e.baseUrl)}function Gs(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("Fetchers: Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var qs=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},jc=qs;var Og=Ze();function js({bufferType:n,pipeline:e,cdnPrioritizer:t,cmcdDataBuilder:r,eventListeners:i,requestOptions:o}){let a;o.connectionTimeout===void 0||o.connectionTimeout<0?a=void 0:a=o.connectionTimeout;let s={timeout:o.requestTimeout<0?void 0:o.requestTimeout,connectionTimeout:a,cmcdPayload:void 0},d=Q(["audio","video"],n)?new jc:void 0,{loadSegment:u,parseSegment:c}=e;return async function(f,g,p){var $,q,W;let{segment:I,adaptation:h,representation:b,manifest:T,period:v}=f,E=In(f),R=Og(),k,A=[],M=0,x=!1,L={segment:I,type:h.type,language:h.language,isLive:T.isLive,periodStart:v.start,periodEnd:v.end,mimeType:b.mimeType,codecs:b.codecs[0],manifestPublishTime:T.publishTime},O={onProgress(z){var H;k===void 0&&z.totalSize!==void 0&&z.size<z.totalSize&&((H=i.onProgress)==null||H.call(i,{duration:z.duration,size:z.size,totalSize:z.totalSize,timestamp:K(),id:R}))},onNewChunk(z){g.onChunk(D(z,!0))}},N=d!==void 0?d.get(f):null;if(N!==null)return m.debug("SF: Found wanted segment in cache",E),g.onChunk(D(N,!1)),Promise.resolve();m.debug("SF: Beginning request",E),($=i.onRequestBegin)==null||$.call(i,{requestTimestamp:K(),id:R,content:f}),p.register(C);try{let z=await zs(f.representation.cdnMetadata,t,P,j({onRetry:F},o),p);if(z.resultType==="segment-loaded"){let H=z.resultData.responseData;d!==void 0&&d.add(f,z.resultData.responseData),g.onChunk(D(H,!1))}else z.resultType==="segment-created"&&g.onChunk(D(z.resultData,!1));m.debug("SF: Segment request ended with success",E),g.onAllChunksReceived(),z.resultType!=="segment-created"?(k=z.resultData,V()):k=null,p.isCancelled()||(q=i.onRequestEnd)==null||q.call(i,{id:R}),p.deregister(C)}catch(z){throw p.deregister(C),k=null,z instanceof Me?(m.debug("SF: Segment request aborted",E),z):(m.debug("SF: Segment request failed",E),(W=i.onRequestEnd)==null||W.call(i,{id:R}),Pt(z))}function C(){var z;k===void 0&&(m.debug("SF: Segment request cancelled",E),k=null,(z=i.onRequestEnd)==null||z.call(i,{id:R}))}function P(z){return s.cmcdPayload=r==null?void 0:r.getCmcdDataForSegmentRequest(f),u(z,L,s,p,O)}function D(z,H){A.push(!1);let se=A.length-1;return function(ue){let he={data:z,isChunked:H};try{let Y=c(he,L,ue);return A[se]||(M=M!==void 0&&Y.segmentType==="media"&&Y.chunkInfos!==null&&Y.chunkInfos.duration!==void 0?M+Y.chunkInfos.duration:void 0,A[se]=!0,V()),Y}catch(Y){throw we(Y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function F(z){g.onRetry(Pt(z))}function V(){var z;x||!_(k)&&k.size!==void 0&&k.requestDuration!==void 0&&A.length>0&&A.every(H=>H)&&(x=!0,(z=i.onMetrics)==null||z.call(i,{size:k.size,requestDuration:k.requestDuration,content:f,segmentDuration:M}))}}}function Yc({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=U.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var Zr=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("TP: the max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ot(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{g(),this._endTask(o)},c=p=>{r.beforeEnded(),u(),a(p)},l=p=>{u(),s(p)},f=new B,g=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(c).catch(p=>{!i.isCancelled()&&f.isUsed()&&p instanceof Me||l(p)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=Xr(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=Xr(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=Xr(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=Xr(e,this._pendingTasks);if(i<0){m.warn("TP: request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e=0;e<this._pendingTasks.length;e++){let t=this._pendingTasks[e];if(t.priority>=this._prioritySteps.low)return this._interruptPendingTask(t),this._interruptCancellableTasks()}}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("TP : Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=Xr(e.taskFn,this._pendingTasks);if(t<0){m.warn("TP: Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function Xr(n,e){return ye(e,t=>t.taskFn===n)}var Jr=class{constructor(e,t,r,i){let o=new Qr(i),{MIN_CANCELABLE_PRIORITY:a,MAX_HIGH_PRIORITY_LEVEL:s}=U.getCurrent();this._transport=e,this._prioritizer=new Zr({prioritySteps:{high:s,low:a}}),this._cdnPrioritizer=o,this._backoffOptions=r,this._cmcdDataBuilder=t}createSegmentFetcher(e,t){let r=Yc(this._backoffOptions),i=this._transport[e],o=js({bufferType:e,pipeline:i,cdnPrioritizer:this._cdnPrioritizer,cmcdDataBuilder:this._cmcdDataBuilder,eventListeners:t,requestOptions:r});return Gs(this._prioritizer,o)}};var Ys=Jr;var bn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return X(this._array,e)}has(e){return Q(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var ei=class extends ie{constructor(e,t,r){super(),this._canceller=new B,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new $s(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new J("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new J("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!0,clearSignal:o}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new bn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},$s=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=Yo(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=Yo(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=Yo(this._lastAudioAdaptation),t=Yo(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=$o(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=$o(this._lastAudioAdaptation))!=null?t:void 0;{let r=$o(this._lastAudioAdaptation),i=$o(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function Yo(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function $o(n){let{representations:e}=n,t=null,r;for(let i=0;i<e.length;i++)if(e[i].index!==r){r=e[i].index;let o=e[i].index.getEnd();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function Qs(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new ei(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("Init: end-of-stream order received."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var ti=class{constructor(e){this._segmentSinksStore=e,this._currentFreezeTimestamp=null}needToReload(e){let{readyState:t,rebuffering:r,freezing:i}=e;if((e.bufferGap!==void 0&&isFinite(e.bufferGap)?e.bufferGap:0)<6||r===null&&i===null||t>1)return this._currentFreezeTimestamp=null,!1;let a=K();this._currentFreezeTimestamp===null&&(this._currentFreezeTimestamp=a);let s=r!==null&&a-r.timestamp>4e3,d=i!==null&&a-i.timestamp>4e3;if((s||d)&&K()-this._currentFreezeTimestamp>4e3){let u=this._segmentSinksStore.getStatus("audio"),c=this._segmentSinksStore.getStatus("video"),l=!0,f=!0;for(let g of[u,c])if(g.type==="initialized")for(let p of g.value.getLastKnownInventory()){let{representation:I}=p.infos;if(I.decipherable===!1)return m.warn("Init: we have undecipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0;I.contentProtections!==void 0&&(f=!1,I.decipherable!==!0&&(l=!1))}if(!f&&l)return m.warn("Init: we are frozen despite only having decipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0}return!1}};function Qo({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Dg(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{let u=d instanceof Error?d.message:"Unknown error";m.error("Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Dg(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=Kl(t,e),u=()=>{if(isFinite(r)){for(let l of d)e-r>=l.end?a.push(l):e>=l.end&&e-r>l.start&&e-r<l.end&&a.push({start:l.start,end:e-r});_(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},c=()=>{if(isFinite(i)){for(let l of d)e+i<=l.start?a.push(l):e<=l.start&&e+i<l.end&&e+i>l.start&&a.push({start:e+i,end:l.end});_(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),c();for(let l of a)if(l.start<l.end){if(m.debug("GC: cleaning range from SegmentSink",l.start,l.end),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(l.start,l.end)}}var ni=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=K();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Ct(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var ri=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=U.getCurrent();this._inventory=[],this._bufferedHistory=new ni(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,c,l,f,g,p;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=U.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let I=e.map(h=>`${h.start}-${h.end}`).join(",");m.debug(`SI: synchronizing ${a!=null?a:"unknown"} buffered ranges:`,I)}let s=e.length;for(let I=0;I<s;I++){if(i===void 0)return;let h=e[I].start,b=e[I].end;if(b-h<o){m.warn("SI: skipped range when synchronizing because it was too small",a,h,b);continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-h<o;)i=t[++r];let v=null,E=r-T;if(E>0){let k=t[T+E-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug(`SI: ${E} segments GCed.`,a);let A=t.splice(T,E);for(let M of A)M.bufferedStart===void 0&&M.bufferedEnd===void 0&&M.status!==2&&this._bufferedHistory.addBufferedSegment(M.infos,null);r=T}if(i===void 0)return;if(b-((c=i.bufferedStart)!=null?c:i.start)>=o){if(Lg(i,h,v,a),r===t.length-1){Qc(i,b,a);return}i=t[++r];let k=(l=i.bufferedStart)!=null?l:i.start,A=(f=i.bufferedEnd)!=null?f:i.end,M=I<s-1?e[I+1].start:void 0;for(;i!==void 0&&!(b<k||b-k<o&&A-b>=o||M!==void 0&&b-k<A-M);){let x=t[r-1];x.bufferedEnd===void 0&&(i.precizeStart?x.bufferedEnd=i.start:x.infos.segment.complete?x.bufferedEnd=x.end:x.bufferedEnd=i.start,m.debug("SI: calculating buffered end of contiguous segment",a,x.bufferedEnd,x.end)),i.bufferedStart=x.bufferedEnd,i=t[++r],i!==void 0&&(k=(g=i.bufferedStart)!=null?g:i.start,A=(p=i.bufferedEnd)!=null?p:i.end)}}let R=t[r-1];R!==void 0&&Qc(R,b,a)}if(!_(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:I}=U.getCurrent(),h=K();for(let b=r;b<t.length;b++){let T=t[b];h-T.insertionTs>=I&&(m.debug("SI: A segment at the end has been completely GCed",a,`${T.start}-${T.end}`),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(b,1),b--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug(`SI: current ${a} inventory timeline:
2
+ `+Ng(this._inventory))}insertChunk({period:e,adaptation:t,representation:r,segment:i,chunkSize:o,start:a,end:s},d,u){if(i.isInit)return;let c=t.type;if(a>=s){m.warn("SI: Invalid chunked inserted: starts before it ends",c,a,s);return}let l=this._inventory,f={status:d?0:2,insertionTs:u,chunkSize:o,splitted:!1,start:a,end:s,precizeStart:!1,precizeEnd:!1,bufferedStart:void 0,bufferedEnd:void 0,infos:{segment:i,period:e,adaptation:t,representation:r}};for(let p=l.length-1;p>=0;p--){let I=l[p];if(I.start<=a)if(I.end<=a){for(m.debug("SI: Pushing segment strictly after previous one.",c,a,I.end),this._inventory.splice(p+1,0,f),p+=2;p<l.length&&l[p].start<f.end;){if(l[p].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[p].start),l[p].start=f.end,l[p].bufferedStart=void 0,l[p].precizeStart=l[p].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[p].start,l[p].end),l.splice(p,1)}return}else if(I.start===a)if(I.end<=s){for(m.debug("SI: Segment pushed replace another one",c,a,s,I.end),this._inventory.splice(p,1,f),p+=1;p<l.length&&l[p].start<f.end;){if(l[p].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[p].start),l[p].start=f.end,l[p].bufferedStart=void 0,l[p].precizeStart=l[p].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[p].start,l[p].end),l.splice(p,1)}return}else{m.debug("SI: Segment pushed ends before another with the same start",c,a,s,I.end),l.splice(p,0,f),I.start=f.end,I.bufferedStart=void 0,I.precizeStart=I.precizeStart&&f.precizeEnd;return}else if(I.end<=f.end){for(m.debug("SI: Segment pushed updates end of previous one",c,a,s,I.start,I.end),this._inventory.splice(p+1,0,f),I.end=f.start,I.bufferedEnd=void 0,I.precizeEnd=I.precizeEnd&&f.precizeStart,p+=2;p<l.length&&l[p].start<f.end;){if(l[p].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[p].start),l[p].start=f.end,l[p].bufferedStart=void 0,l[p].precizeStart=l[p].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[p].start,l[p].end),l.splice(p,1)}return}else{m.warn("SI: Segment pushed is contained in a previous one",c,a,s,I.start,I.end);let h={status:I.status,insertionTs:I.insertionTs,chunkSize:I.chunkSize,splitted:!0,start:f.end,end:I.end,precizeStart:I.precizeStart&&I.precizeEnd&&f.precizeEnd,precizeEnd:I.precizeEnd,bufferedStart:void 0,bufferedEnd:I.end,infos:I.infos};I.end=f.start,I.splitted=!0,I.bufferedEnd=void 0,I.precizeEnd=I.precizeEnd&&f.precizeStart,l.splice(p+1,0,f),l.splice(p+2,0,h);return}}let g=this._inventory[0];if(g===void 0){m.debug("SI: first segment pushed",c,a,s),this._inventory.push(f);return}if(g.start>=s)m.debug("SI: Segment pushed comes before all previous ones",c,a,s,g.start),this._inventory.splice(0,0,f);else if(g.end<=s){for(m.debug("SI: Segment pushed starts before and completely recovers the previous first one",c,a,s,g.start,g.end),this._inventory.splice(0,1,f);l.length>1&&l[1].start<f.end;){if(l[1].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",c,f.end,l[1].start),l[1].start=f.end,l[1].bufferedStart=void 0,l[1].precizeStart=f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",c,a,s,l[1].start,l[1].end),l.splice(1,1)}return}else{m.debug("SI: Segment pushed start of the next one",c,a,s,g.start,g.end),g.start=s,g.bufferedStart=void 0,g.precizeStart=f.precizeEnd,this._inventory.splice(0,0,f);return}}completeSegment(e){if(e.segment.isInit)return;let t=this._inventory,r=[];for(let i=0;i<t.length;i++)if(Ct(t[i].infos,e)){let o=!1;r.length>0&&(o=!0,r.length===1&&(m.warn("SI: Completed Segment is splitted.",e.segment.id,e.segment.time,e.segment.end),r[0].splitted=!0));let a=i,s=t[i].chunkSize;for(i+=1;i<t.length&&Ct(t[i].infos,e);){let f=t[i].chunkSize;s!==void 0&&f!==void 0&&(s+=f),i++}let d=i-1,u=d-a,c=t[d].end,l=t[d].bufferedEnd;u>0&&(this._inventory.splice(a+1,u),i-=u),this._inventory[a].status===0&&(this._inventory[a].status=1),this._inventory[a].chunkSize=s,this._inventory[a].end=c,this._inventory[a].bufferedEnd=l,this._inventory[a].splitted=o,r.push(this._inventory[a])}if(r.length===0)m.warn("SI: Completed Segment not found",e.segment.id,e.segment.time);else for(let i of r)i.bufferedStart!==void 0&&i.bufferedEnd!==void 0?i.status!==2&&this._bufferedHistory.addBufferedSegment(i.infos,{start:i.bufferedStart,end:i.bufferedEnd}):m.debug("SI: buffered range not known after sync. Skipping history.",i.start,i.end)}getInventory(){return this._inventory}getHistoryFor(e){return this._bufferedHistory.getHistoryFor(e)}};function Xs(n){if(n.bufferedStart===void 0||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=U.getCurrent();return Math.abs(e-n.bufferedStart)<=i&&(n.bufferedEnd===void 0||n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3))}function $c(n){if(n.bufferedEnd===void 0||!n.infos.segment.complete||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=U.getCurrent();return Math.abs(t-n.bufferedEnd)<=i&&n.bufferedStart!==void 0&&n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3)}function Lg(n,e,t,r){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MISSING_DATA_TRIGGER_SYNC_DELAY:o,SEGMENT_SYNCHRONIZATION_DELAY:a}=U.getCurrent();if(n.bufferedStart!==void 0)n.bufferedStart<e&&(m.debug("SI: Segment partially GCed at the start",r,n.bufferedStart,e),n.bufferedStart=e),!n.precizeStart&&Xs(n)&&(n.start=n.bufferedStart,n.precizeStart=!0);else if(n.precizeStart)m.debug("SI: buffered start is precize start",r,n.start),n.bufferedStart=n.start;else if(t!==null&&t.end>e&&(t.precizeEnd||n.start-t.end<=i))m.debug("SI: buffered start is end of previous segment",r,e,n.start,t.end),n.bufferedStart=t.end,Xs(n)&&(n.start=t.end,n.precizeStart=!0);else if(n.start-e<=i){let s=K();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: found true buffered start",r,e,n.start),n.bufferedStart=e,Xs(n)&&(n.start=e,n.precizeStart=!0)}else if(e<n.start)m.debug("SI: range start too far from expected start",r,e,n.start),n.bufferedStart=n.start;else{let s=K();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the start",r,e,n.start),n.bufferedStart=e}}function Qc(n,e,t){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:r,MISSING_DATA_TRIGGER_SYNC_DELAY:i,SEGMENT_SYNCHRONIZATION_DELAY:o}=U.getCurrent();if(n.bufferedEnd!==void 0)n.bufferedEnd>e&&(m.debug("SI: Segment partially GCed at the end",t,n.bufferedEnd,e),n.bufferedEnd=e),!n.precizeEnd&&e-n.end<=r&&$c(n)&&(n.precizeEnd=!0,n.end=e);else if(n.precizeEnd)m.debug("SI: buffered end is precize end",t,n.end),n.bufferedEnd=n.end;else if(e-n.end<=r||!n.infos.segment.complete){let a=K();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: found true buffered end",t,e,n.end),n.bufferedEnd=e,$c(n)&&(n.end=e,n.precizeEnd=!0)}else if(e>n.end)m.debug("SI: range end too far from expected end",t,e,n.end),n.bufferedEnd=n.end;else{let a=K();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the end",t,n.bufferedEnd,e),n.bufferedEnd=e}}function Ng(n){let e=.016666666666666666,t={},r=[],i=null,o=null;function a(d){let u=String.fromCharCode(r.length+65);return r.push({letter:u,periodId:d.period.id,representationId:d.representation.id,bitrate:d.representation.bitrate}),u}let s="";for(let d=0;d<n.length;d++){let u=n[d];if(u.bufferedStart!==void 0&&u.bufferedEnd!==void 0){let c=u.infos.period.id,l=u.infos.representation.id,f=t[c],g;f===void 0?(g=a(u.infos),t[c]={[l]:g}):f[l]===void 0?(g=a(u.infos),f[l]=g):g=f[l],i===null?s+=`${u.bufferedStart.toFixed(2)}|${g}|`:o===g?i.bufferedEnd+e<u.bufferedStart&&(s+=`${i.bufferedEnd.toFixed(2)} ~ ${u.bufferedStart.toFixed(2)}|${g}|`):s+=`${i.bufferedEnd.toFixed(2)} ~ ${u.bufferedStart.toFixed(2)}|${g}|`,i=u,o=g}}return i!==null&&(s+=String(i.end.toFixed(2))),r.forEach(d=>{var u;s+=`
3
+ [${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function zn(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function Hn(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var Xc=ri;var Wn=class{constructor(){this._segmentInventory=new Xc}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var ii=class extends Wn{constructor(e,t,r){super(),m.info("AVSB: calling `mediaSource.addSourceBuffer`",t);let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){Zc(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){Zc(e.data.chunk),m.debug("AVSB: receiving order to push data to the SourceBuffer",this.bufferType,In(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("AVSB: pushing segment",this.bufferType,In(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,K()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,K());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("AVSB: receiving order to remove data from the SourceBuffer",this.bufferType,e,t);let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("AVSB: Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug(`AVSB: Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Zc(n){if(y.CURRENT_ENV!==y.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var Zo=ii;var oi=class extends Wn{constructor(e){m.debug("HTSB: Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("HTSB: Declaring initialization segment for Text SegmentSink",e)}freeInitSegment(e){m.warn("HTSB: Freeing initialization segment for Text SegmentSink",e)}async pushChunk(e){let{data:t}=e;Bg(t.chunk);let r=this._sender.pushTextData(le(ae({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,K()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("HTSB: Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Bg(n){if(y.CURRENT_ENV!==y.PRODUCTION&&(typeof n!="object"||n===null||typeof n.data!="string"||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number"))throw new Error("Invalid format given to a TextSegmentSink")}y.CURRENT_ENV===y.DEV&&(Fg=function(e){function t(r){}});var Fg;var Jc=oi;var Kg=["audio","video","text"],ai=class n{static isNative(e){return ef(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ot(e,t=>{let r,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn(`SBS: The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&this._onNativeBufferAddedOrDisabled.forEach(r=>r())}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(ef(e)){if(!_(r))return r instanceof Zo&&r.codec!==t?m.warn("SB: Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("SB: Reusing native SegmentSink with codec",t),r;m.info("SB: Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new Zo(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.forEach(s=>s()),a}if(!_(r))return m.info("SB: Reusing a previous custom SegmentSink for the type",e),r;let i;if(e==="text"){if(m.info("SB: Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new Jc(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("SB: Unknown buffer type:",e),new J("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(_(t)){m.warn("SB: Trying to dispose a SegmentSink that does not exist");return}m.info("SB: Aborting SegmentSink",e),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){Kg.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var t,r;return{bufferType:e,codec:(t=this._initializedSegmentSinks[e])==null?void 0:t.codec,segmentInventory:(r=this._initializedSegmentSinks[e])==null?void 0:r.getLastKnownInventory().map(i=>le(ae({},i),{infos:Vg(i.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function ef(n){return n==="audio"||n==="video"}function Vg(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var Xt=ai;var si=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};var di=class extends ie{constructor(e,t,r,i){super(),this._content=e,this._currentCanceller=null,this._downloadQueue=t,this._initSegmentRequest=null,this._mediaSegmentRequest=null,this._segmentFetcher=r,this._initSegmentInfoRef=new G(void 0),this._mediaSegmentAwaitingInitMetadata=null,i||this._initSegmentInfoRef.setValue(null)}getRequestedInitSegment(){return this._initSegmentRequest===null?null:this._initSegmentRequest.segment}getRequestedMediaSegment(){return this._mediaSegmentRequest===null?null:this._mediaSegmentRequest.segment}start(){this._currentCanceller===null&&(this._currentCanceller=new B,this._downloadQueue.onUpdate(e=>{let{segmentQueue:t}=e;if(t.length>0&&t[0].segment.id===this._mediaSegmentAwaitingInitMetadata)return;let r=this._mediaSegmentRequest;if(t.length===0){if(r===null)return;m.debug("Stream: no more media segment to request. Cancelling queue.",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}else if(r===null){m.debug("Stream: Media segments now need to be requested. Starting queue.",this._content.adaptation.type,t.length),this._restartMediaSegmentDownloadingQueue();return}else{let i=t[0];if(r.segment.id!==i.segment.id){m.debug("Stream: Next media segment changed, cancelling previous",this._content.adaptation.type),this._restartMediaSegmentDownloadingQueue();return}r.priority!==i.priority&&(m.debug("Stream: Priority of next media segment changed, updating",this._content.adaptation.type,r.priority,i.priority),this._segmentFetcher.updatePriority(r.request,i.priority));return}},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}),this._downloadQueue.onUpdate(e=>{var r;let t=this._initSegmentRequest;if(e.initSegment!==null&&t!==null){e.initSegment.priority!==t.priority&&this._segmentFetcher.updatePriority(t.request,e.initSegment.priority);return}else if(((r=e.initSegment)==null?void 0:r.segment.id)===(t==null?void 0:t.segment.id))return;e.initSegment===null&&m.debug("Stream: no more init segment to request. Cancelling queue.",this._content.adaptation.type),this._restartInitSegmentDownloadingQueue(e.initSegment)},{emitCurrentValue:!0,clearSignal:this._currentCanceller.signal}))}stop(){var e;(e=this._currentCanceller)==null||e.cancel(),this._currentCanceller=null}_restartMediaSegmentDownloadingQueue(){this._mediaSegmentRequest!==null&&this._mediaSegmentRequest.canceller.cancel();let{segmentQueue:e}=this._downloadQueue.getValue(),t=e[0],r=i=>{if(this._currentCanceller!==null&&this._currentCanceller.isUsed()){this._mediaSegmentRequest=null;return}if(i===void 0){this._mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let o=new B,a=this._currentCanceller===null?Z:o.linkToSignal(this._currentCanceller.signal),{segment:s,priority:d}=i,u=j({segment:s},this._content),c=!1,l=!1;o.signal.register(()=>{this._mediaSegmentRequest=null,!c&&(this._mediaSegmentAwaitingInitMetadata===s.id&&(this._mediaSegmentAwaitingInitMetadata=null),c=!0,l=!1)});let f=I=>{te(I.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",j({},I,{segment:s}))},g=()=>{let I=this._downloadQueue.getValue().segmentQueue;if(I.length===0){c=!0,this.trigger("emptyQueue",null);return}else I[0].segment.id===s.id&&I.shift();c=!0,r(I[0])},p=this._segmentFetcher.createRequest(u,d,{onRetry:I=>{this.trigger("requestRetry",{segment:s,error:I})},beforeInterrupted(){m.info("Stream: segment request interrupted temporarly.",s.id,s.time)},onChunk:I=>{let h=this._initSegmentInfoRef.getValue();h!==void 0?f(I(h!=null?h:void 0)):(l=!0,this._initSegmentInfoRef.waitUntilDefined(b=>{f(I(b!=null?b:void 0))},{clearSignal:o.signal}))},onAllChunksReceived:()=>{l?(this._mediaSegmentAwaitingInitMetadata=s.id,this._initSegmentInfoRef.waitUntilDefined(()=>{this._mediaSegmentAwaitingInitMetadata=null,l=!1,this.trigger("fullyLoadedSegment",s)},{clearSignal:o.signal})):this.trigger("fullyLoadedSegment",s)},beforeEnded:()=>{a(),this._mediaSegmentRequest=null,l?this._initSegmentInfoRef.waitUntilDefined(g,{clearSignal:o.signal}):g()}},o.signal);p.catch(I=>{a(),c||(c=!0,this.stop(),this.trigger("error",I))}),this._mediaSegmentRequest={segment:s,priority:d,request:p,canceller:o}};r(t)}_restartInitSegmentDownloadingQueue(e){if(this._currentCanceller!==null&&this._currentCanceller.isUsed()||(this._initSegmentRequest!==null&&this._initSegmentRequest.canceller.cancel(),e===null))return;let t=new B,r=this._currentCanceller===null?Z:t.linkToSignal(this._currentCanceller.signal),{segment:i,priority:o}=e,a=j({segment:i},this._content),s=!1,d=this._segmentFetcher.createRequest(a,o,{onRetry:u=>{this.trigger("requestRetry",{segment:i,error:u})},beforeInterrupted:()=>{m.info("Stream: init segment request interrupted temporarly.",i.id)},beforeEnded:()=>{r(),this._initSegmentRequest=null,s=!0},onChunk:u=>{var l;let c=u(void 0);te(c.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",j({},c,{segment:i})),c.segmentType==="init"&&this._initSegmentInfoRef.setValue((l=c.initTimescale)!=null?l:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",i)}},t.signal);d.catch(u=>{r(),s||(s=!0,this.stop(),this.trigger("error",u))}),t.signal.register(()=>{this._initSegmentRequest=null,!s&&(s=!0)}),this._initSegmentRequest={segment:i,priority:o,request:d,canceller:t}}};function Zs(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=zg(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let l=s.index.checkDiscontinuity(e.start);if(l!==null)return{start:void 0,end:l}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let l=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,l)!==!1?null:(m.debug("RS: current discontinuity encountered",a.type,u.bufferedStart),{start:void 0,end:l})}let c=Hg(i,e,d+1);if(c!==null){let l=i[c-1],f=i[c];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(l.infos.segment.end,f.infos.segment.time)!==!1)return null;let g=l.bufferedEnd,p=f.bufferedStart;return m.debug("RS: future discontinuity encountered",a.type,g,p),{start:g,end:p}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let l=Wg(i,o.end);if(l!==null){let f=i[l];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("RS: discontinuity encountered at the end of the current period",a.type,f.bufferedEnd,o.end),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let l=i.length-1;l>=0;l--){let f=i[l];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let g=s.index.checkDiscontinuity(e.end);if(g!==null)return{start:f.bufferedEnd,end:g}}return null}}}return null}function zg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function Hg(n,e,t){if(t<=0)return m.error("RS: Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function Wg(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function Js({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,c=Gg(n,a,s),l=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!tf(R.infos,e,t,r)),g=Zg(f,o,i),{MINIMUM_SEGMENT_SIZE:p,MIN_BUFFER_AHEAD:I}=U.getCurrent(),h=!1,b=Math.min(1/60,p),T=!1,v=[];return{segmentsToLoad:l.filter(R=>{let k=j({segment:R},e);if(a.length>0&&a.some(C=>Ct(k,C)))return!1;let{duration:A,time:M,end:x}=R;if(R.isInit)return!0;if(h)return v.push(R),!1;if(R.complete&&A<p||a.length>0&&a.some(C=>{if(C.period.id!==e.period.id||C.adaptation.id!==e.adaptation.id)return!1;let{segment:P}=C;if(P.time-b>M)return!1;if(P.complete){if(P.end+b<x)return!1}else if(Math.abs(M-P.time)>M)return!1;return!tf(C,k,t,r)}))return!1;for(let N=0;N<g.length;N++){let C=g[N],P=C.infos.period.id===e.period.id;if(C.status===1&&P){let D=C.infos.segment;if(M-D.time>-b){if(D.complete){if(D.end-x>-b)return!1}else if(Math.abs(M-D.time)<b)return!1}}}let L=A*e.representation.bitrate;if(c-L<0&&(T=!0,M>o.start+I))return h=!0,v.push(R),!1;let O=i(k);if(O.length>1){let N=O[O.length-1],C=O[O.length-2];if(N.buffered===null&&C.buffered===null)return m.warn("Stream: Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering."+d.type,u.id,R.time),!1}for(let N=0;N<g.length;N++){let C=g[N];if(C.end+b>M){let P=C.start>M+b||qg(g,N).end<x-b;return P&&(c-=L),P}}return c-=L,!0}),segmentsOnHold:v,isBufferFull:T}}function Gg(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function qg(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=U.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function tf(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=U.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:jg(n.representation,e.representation,r)}function jg(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=U.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function Yg(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=U.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream: The start of the wanted segment has been garbage collected",n.start,n.bufferedStart),!0):!1}function $g(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=U.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream: The end of the wanted segment has been garbage collected",n.end,n.bufferedEnd),!0):!1}function Qg(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Xg(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Zg(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if(Yg(r,a,e.start)){if(d=t(r.infos),Qg(d,r.bufferedStart))return!1;m.debug("Stream: skipping segment gc-ed at the start",r.start,r.bufferedStart)}if($g(r,s,e.end)){if(d=d!=null?d:t(r.infos),Xg(d,r.bufferedEnd))return!1;m.debug("Stream: skipping segment gc-ed at the end",r.end,r.bufferedEnd)}return!0})}function ui(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=U.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function ed(n,e,t,r,i,o,a){var M,x,L;let{representation:s}=n,d=(x=(M=t.getIsPaused())!=null?M:t.getReference().getValue().paused.pending)!=null?x:t.getReference().getValue().paused.last,u=(L=t.getPlaybackRate())!=null?L:t.getReference().getValue().speed,c=e;(d===void 0||u===void 0||d||u<=0)&&(c-=.1);let l=Jg(n,c,i),f=s.index.shouldRefresh(l.start,l.end),g=a.getPendingOperations().filter(O=>O.type===2).map(O=>O.value),p=a.getLastKnownInventory(),I=t.getCurrentTime();I===void 0&&(I=t.getReference().getValue().position.getWanted());let h=a.getSegmentHistory.bind(a),{segmentsToLoad:b,segmentsOnHold:T,isBufferFull:v}=Js({content:n,bufferedSegments:p,currentPlaybackTime:I,fastSwitchThreshold:r,getBufferedHistory:h,neededRange:l,segmentsBeingPushed:g,maxBufferSize:o}),E=b.map(O=>({priority:ui(O.time,c),segment:O})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&l.hasReachedPeriodEnd&&E.length===0&&T.length===0,k=null;return g.length>0&&(k=Math.min(...g.map(O=>O.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),E.length>0&&(k=k!==null?Math.min(k,E[0].segment.time):E[0].segment.time),{imminentDiscontinuity:Zs(n,l,k,R,p),hasFinishedLoading:R,neededSegments:E,isBufferFull:v,shouldRefreshManifest:f}}function Jg(n,e,t){var l;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!_(s)&&Xt.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&eh(i,o,e)?r=s-1:r=e-.1;let u=r+t,c;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?c=!1:s===void 0?c=u>=o.end:s===null?c=!0:c=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(l=o.end)!=null?l:1/0),hasReachedPeriodEnd:c}}function eh(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}async function li(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof Me)throw o;if(!(o instanceof it)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new J("BUFFER_APPEND_ERROR",d,{tracks:[Qt(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream: Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(await e.removeBuffer(0,d),await e.removeBuffer(u,Number.MAX_VALUE),await fn(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof Me)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new J("BUFFER_FULL_ERROR",u,{tracks:[Qt(t.inventoryInfos.adaptation)]})}}}async function td({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){if(a.cancellationError!==null)throw a.cancellationError;let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=j({segment:r,chunkSize:void 0,start:0,end:0},e),c=await li(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:c}}async function nd({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,A;if(i.chunkData===null)return null;if(s.cancellationError!==null)throw s.cancellationError;let{chunkData:d,chunkInfos:u,chunkOffset:c,chunkSize:l,appendWindow:f}=i,g=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:p}=U.getCurrent(),I=[f[0]!==void 0?Math.max(0,f[0]-p.START):void 0,f[1]!==void 0?f[1]+p.END:void 0],h={initSegmentUniqueId:r,chunk:d,timestampOffset:c,appendWindow:I,codec:g},b=(k=u==null?void 0:u.time)!=null?k:o.time,T=(A=u==null?void 0:u.duration)!=null?A:o.duration,v=b+T;I[0]!==void 0&&(b=Math.max(b,I[0])),I[1]!==void 0&&(v=Math.min(v,I[1]));let E=j({segment:o,chunkSize:l,start:b,end:v},t),R=await li(n,a,{data:h,inventoryInfos:E},e,s);return{content:t,segment:o,buffered:R}}function rd({content:n,options:e,playbackObserver:t,segmentSink:r,segmentFetcher:i,terminate:o},a,s){let{period:d,adaptation:u,representation:c}=n,{bufferGoal:l,maxBufferSize:f,drmSystemId:g,fastSwitchThreshold:p}=e,I=u.type,h=new B;h.linkToSignal(s);let b=new B;b.linkToSignal(h.signal);let T={segment:c.index.getInitSegment(),uniqueId:null,isLoaded:!1};h.signal.register(()=>{T.uniqueId!==null&&r.freeInitSegment(T.uniqueId)});let v=new G({initSegment:null,segmentQueue:[]},b.signal),E=T.segment!==null;E||(T.isLoaded=!0);let R=!1;if(g!==void 0){let L=c.getEncryptionData(g);if(L.length>0&&L.every(O=>O.keyIds!==void 0)&&(R=!0,a.encryptionDataEncountered(L.map(O=>j({content:n},O))),h.isUsed()))return}let k=new di(n,v,i,E);k.addEventListener("error",L=>{b.signal.isCancelled()||(h.cancel(),a.error(L))}),k.addEventListener("parsedInitSegment",M),k.addEventListener("parsedMediaSegment",M),k.addEventListener("emptyQueue",A),k.addEventListener("requestRetry",L=>{if(a.warning(L.error),b.signal.isCancelled())return;let O=L.segment,{index:N}=c;N.isSegmentStillAvailable(O)===!1?A():N.canBeOutOfSyncError(L.error,O)&&a.manifestMightBeOufOfSync()}),k.addEventListener("fullyLoadedSegment",L=>{r.signalSegmentComplete(j({segment:L},n)).catch(x)}),k.start(),b.signal.register(()=>{k.removeEventListener(),k.stop()}),t.listen(A,{includeLastObservation:!1,clearSignal:b.signal}),n.manifest.addEventListener("manifestUpdate",A,b.signal),l.onUpdate(A,{emitCurrentValue:!1,clearSignal:b.signal}),f.onUpdate(A,{emitCurrentValue:!1,clearSignal:b.signal}),o.onUpdate(A,{emitCurrentValue:!1,clearSignal:b.signal}),A();return;function A(){if(b.isUsed())return;let L=t.getReference().getValue(),O=L.position.getWanted(),N=ed(n,O,t,p.getValue(),l.getValue(),f.getValue(),r),{neededSegments:C}=N,P=null;if(c.index.isInitialized()){if(C.length>0&&!T.isLoaded&&T.segment!==null){let V=C[0].priority;P={segment:T.segment,priority:V}}}else if(T.segment===null)m.warn("Stream: Uninitialized index without an initialization segment");else if(T.isLoaded)m.warn("Stream: Uninitialized index with an already loaded initialization segment");else{let V=L.position.getWanted();P={segment:T.segment,priority:ui(d.start,V)}}let D=o.getValue();if(D===null)v.setValue({initSegment:P,segmentQueue:C});else if(D.urgent){m.debug("Stream: Urgent switch, terminate now.",I),v.setValue({initSegment:null,segmentQueue:[]}),v.finish(),b.cancel(),a.terminating();return}else{let V=C[0],$=k.getRequestedInitSegment(),q=k.getRequestedMediaSegment(),W=q===null||V===void 0||q.id!==V.segment.id?[]:[V],z=$===null?null:P;if(v.setValue({initSegment:z,segmentQueue:W}),W.length===0&&z===null){m.debug("Stream: No request left, terminate",I),v.finish(),b.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:L.position.getWanted(),bufferType:I,imminentDiscontinuity:N.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:N.hasFinishedLoading,neededSegments:N.neededSegments}),b.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:F}=U.getCurrent();if(N.isBufferFull){let V=Math.max(0,O-F);V>0&&r.removeBuffer(0,V).catch(x)}N.shouldRefreshManifest&&a.needsManifestRefresh()}function M(L){if(!h.isUsed()){for(let O of L.protectionData)c.addProtectionData(O.initDataType,O.keyId,O.initData);if(!R){let O=c.getAllEncryptionData();if(O.length>0&&(a.encryptionDataEncountered(O.map(N=>j({content:n},N))),R=!0,h.isUsed()))return}if(L.segmentType==="init"){if(!c.index.isInitialized()&&L.segmentList!==void 0&&c.index.initialize(L.segmentList),T.isLoaded=!0,L.initializationData!==null){let O=c.uniqueId;T.uniqueId=O,r.declareInitSegment(O,L.initializationData),td({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:O,segment:L.segment,segmentData:L.initializationData,segmentSink:r},h.signal).then(N=>{N!==null&&a.addedSegment(N)}).catch(x)}A();return}else{let{inbandEvents:O,predictedSegments:N,needsManifestRefresh:C}=L;if(N!==void 0&&c.index.addPredictedSegments(N,L.segment),C===!0&&(a.needsManifestRefresh(),h.isUsed())||O!==void 0&&O.length>0&&(a.inbandEvent(O),h.isUsed()))return;let P=T.uniqueId;nd({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:P,parsedSegment:L,segment:L.segment,segmentSink:r},h.signal).then(D=>{D!==null&&a.addedSegment(D)}).catch(x)}}}function x(L){h.isUsed()&&L instanceof Me||(h.cancel(),a.error(L))}}var nf=rd;function id(n,e,t,r,i){var f,g,p,I;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let h of o)h.infos.period.id===n.id&&(h.infos.adaptation.id!==e.id||!Q(t.representationIds,h.infos.representation.id))&&Ht(a,{start:(f=h.bufferedStart)!=null?f:h.start,end:(g=h.bufferedEnd)!=null?g:h.end});let s=r.getPendingOperations();for(let h of s)if(h.type===0){let b=h.value.inventoryInfos;if(b.period.id===n.id&&(b.adaptation.id!==e.id||!Q(t.representationIds,b.representation.id))){let T=b.segment.time,v=T+b.segment.duration;Ht(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let h=i.getReadyState();if(h===void 0||h>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],c=zn(o,n);if(c!==null&&(c.bufferedEnd===void 0||n.start-c.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:h}=U.getCurrent(),b=e.type,T=(p=h[b].before)!=null?p:0,v=(I=h[b].after)!=null?I:0,E=i.getCurrentTime();E===void 0&&(E=i.getReference().getValue().position.getPolled()),u.push({start:E-T,end:E+v})}if(n.end!==void 0){let h=Hn(o,n);h!==null&&(h.bufferedStart===void 0||h.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let l=mo(a,u);return l.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:l}:{type:"clean-buffer",value:l}}function od({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentFetcherCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:c,period:l,adaptation:f}=e,g=new B;g.linkToSignal(u);let p=new Map,I=new G(null,g.signal),h,b=e.representations.getValue().representationIds,T=e.adaptation.representations.filter(C=>Q(b,C.id)&&C.decipherable!==!1&&C.isSupported!==!1),v=new G(T,g.signal),{estimates:E,callbacks:R}=r({manifest:c,period:l,adaptation:f},I,v,n,g.signal),k=o.createSegmentFetcher(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics}),A=new G(0);E.onUpdate(({bitrate:C,knownStableBitrate:P})=>{t.enableFastSwitching&&A.setValueIfChanged(P),!(C===void 0||C===h)&&(h=C,m.debug(`Stream: new ${f.type} bitrate estimate`,C),d.bitrateEstimateChange({type:f.type,bitrate:C}))},{emitCurrentValue:!0,clearSignal:g.signal});let M;e.representations.onUpdate(C=>{M!==void 0&&M.cancel();let P=e.representations.getValue().representationIds,D=e.adaptation.representations.filter(F=>Q(P,F.id));v.setValueIfChanged(D),M=new B,M.linkToSignal(g.signal),x(C,M.signal).catch(F=>{(M==null?void 0:M.isUsed())===!0&&B.isCancellationError(F)||(g.cancel(),d.error(F))})},{clearSignal:g.signal,emitCurrentValue:!0});return;async function x(C,P){let D=id(l,f,C,i,n);switch(D.type){case"continue":break;case"needs-reload":return _t(()=>{n.listen(()=>{if(P.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:F}=U.getCurrent(),V=F.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:V,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:P})});case"flush-buffer":case"clean-buffer":for(let F of D.value)if(await i.removeBuffer(F.start,F.end),P.isCancelled())return;if(D.type==="flush-buffer"&&(d.needsBufferFlush(),P.isCancelled()))return;break;default:Qe(D)}L(P)}function L(C){let P=new B;P.linkToSignal(C);let{representation:D}=E.getValue();if(D===null)return;let F=new G(null,P.signal);E.onUpdate(q=>{if(!(q.representation===null||q.representation.id===D.id))return q.urgent?(m.info("Stream: urgent Representation switch",f.type),F.setValue({urgent:!0})):(m.info("Stream: slow Representation switch",f.type),F.setValue({urgent:!1}))},{clearSignal:P.signal,emitCurrentValue:!0});let V={type:f.type,adaptation:f,period:l,representation:D};if(I.setValue(D),g.isUsed()||(d.representationChange(V),g.isUsed()))return;let $={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(q){g.cancel(),d.error(q)},addedSegment(q){R.addedSegment(q)},terminating(){if(!P.isUsed())return P.cancel(),L(C)}};O(D,F,$,C)}function O(C,P,D,F){let V=new B;V.linkToSignal(F);let $=on(a,z=>z*N(C),V.signal),q=f.type==="video"?s:new G(1/0);m.info("Stream: changing representation",f.type,C.id,C.bitrate);let W=j({},D,{error(z){var se;let H=we(z,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(H.code!=="BUFFER_FULL_ERROR")D.error(z);else{let oe=a.getValue(),he=((se=p.get(C.id))!=null?se:1)*.7;if(he<=.05||oe*he<=2)throw H;p.set(C.id,he),Gt(4e3,g.signal).then(()=>O(C,P,D,F)).catch(Z)}},terminating(){V.cancel(),D.terminating()}});nf({playbackObserver:n,content:{representation:C,adaptation:f,period:l,manifest:c},segmentSink:i,segmentFetcher:k,terminate:P,options:{bufferGoal:$,maxBufferSize:q,drmSystemId:t.drmSystemId,fastSwitchThreshold:A}},W,F),c.addEventListener("manifestUpdate",z=>{for(let H of z.updatedPeriods)if(H.period.id===l.id){for(let se of H.result.updatedAdaptations)if(se.adaptation===f.id){for(let oe of se.removedRepresentations)if(oe===C.id)return F.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:0,stayInPeriod:!0})}}else if(H.period.start>l.start)break},F)}function N(C){let P=p.get(C.id),D=P!==void 0?P:1;return P===void 0&&p.set(C.id,D),D}}var rf=od;function ad(n,e,t,r,i,o){var g,p,I,h;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!th(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let b of a)b.infos.period.id===e.id&&b.infos.adaptation.id!==t.id&&Ht(s,{start:(g=b.bufferedStart)!=null?g:b.start,end:(p=b.bufferedEnd)!=null?p:b.end});let d=n.getPendingOperations();for(let b of d)if(b.type===0){let T=b.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,E=v+T.segment.duration;Ht(s,{start:v,end:E})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let b=i.getReadyState();if(b===void 0||b>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",c=[],l=zn(a,e);if(l!==null&&(l.bufferedEnd===void 0||e.start-l.bufferedEnd<1)&&c.push({start:0,end:e.start+1}),!u){let b=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=U.getCurrent(),v=(I=T[b].before)!=null?I:0,E=(h=T[b].after)!=null?h:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),c.push({start:R-v,end:R+E})}if(e.end!==void 0){let b=Hn(a,e);b!==null&&(b.bufferedStart===void 0||b.bufferedStart-e.end<1)&&c.push({start:e.end-1,end:Number.MAX_VALUE})}let f=mo(s,c);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function th(n,e){return n.representations.some(t=>t.isSupported===!0&&t.decipherable!==!1&&zo(t.getMimeTypeString(),e))}function sd({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentFetcherCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},c,l){let{manifest:f,period:g}=e,p=new G(void 0,l);if(c.periodStreamReady({type:n,manifest:f,period:g,adaptationRef:p}),l.isCancelled())return;let I,h=!0;p.onUpdate(v=>{(async()=>{var C;if(v===void 0)return;let E=new B;if(E.linkToSignal(l),I==null||I.cancel(),I=E,v===null){m.info(`Stream: Set no ${n} Adaptation. P:`,g.start);let P=a.getStatus(n);if(P.type==="initialized"){if(m.info(`Stream: Clearing previous ${n} SegmentSink`),Xt.isNative(n))return T(0,!0,E.signal);{let D=(C=g.end)!=null?C:1/0;if(g.start>D)m.warn("Stream: Can't free buffer: period's start is after its end");else if(await P.value.removeBuffer(g.start,D),E.isUsed())return}}else if(P.type==="uninitialized"&&(a.disableSegmentSink(n),E.isUsed()))return;return c.adaptationChange({type:n,adaptation:null,period:g}),E.isUsed()?void 0:of(r,d,n,{period:g},c,E.signal)}let R=g.adaptations[n],k=X(R!=null?R:[],P=>P.id===v.adaptationId);if(k===void 0){I.cancel(),m.warn("Stream: Unfound chosen Adaptation choice",v.adaptationId);return}let{DELTA_POSITION_AFTER_RELOAD:A}=U.getCurrent(),M=!1,x;if(h)x=0;else if(v.relativeResumingPosition!==void 0)x=v.relativeResumingPosition;else switch(M=!0,n){case"audio":x=A.trackSwitch.audio;break;case"video":x=A.trackSwitch.video;break;default:x=A.trackSwitch.other;break}if(h=!1,Xt.isNative(n)&&a.getStatus(n).type==="disabled")return T(x,!0,E.signal);f.addEventListener("manifestUpdate",P=>{for(let D of P.updatedPeriods)if(D.period.id===g.id){for(let F of D.result.removedAdaptations)if(F.id===k.id)return T(x,!0,E.signal)}else if(D.period.start>g.start)break},I.signal);let{representations:L}=v;if(m.info(`Stream: Updating ${n} adaptation`,`A: ${k.id}`,`P: ${g.start}`),c.adaptationChange({type:n,adaptation:k,period:g}),E.isUsed())return;let O=nh(a,n,k),N=ad(O,g,k,v.switchingMode,r,s);if(N.type==="needs-reload")return T(x,!0,E.signal);if(await a.waitForUsableBuffers(E.signal),!E.isUsed()){if(N.type==="flush-buffer"||N.type==="clean-buffer"){for(let{start:P,end:D}of N.value)if(await O.removeBuffer(P,D),E.isUsed())return;if(N.type==="flush-buffer"&&(c.needsBufferFlush({relativeResumingPosition:x,relativePosHasBeenDefaulted:M}),E.isUsed()))return}t.get(O)(E.signal),b(k,L,O,E.signal)}})().catch(E=>{E instanceof Me||(I==null||I.cancel(),c.error(E))})},{clearSignal:l,emitCurrentValue:!0});function b(v,E,R,k){let A=ih(r,v.type);rf({content:{manifest:f,period:g,adaptation:v,representations:E},options:s,playbackObserver:A,representationEstimator:i,segmentSink:R,segmentFetcherCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},le(ae({},c),{error:M}),k);function M(x){if(!Xt.isNative(n)){m.error(`Stream: ${n} Stream crashed. Aborting it.`,x instanceof Error?x:""),a.disposeSegmentSink(n);let L=we(x,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return c.warning(L),k.isCancelled()?void 0:of(r,d,n,{period:g},c,k)}m.error(`Stream: ${n} Stream crashed. Stopping playback.`,x instanceof Error?x:""),c.error(x)}}function T(v,E,R){_t(()=>{r.listen(()=>{R.isCancelled()||c.waitingMediaSourceReload({bufferType:n,period:g,timeOffset:v,stayInPeriod:E})},{includeLastObservation:!0,clearSignal:R})})}}function nh(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream: Reusing a previous SegmentSink for the type",e),r.value;let i=rh(t);return n.createSegmentSink(e,i)}function rh(n){let e=n.representations.filter(t=>t.isSupported===!0&&t.decipherable!==!1);if(e.length===0)throw new J("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Qt(n)]});return e[0].getMimeTypeString()}function ih(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new G(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],c=u!==null?fo(u,d.position.getWanted()):0;return j({},d,{bufferGap:c,buffered:u})}function s(){o.setValue(a())}})}function of(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),c=e.getValue(),l=u.position.getWanted();a.end!==void 0&&l+c>=a.end&&(m.debug('Stream: full "empty" AdaptationStream',t),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:l,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var af=sd;function Jo(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory();for(let i=0;i<r.length;i++){let o=r[i];if(e.some(s=>o.infos.period.id===s.period.id&&o.infos.adaptation.id===s.adaptation.id&&o.infos.representation.id===s.representation.id)){let{bufferedStart:s,bufferedEnd:d}=o;if(s===void 0||d===void 0)return m.warn("SO: No buffered start or end found from a segment."),[{start:0,end:Number.MAX_VALUE}];let u=t[t.length-1];u!==void 0&&u.end===s?u.end=d:t.push({start:s,end:d})}}return t}function dd(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:c,maxBufferBehind:l,wantedBufferAhead:f,maxVideoBufferSize:g}=o,{MINIMUM_MAX_BUFFER_AHEAD:p,MAXIMUM_MAX_BUFFER_AHEAD:I,MAXIMUM_MAX_BUFFER_BEHIND:h}=U.getCurrent(),b=new si(E=>{var M,x;let{bufferType:R}=E,k=(M=h[R])!=null?M:1/0,A=(x=I[R])!=null?x:1/0;return L=>{Qo({segmentSink:E,playbackObserver:e,maxBufferBehind:on(l,O=>Math.min(O,k),L),maxBufferAhead:on(c,O=>{var C;let N=Math.max(O,(C=p[R])!=null?C:0);return Math.min(N,A)},L)},L)}});for(let E of r.getBufferTypes())T(E,u);function T(E,R){let k=new bn((N,C)=>N.start-C.start),A=!1,M=new B;return M.linkToSignal(s),e.listen(({position:N})=>{var D;let C=N.getWanted();if(!A||!L(C))return;for(m.info("Stream: Destroying all PeriodStreams due to out of bounds situation",E,C),A=!1;k.length()>0;){let F=k.get(k.length()-1);k.removeElement(F),a.periodStreamCleared({type:E,manifest:d,period:F})}M.cancel(),M=new B,M.linkToSignal(s);let P=(D=d.getPeriodForTime(C))!=null?D:d.getNextPeriod(C);if(P===void 0){m.warn("Stream: The wanted position is not found in the Manifest."),A=!0;return}x(P)},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",N=>{s.isCancelled()||O(N).catch(C=>{s.isCancelled()||(M.cancel(),a.error(C))})},s),x(R);function x(N){let C=le(ae({},a),{waitingMediaSourceReload(P){let D=k.head();D===void 0||D.id!==P.period.id?a.lockedStream({bufferType:P.bufferType,period:P.period}):a.needsMediaSourceReload({timeOffset:P.timeOffset,minimumPosition:P.stayInPeriod?P.period.start:void 0,maximumPosition:P.stayInPeriod?P.period.end:void 0})},periodStreamReady(P){A=!0,k.add(P.period),a.periodStreamReady(P)},periodStreamCleared(P){k.removeElement(P.period),a.periodStreamCleared(P)},error(P){M.cancel(),a.error(P)}});v(E,N,C,M.signal)}function L(N){let C=k.head(),P=k.last();return C===void 0||P===void 0?!0:C.start>N||(_(P.end)?1/0:P.end)<N}async function O(N){let C=r.getStatus(E),P=N.filter(W=>W.adaptation.type===E);if(P.length===0||C.type!=="initialized"||P.every(W=>W.representation.decipherable===!0))return;let D=C.value,F=P.filter(W=>W.representation.decipherable===void 0),V=P.filter(W=>W.representation.decipherable===!1),$=Jo(D,V),q=Jo(D,F);for(A=!1,m.info("Stream: Destroying all PeriodStreams for decipherability matters",E);k.length()>0;){let W=k.get(k.length()-1);k.removeElement(W),a.periodStreamCleared({type:E,manifest:d,period:W})}M.cancel(),M=new B,M.linkToSignal(s);for(let{start:W,end:z}of[...$,...q]){if(s.isCancelled())return;if(W<z){if(s.isCancelled())return;await D.removeBuffer(W,z)}}_t(()=>{if(s.isCancelled())return;let W=e.getReference().getValue();if(sf(W,$)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(sf(W,q)&&(a.needsBufferFlush(),s.isCancelled()))return;let z=W.position.getWanted(),H=d.getPeriodForTime(z);if(H===void 0){a.error(new J("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}x(H)})}}function v(E,R,k,A){m.info("Stream: Creating new Stream for",E,R.start);let M=null,x=new B;x.linkToSignal(A),e.listen(({position:P},D)=>{if(R.end!==void 0&&P.getWanted()>=R.end){let F=d.getPeriodAfter(R);if(R.containsTime(P.getWanted(),F))return;m.info("Stream: Destroying PeriodStream as the current playhead moved above it",E,R.start,P.getWanted(),R.end),D(),k.periodStreamCleared({type:E,manifest:d,period:R}),x.cancel()}},{clearSignal:A,includeLastObservation:!0});let L={bufferType:E,content:{manifest:d,period:R},garbageCollectors:b,maxVideoBufferSize:g,segmentFetcherCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},O=le(ae({},k),{streamStatusUpdate(P){if(P.hasFinishedLoading){let D=d.getPeriodAfter(R);D!==null&&N(D)}else M!==null&&(m.info("Stream: Destroying next PeriodStream due to current one being active",E,M.period.start),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel(),M=null);k.streamStatusUpdate(P)},error(P){M!==null&&(M.canceller.cancel(),M=null),x.cancel(),k.error(P)}});af(L,O,x.signal),C(x.signal);function N(P){if(M!==null){if(M.period.id===P.id)return;m.warn("Stream: Creating next `PeriodStream` while one was already created.",E,P.id,M.period.id),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel()}let D=new B;D.linkToSignal(A),M={canceller:D,period:P},v(E,P,k,M.canceller.signal)}function C(P){d.addEventListener("manifestUpdate",D=>{for(let F of D.removedPeriods)if(F.id===R.id){if(d.periods.length>0&&d.periods[0].start<=F.start)return _t(()=>{if(!P.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(F.start>R.start)break;if(D.addedPeriods.length>0&&M!==null){let F=d.getPeriodAfter(R);(F===null||M.period.id!==F.id)&&(m.warn("Stream: Destroying next PeriodStream due to new one being added",E,M.period.start),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel(),M=null)}},P)}}}function sf(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var df=dd;var uf=df;var oh={dashParsers:{wasm:null,native:null,fastJs:null},createDebugElement:null,directfile:null,decrypt:null,htmlTextDisplayer:null,htmlTextTracksParsers:{},mainThreadMediaSourceInit:null,multithread:null,nativeTextDisplayer:null,nativeTextTracksParsers:{},transports:{}},ci=oh;function ea(n){for(let e=0;e<n.length;e++){let t=n[e];if(typeof t=="function")t(ci);else if(!_(t)&&typeof t._addFeature=="function")t._addFeature(ci);else throw new Error("Unrecognized feature")}}var me=ci;var ah={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},Z),{syncValue:e,getValueAsAsync(){return n}}}},lf=ah;var Gn=class extends ie{};function ud(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=X(n.sourceBuffers,s=>s.type==="audio"),i=X(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function ld(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,c){let l=new B;l.linkToSignal(c),l.linkToSignal(s);let f=new G(g(),l.signal);return o.onUpdate(p,{clearSignal:l.signal,emitCurrentValue:!1}),u.onUpdate(p,{clearSignal:l.signal,emitCurrentValue:!1}),f;function g(){let I=u.getValue(),h=o.getValue();return sh(I,r),{maximumPosition:bt(r),bufferGap:I.bufferGap,position:I.position,buffered:ud(i,a),duration:I.duration,rebuffering:I.rebuffering,freezing:I.freezing,paused:{last:I.paused,pending:dh(t,e)},readyState:I.readyState,speed:h}}function p(){f.setValue(g())}})}function sh(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function dh(n,e){return n.getValue()?void 0:!e}function qn(n){let{textTracks:e}=n;if(!_(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("Compat: Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}function cd(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function uh(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function fi(n,e){if(m.debug("Init: Trying to call endOfStream"),n.readyState!=="open"){m.debug("Init: MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=uh(t);if(r.length===0){m.info("Init: Triggering end of stream");try{n.endOfStream()}catch(o){m.error("Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");let i=new B;i.linkToSignal(e);for(let o of r)ac(o,()=>{i.cancel(),fi(n,e)},i.signal);sc(t,()=>{i.cancel(),fi(n,e)},i.signal)}function cf(n,e){let t=new B;t.linkToSignal(e),Dn(n,()=>{m.debug("Init: MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new B,t.linkToSignal(e),fi(n,t.signal)},e),fi(n,t.signal)}function fd(){return ln}var lh=365*24*3600,mi=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new B;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=mh(r,i),a=new B;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new B,a.linkToSignal(i);let d=fh(r.sourceBuffers,a.signal),u=new B;return u.linkToSignal(a.signal),d.onUpdate(c=>{u.cancel(),u=new B,u.linkToSignal(a.signal),!c&&mf(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function ch(n,e,t){let r=e;t||(r=fd()?1/0:ff(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("Init: Updating duration to what is currently buffered",i),n.duration=i}catch(o){return m.warn("Duration Updater: Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("Init: Updating duration",r),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=ff(e);m.info("Init: calling `mediaSource.setLiveSeekableRange`",s),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("Duration Updater: Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function fh(n,e){if(n.length===0){let i=new G(!1);return i.finish(),i}let t=new G(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function mh(n,e){let t=new G(n.readyState==="open",e);return Dn(n,()=>{m.debug("Init: Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),_o(n,()=>{m.debug("Init: Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),To(n,()=>{m.debug("Init: Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function mf(n,e,t,r){if(ch(n,e,t)==="success")return;let o=setTimeout(()=>{a(),mf(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function ff(n){return Math.max(Math.pow(2,32),n+lh)}var pi=class extends ie{constructor(e){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new B,_(an))throw new J("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("Init: Creating MediaSource");let t=new an,r=t.handle;this.handle=_(r)?{type:"media-source",value:t}:{type:"handle",value:r},this._mediaSource=t,this.readyState=t.readyState,this._durationUpdater=new mi(t),this._endOfStreamCanceller=null,Dn(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),_o(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),To(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal)}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new md(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new B,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("Init: end-of-stream order received."),cf(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("Init: resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),ph(this._mediaSource)}},md=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new B,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=a=>{let s;a instanceof Error?s=a:a.error instanceof Error?s=a.error:s=new Error("Unknown SourceBuffer Error");let d=this._currentOperations;if(this._currentOperations=[],d.length===0)m.error("SBI: error for an unknown operation",s);else{let u=new it(s.name,s.message,s.name==="QuotaExceededError");for(let c of d)c.reject(u)}},o=()=>{let a=this._currentOperations;this._currentOperations=[];try{for(let s of a)s.resolve(Pe(this._sourceBuffer.buffered))}catch(s){for(let d of a)s instanceof Error&&s.name==="InvalidStateError"?d.resolve([]):d.reject(s)}this._performNextOperation()};r.addEventListener("updateend",o),r.addEventListener("error",i),this._canceller.signal.register(()=>{r.removeEventListener("updateend",o),r.removeEventListener("error",i)})}appendBuffer(...e){return m.debug("SBI: receiving order to push data to the SourceBuffer",this.type),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("SBI: receiving order to remove data from the SourceBuffer",this.type,e,t),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Pe(this._sourceBuffer.buffered)}catch(e){return m.error("Failed to get buffered time range of SourceBuffer",this.type,e instanceof Error?e:null),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("Init: Failed to abort SourceBuffer:",e instanceof Error?e:null)}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_emptyCurrentQueue(){let e=new Me;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=j({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let c;s instanceof ArrayBuffer?c=new Uint8Array(s):s instanceof Uint8Array?c=s:c=new Uint8Array(s.buffer);let l=[c];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],g=(r=d.appendWindow)!=null?r:[void 0,void 0],p=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],I=(o=d.timestampOffset)!=null?o:0,h=(a=f.params[1].timestampOffset)!=null?a:0;if(g[0]===p[0]&&g[1]===p[1]&&d.codec===f.params[1].codec&&I===h){let b=f.params[0],T;b instanceof ArrayBuffer?T=new Uint8Array(b):b instanceof Uint8Array?T=b:T=new Uint8Array(b.buffer),l.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}l.length>1&&(m.info(`MMSI: Merging ${l.length} segments together for perf`,this.type),u=re(...l))}try{this._appendBufferNow(u,d)}catch(c){let l=c instanceof Error?new it(c.name,c.message,c.name==="QuotaExceededError"):new it("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(l)}),this._currentOperations=[]}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("SBI: removing data from SourceBuffer",this.type,s,d);try{this._sourceBuffer.remove(s,d)}catch(u){let c=u instanceof Error?new it(u.name,u.message,!1):new it("Error","Unknown SourceBuffer Error during remove",!1);e.reject(c),this._currentOperations=[]}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("SBI: updating codec",i),cd(r,i)?this.codec=i:m.debug("SBI: could not update codec",i,this.codec)),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("SBI: updating timestampOffset",i,r.timestampOffset,s),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("SBI: re-setting `appendWindowStart` to `0`"),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("SBI: pre-updating `appendWindowEnd`",s),r.appendWindowEnd=s}m.debug("SBI: setting `appendWindowStart`",a[0]),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("SBI: re-setting `appendWindowEnd` to `Infinity`"),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("SBI: setting `appendWindowEnd`",a[1]),r.appendWindowEnd=a[1]),m.debug("SBI: pushing segment",this.type),r.appendBuffer(e)}};function ph(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("Init: Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("Init: Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("Init: Not all SourceBuffers could have been removed.")}}var gh=Ze();function pd(n,e){if(e!==null&&n.src===e&&(m.info("Init: Clearing HTMLMediaElement's src"),qn(n)),e!==null)try{m.debug("Init: Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("Init: Error while revoking the media source URL",t instanceof Error?t:"")}}function hh(n,e){let t=w(n.src)?n.src:null;pd(n,t);let r=new pi(gh());return e.register(()=>{r.dispose()}),r}function ta(n,e){return ot(e,t=>{let r=hh(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("Init: MediaSource opened"),t(r)},e),m.info("MTCI: Attaching MediaSource URL to the media element"),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{pd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{pd(n,i)})}})}function gd(n,e,t){var i;if(!_(t)){let o=hn(n),a=bt(n);if(_(t.position))if(_(t.wallClockTime))if(_(t.fromFirstPosition))if(_(t.fromLastPosition))if(_(t.fromLivePosition)){if(!_(t.percentage)){m.debug("Init: using startAt.percentage");let{percentage:s}=t;if(s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{m.debug("Init: using startAt.fromLivePosition");let s=(i=yn(n))!=null?i:a,{fromLivePosition:d}=t;return d>=0?s:Math.max(o,s+d)}else{m.debug("Init: using startAt.fromLastPosition");let{fromLastPosition:s}=t;return s>=0?a:Math.max(o,a+s)}else{m.debug("Init: using startAt.fromFirstPosition");let{fromFirstPosition:s}=t;return s<=0?o:Math.min(a,o+s)}else{m.debug("Init: using startAt.wallClockTime");let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return Math.max(Math.min(d,a),o)}else return m.debug("Init: using startAt.minimumPosition"),Math.max(Math.min(t.position,a),o)}let r=hn(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=bt(n),d,{DEFAULT_LIVE_GAP:u}=U.getCurrent();if(a===void 0)m.info("Init: no clock offset found for a live content, starting close to maximum available position"),d=s;else{m.info("Init: clock offset found for a live content, checking if we can start close to it");let l=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(K()+a)/1e3-l;d=Math.min(s,f)}let c=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug(`Init: ${d} defined as the live time, applying a live gap of ${c}`),Math.max(d-c,r)}return m.info("Init: starting at the minimum available position:",r),r}function gi(){return La}function hd(n){return!(n&&un)}function yd(){return ln}function hi(n,e,t,r){let i=new B;i.linkToSignal(r);let o=new G(!1,i.signal);return n.listen(a=>{if(a.rebuffering!==null||a.freezing!==null||a.readyState===0)return;if(!hd(t)){if(isNaN(e.duration))return;if(e.duration>0){o.setValue(!0),i.cancel();return}}let s=yd()?4:3;if(a.readyState>=s&&(a.currentRange!==null||a.ended)&&(!gi()||e.duration>0)){o.setValue(!0),i.cancel();return}},{includeLastObservation:!0,clearSignal:i.signal}),o}var yh=!un,pf=yh;var jn=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function yi({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new G(!1,a);return{autoPlayResult:new Promise((u,c)=>{let l=a.register(b=>{c(b)});if(a.isCancelled())return;let f=!1,g=b=>{e.setCurrentTime(b),f=!0};if(!i||typeof t=="number"){let b=typeof t=="number"?t:t();b!==0&&g(b),p()}else e.listen((b,T)=>{if(b.readyState>=1){T();let v=typeof t=="number"?t:t();v!==0&&(pf?g(v):setTimeout(()=>{g(v)},0)),p()}},{includeLastObservation:!0,clearSignal:a});function p(){let b=!1;e.listen((T,v)=>{if(!b&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(b=!0),!(f&&!b||T.readyState===0)){if(v(),gi()&&n.duration===0){let E=new J("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(E)}a.isCancelled()||I()}},{includeLastObservation:!0,clearSignal:a})}function I(){e.listen((b,T)=>{b.seeking===0&&b.rebuffering===null&&b.readyState>=1&&(T(),h())},{includeLastObservation:!0,clearSignal:a})}function h(){var T;if(m.info("Init: Can begin to play content"),r){if(n.ended)return m.warn("Init: autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),l(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init: autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),l(),u({type:"skipped"});let b;try{b=(T=n.play())!=null?T:Promise.resolve()}catch(v){return l(),c(v)}b.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),l(),u({type:"autoplay"})}).catch(v=>{if(l(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init: Media element can't play. It may be due to browser auto-play policies.");let E=new J("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(E),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else c(v)})}}),initialPlayPerformed:s}}function Ii(n,e,t,r){if(e.length===0)return u("No `keySystems` option given.");if(me.decrypt===null)return u("EME feature not activated.");let i=new B;i.linkToSignal(r);let o=new G({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},r),a=me.decrypt;if(!a.hasEmeApis())return u("EME API not available on the current page.");m.debug("Init: Creating ContentDecryptor");let s=new a(n,e),d=c=>{var l;c>0&&((l=t.onCodecSupportUpdate)==null||l.call(t),s.removeEventListener("stateChange",d))};return s.addEventListener("stateChange",d),s.addEventListener("stateChange",c=>{if(c===1){let l=new G(!1);l.onUpdate((f,g)=>{f&&(g(),c===1&&s.attach())},{clearSignal:i.signal}),o.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:l}},drmSystemId:s.systemId})}else c===2&&(o.setValue({initializationState:{type:"initialized",value:null},drmSystemId:s.systemId}),s.removeEventListener("stateChange"))}),s.addEventListener("error",c=>{i.cancel(),t.onError(c)}),s.addEventListener("warning",c=>{t.onWarning(c)}),s.addEventListener("blackListProtectionData",c=>{t.onBlackListProtectionData(c)}),s.addEventListener("keyIdsCompatibilityUpdate",c=>{t.onKeyIdsCompatibilityUpdate(c)}),i.signal.register(()=>{s.dispose()}),{statusRef:o,contentDecryptor:{enabled:!0,value:s}};function u(c){let l=new pe("MEDIA_IS_ENCRYPTED_ERROR",c),f=new G({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return f.finish(),{statusRef:f,contentDecryptor:{enabled:!1,value:l}}}}var bi=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};var Si=1/60,Sn=class extends ie{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new B}start(){if(this._isStarted)return;this._isStarted=!0;let e=new Sd(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()});let t=null;this._playbackObserver.listen(r=>{let i=this._discontinuitiesStore,{buffered:o,position:a,readyState:s,rebuffering:d,freezing:u}=r,{BUFFER_DISCONTINUITY_THRESHOLD:c,FREEZING_STALLED_DELAY:l,UNFREEZING_SEEK_DELAY:f,UNFREEZING_DELTA_POSITION:g}=U.getCurrent();if(u!==null){let T=K(),v=t===null?u.timestamp:t.attemptTimestamp;if(!a.isAwaitingFuturePosition()&&T-v>f&&(m.warn("Init: trying to seek to un-freeze player"),this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime()+g),t={attemptTimestamp:T}),T-u.timestamp>l){d===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}}else t=null;if(d===null){if(e.stopRebuffering(),s===1){let T;r.seeking!==0?T=r.seeking===1?"internal-seek":"seeking":T="not-ready",this.trigger("stalled",T);return}this.trigger("unstalled",null);return}let p=d.reason==="seeking"&&r.seeking===1?"internal-seek":d.reason;if(a.isAwaitingFuturePosition()){e.stopRebuffering(),m.debug("Init: let rebuffering happen as we're awaiting a future position"),this.trigger("stalled",p);return}if(e.startRebuffering(),this._manifest===null){this.trigger("stalled",p);return}let{position:I}=d;if(I!=null&&this._speed.getValue()>0){let T=Ih(i,this._manifest,I);if(T!==null){let v=T+.001;if(v<=this._playbackObserver.getCurrentTime())m.info("Init: position to seek already reached, no seeking",this._playbackObserver.getCurrentTime(),v);else{m.warn("SA: skippable discontinuity found in the stream",a.getPolled(),v),this._playbackObserver.setCurrentTime(v),this.trigger("warning",bd(I,v));return}}}let h=I!=null?I:a.getPolled(),b=Fl(o,h);if(this._speed.getValue()>0&&b<c){let T=h+b+Si;if(this._playbackObserver.getCurrentTime()<T){m.warn("Init: discontinuity encountered inferior to the threshold",h,T,c),this._playbackObserver.setCurrentTime(T),this.trigger("warning",bd(h,T));return}}for(let T=this._manifest.periods.length-2;T>=0;T--){let v=this._manifest.periods[T];if(v.end!==void 0&&v.end<=h){if(this._manifest.periods[T+1].start>h&&this._manifest.periods[T+1].start>this._playbackObserver.getCurrentTime()){let E=this._manifest.periods[T+1];this._playbackObserver.setCurrentTime(E.start),this.trigger("warning",bd(h,E.start));return}break}}this.trigger("stalled",p)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();bh(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(!r.rebuffering||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn(`Init: rebuffering because of a future locked stream.
4
+ Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function Ih(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:c}=s,l=u!=null?u:d;if(t>=l-Si)if(c===null){let f=Wo(e,o);f!==null?a=f.start+Si:m.warn("Init: discontinuity at Period's end but no next Period")}else t<c+Si&&(a=c+Si);a!==void 0&&(m.info("Init: discontinuity found",t,a),r=r!==null&&r>a?r:a)}}return r}function Id(n){return n.discontinuity!==null}function bh(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){Id(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){Id(e)&&n.splice(a,0,e);return}Id(e)&&n.push(e)}}function bd(n,e){return new J("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeked at position "+String(e))}var Sd=class{constructor(e,t){this._speedUpdateCanceller=new B,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init: Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new B,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init: Resume playback speed",e),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function Sh(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var gf=Sh;function Th(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(gf(f,{id:d,start:a,end:s})){t.push(f);return}let c;if(u.value.element!==void 0)c=u.value.element;else if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((p,I)=>p+"xmlns:"+I.key+'="'+I.value+'" ',"<toremove ");f+=">";let g=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;c=g.children.length>0?g.children[0]:g.childNodes[0]}else return;let l={type:u.type,value:le(ae({},u.value),{element:c})};if(s===void 0){let f={start:a,id:d,data:l,publicEvent:{start:a,data:l}};t.push(f)}else{let f={start:a,end:s,id:d,data:l,publicEvent:{start:a,end:s,data:l}};t.push(f)}})}return t}var Td=Th;var Ti=class extends ie{constructor(e,t,r){super(),this._manifest=e,this._mediaElement=t,this._playbackObserver=r,this._canceller=null,this._scheduledEventsRef=new G([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new B;let e=this._canceller.signal,t=this._playbackObserver,r=this._mediaElement,i=!1,o=new B;o.linkToSignal(e),this._scheduledEventsRef.setValue(Td([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:a})=>{if(a===0){i&&(o.cancel(),o=new B,o.linkToSignal(e),i=!1);return}else if(i)return;i=!0;let s=l(),d=()=>{let f=l();this._emitStreamEvents(this._scheduledEventsRef.getValue(),s,f,o.signal),s=f},{STREAM_EVENT_EMITTER_POLL_INTERVAL:u}=U.getCurrent(),c=setInterval(d,u);t.listen(d,{includeLastObservation:!1,clearSignal:o.signal}),o.signal.register(()=>{clearInterval(c)});function l(){let f=t.getReference().getValue(),g=r.currentTime,p=f.seeking!==0;return{currentTime:g,isSeeking:p}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(Td(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let c=0;c<e.length;c++){let l=e[c],f=l.start,g=_d(l)?l.end:void 0;this._eventsBeingPlayed.has(l)?(f>s||g!==void 0&&s>=g)&&(_d(l)&&u.push(l.publicEvent),this._eventsBeingPlayed.delete(l)):f<=s&&g!==void 0&&s<g?(d.push({type:"stream-event",value:l.publicEvent}),this._eventsBeingPlayed.set(l,!0)):o<f&&s>=(g!=null?g:f)&&(a?d.push({type:"stream-event-skip",value:l.publicEvent}):(d.push({type:"stream-event",value:l.publicEvent}),_d(l)&&u.push(l.publicEvent)))}if(d.length>0){for(let c of d)if(c.type==="stream-event"?this.trigger("event",c.value):this.trigger("eventSkip",c.value),i.isCancelled())return}if(u.length>0){for(let c of u)if(typeof c.onExit=="function"&&c.onExit(),i.isCancelled())return}}};function _d(n){return n.end!==void 0}var hf=Ti;function _i(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(_(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new J("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new J("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new J("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new J("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new J("MEDIA_ERR_UNKNOWN",a))}}}var Tn=class extends Gn{constructor(e){super(),this._settings=e,this._initCanceller=new B,this._manifest=null,this._decryptionCapabilities={status:"uninitialized",value:null};let t=e.url===void 0?void 0:[e.url];this._cmcdDataBuilder=e.cmcd===void 0?null:new Xl(e.cmcd),this._manifestFetcher=new Ws(t,e.transport,le(ae({},e.manifestRequestSettings),{lowLatencyMode:e.lowLatencyMode,cmcdDataBuilder:this._cmcdDataBuilder}))}prepare(){this._manifest===null&&(this._manifest=lf.createAsync(ot(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),_i(e,r=>this._onFatalError(r),this._initCanceller.signal),this._initializeMediaSourceAndDecryption(e).then(r=>this._onInitialMediaSourceReady(e,r.mediaSource,t,r.drmSystemId,r.unlinkMediaSource)).catch(r=>{this._onFatalError(r)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_initializeMediaSourceAndDecryption(e){let t=this._initCanceller;return ot(t.signal,r=>{let{keySystems:i}=this._settings,{statusRef:o,contentDecryptor:a}=Ii(e,i,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();Eh(d,s)})().catch(Z)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();_h(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(Z)},onCodecSupportUpdate:()=>{var d,u;let s=(d=this._manifest)==null?void 0:d.syncValue;_(s)?(u=this._manifest)==null||u.getValueAsAsync().then(c=>{this._initCanceller.isUsed()||this._refreshManifestCodecSupport(c)},Z):this._refreshManifestCodecSupport(s)}},t.signal);a.enabled?this._decryptionCapabilities={status:"enabled",value:a.value}:this._decryptionCapabilities={status:"disabled",value:a.value},o.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new B;u.linkToSignal(t.signal),ta(e,u.signal).then(c=>{let l=o.getValue();if(l.initializationState.type==="awaiting-media-link")l.initializationState.value.isMediaLinked.setValue(!0),o.onUpdate((f,g)=>{if(f.initializationState.type==="initialized"){g(),r({mediaSource:c,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:t.signal});else if(s.initializationState.type==="initialized"){r({mediaSource:c,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(c=>{u.isUsed()||this._onFatalError(c)})},{emitCurrentValue:!0,clearSignal:t.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o){var x;let{adaptiveOptions:a,autoPlay:s,bufferOptions:d,lowLatencyMode:u,segmentRequestOptions:c,speed:l,startAt:f,textTrackOptions:g,transport:p}=this._settings,I=this._initCanceller;te(this._manifest!==null);let h;try{h=(x=this._manifest.syncValue)!=null?x:await this._manifest.getValueAsAsync()}catch(L){return}h.addEventListener("manifestUpdate",L=>{this.trigger("manifestUpdate",L),this._refreshManifestCodecSupport(h)},I.signal),h.addEventListener("decipherabilityUpdate",L=>{this.trigger("decipherabilityUpdate",L)},I.signal),h.addEventListener("supportUpdate",()=>{this.trigger("codecSupportUpdate",null)},I.signal),m.debug("Init: Calculating initial time");let b=gd(h,u,f);m.debug("Init: Initial time calculated:",b);let T=Ql(a),v=j({textTrackOptions:g,drmSystemId:i},d),E=new Ys(p,this._cmcdDataBuilder,c,I.signal);if(this._refreshManifestCodecSupport(h),this.trigger("manifestReady",h),I.isUsed())return;let R=this._startBufferingOnMediaSource.bind(this),k=this.trigger.bind(this),A=this._onFatalError.bind(this);M(t,b,s,o);function M(L,O,N,C){R({mediaElement:e,playbackObserver:r,mediaSource:L,initialTime:O,autoPlay:N,manifest:h,representationEstimator:T,segmentFetcherCreator:E,speed:l,bufferOptions:v},D,C.signal);function D(F){if(C.cancel(),I.isUsed()||(k("reloadingMediaSource",F),I.isUsed()))return;let V=new B;V.linkToSignal(I.signal),ta(e,V.signal).then($=>{M($,F.position,F.autoPlay,V)}).catch($=>{V.isUsed()||A($)})}}}_startBufferingOnMediaSource(e,t,r){var O,N;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:c,representationEstimator:l,segmentFetcherCreator:f,speed:g}=e,p=(O=s.getPeriodForTime(a))!=null?O:s.getNextPeriod(a);if(p===void 0){let C=new J("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(C)}let I=null,h=null;if(this._settings.textTrackOptions.textTrackMode==="html"&&me.htmlTextDisplayer!==null?h=new me.htmlTextDisplayer(d,this._settings.textTrackOptions.textTrackElement):me.nativeTextDisplayer!==null&&(h=new me.nativeTextDisplayer(d)),h!==null){let C=new bi(h);I=C,r.register(()=>{C.stop(),h==null||h.stop()})}let b=new Xt(u,d.nodeName==="VIDEO",I);r.register(()=>{b.disposeAll()});let{autoPlayResult:T,initialPlayPerformed:v}=yi({mediaElement:d,playbackObserver:c,startTime:a,mustAutoPlay:i,onWarning:C=>{this.trigger("warning",C)},isDirectfile:!1},r);if(r.isCancelled())return;v.onUpdate((C,P)=>{if(C){P();let D=new hf(s,d,c);s.addEventListener("manifestUpdate",()=>{D.onManifestUpdate(s)},r),D.addEventListener("event",F=>{this.trigger("streamEvent",F)},r),D.addEventListener("eventSkip",F=>{this.trigger("streamEventSkip",F)},r),D.start(),r.register(()=>{D.stop()})}},{clearSignal:r,emitCurrentValue:!0});let E=ld(c,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:h,initialPlayPerformed:v,speed:g},r);(N=this._cmcdDataBuilder)==null||N.startMonitoringPlayback(E),r.register(()=>{var C;(C=this._cmcdDataBuilder)==null||C.stopMonitoringPlayback()});let R=this._createRebufferingController(c,s,g,r),k=new ti(b);wl&&s.addEventListener("decipherabilityUpdate",C=>{C.some(P=>P.representation.decipherable!==!0)&&L(0,void 0,void 0)},r),c.listen(C=>{if(k.needToReload(C)){let P,D=c.getReference().getValue();D.position.isAwaitingFuturePosition()?P=D.position.getWanted():P=c.getCurrentTime();let F=v.getValue()?!c.getIsPaused():i;t({position:P,autoPlay:F})}},{clearSignal:r}),E.listen(C=>{["video","audio","text"].forEach(P=>{var F;let D=b.getStatus(P);D.type==="initialized"&&D.value.synchronizeInventory((F=C.buffered[P])!=null?F:[])})},{clearSignal:r});let A=Qs(s,u,E,b,{onWarning:C=>this.trigger("warning",C),onPeriodChanged:C=>this.trigger("activePeriodChanged",{period:C})},r);T.then(()=>{hi(c,d,!1,r).onUpdate((C,P)=>{C&&(P(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(D=>D(b.getSegmentSinksMetrics()))}))},{emitCurrentValue:!0,clearSignal:r})}).catch(C=>{r.isCancelled()||this._onFatalError(C)});let M=this;uf({manifest:s,initialPeriod:p},E,l,b,f,o,x(),r);function x(){return{needsBufferFlush:C=>{var $;let P,D=c.getCurrentTime(),F=($=C==null?void 0:C.relativeResumingPosition)!=null?$:0,V=!!(C!=null&&C.relativePosHasBeenDefaulted);F===0&&V?P=D+.001:P=D+F,c.setCurrentTime(P),c.listen((q,W)=>{(q.currentRange!==null||q.position.getPolled()>P+.1)&&(W(),c.setCurrentTime(q.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(C){let{period:P,bufferType:D,imminentDiscontinuity:F,position:V}=C;R.updateDiscontinuityInfo({period:P,bufferType:D,discontinuity:F,position:V}),!r.isCancelled()&&s.isLastPeriodKnown&&C.period.id===s.periods[s.periods.length-1].id&&(C.hasFinishedLoading||C.isEmptyStream?A.onLastSegmentFinishedLoading(C.bufferType):A.onLastSegmentLoadingResume(C.bufferType))},needsManifestRefresh:()=>M._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:C}=U.getCurrent();M._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:C})},lockedStream:C=>R.onLockedStream(C.bufferType,C.period),adaptationChange:C=>{M.trigger("adaptationChange",C),!r.isCancelled()&&A.onAdaptationChange(C.type,C.period,C.adaptation)},representationChange:C=>{M.trigger("representationChange",C),!r.isCancelled()&&A.onRepresentationChange(C.type,C.period)},inbandEvent:C=>M.trigger("inbandEvents",C),warning:C=>M.trigger("warning",C),periodStreamReady:C=>M.trigger("periodStreamReady",C),periodStreamCleared:C=>{A.onPeriodCleared(C.type,C.period),!r.isCancelled()&&M.trigger("periodStreamCleared",C)},bitrateEstimateChange:C=>{var P;(P=M._cmcdDataBuilder)==null||P.updateThroughput(C.type,C.bitrate),M.trigger("bitrateEstimateChange",C)},needsMediaSourceReload:C=>{L(C.timeOffset,C.minimumPosition,C.maximumPosition)},needsDecipherabilityFlush(){var P,D,F,V;let C=Kn(d);if(Ba(C==null?void 0:C[0])){let $=E.getReference().getValue(),q=$.position.isAwaitingFuturePosition()?$.position.getWanted():(P=E.getCurrentTime())!=null?P:$.position.getPolled(),W=(F=(D=$.paused.pending)!=null?D:E.getIsPaused())!=null?F:$.paused.last;t({position:q,autoPlay:!W})}else{let $=E.getReference().getValue(),q=$.position.isAwaitingFuturePosition()?$.position.getWanted():(V=E.getCurrentTime())!=null?V:$.position.getPolled();q+.001<$.duration?c.setCurrentTime(d.currentTime+.001):c.setCurrentTime(q)}},encryptionDataEncountered:C=>{if(M._decryptionCapabilities.status==="disabled"){M._onFatalError(M._decryptionCapabilities.value);return}else if(M._decryptionCapabilities.status==="uninitialized"){m.error("Init: received encryption data without known decryption capabilities");return}for(let P of C)if(M._decryptionCapabilities.value.onInitializationData(P),r.isCancelled())return},error:C=>M._onFatalError(C)}}function L(C,P,D){var W,z,H;let F=E.getReference().getValue(),V=F.position.isAwaitingFuturePosition()?F.position.getWanted():(W=E.getCurrentTime())!=null?W:F.position.getPolled(),$=(H=(z=F.paused.pending)!=null?z:E.getIsPaused())!=null?H:F.paused.last,q=V+C;P!==void 0&&(q=Math.max(P,q)),D!==void 0&&(q=Math.min(D,q)),t({position:q,autoPlay:!$})}}_createRebufferingController(e,t,r,i){let o=new Sn(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}getCodecsSupportInfo(e){return e.map(r=>{var s;let i=`${r.mimeType};codecs="${r.codec}"`,o=Oa(i);if(!o)return{mimeType:r.mimeType,codec:r.codec,supported:!1,supportedIfEncrypted:!1};let a;if(this._decryptionCapabilities.status==="uninitialized")a=void 0;else if(this._decryptionCapabilities.status==="disabled")a=!0;else{let d=this._decryptionCapabilities.value;d.getState()!==0&&(a=(s=d.isCodecSupported(r.mimeType,r.codec))!=null?s:!0)}return{mimeType:r.mimeType,codec:r.codec,supported:o,supportedIfEncrypted:a}})}_refreshManifestCodecSupport(e){let t=e.getCodecsWithUnknownSupport(),r=this.getCodecsSupportInfo(t);if(r.length>0)try{e.updateCodecSupport(r)}catch(i){this._onFatalError(i)}}};function _h(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(ge(d,s.keyId))return!1;for(let d of e)if(ge(d,s.keyId))return!0;for(let d of r)if(ge(d,s.keyId))return}return o.decipherable})}function Eh(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(c=>(u.systemId===void 0||c.systemId===u.systemId)&&ge(c.data,u.data))))return!1;return r.decipherable})}function Ed(n,e,t){let{repeatCount:r}=n;if(r>=0)return r;let i;return _(e)?t!==void 0?i=t:i=Number.MAX_VALUE:i=e.start,Math.ceil((i-n.start)/n.duration)-1}function ke(n,e,t){let{start:r,duration:i}=n;if(i<=0)return r;let o=Ed(n,e,t);return r+(o+1)*i}function He(n,e){var t;return n*e.timescale+((t=e.indexTimeOffset)!=null?t:0)}function St(n,e){var t;return(n-((t=e.indexTimeOffset)!=null?t:0))/e.timescale}function yf(n,e,t){return[n*t,(n+e)*t]}function vh(n,e){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i].start<=e?t=i+1:r=i}return t-1}function na(n,e,t){let{timeline:r}=n,i=He(e,n);if(i<0)return null;let o=vh(r,i);if(o<0||o>=r.length-1)return null;let a=r[o];if(a.duration<=0)return null;let s=r[o+1];if(s===void 0)return null;let d=s.start,u=ke(a,s,t);return i>=u&&i<d?St(d,n):null}function Mt(n,e){var i;let{initialization:t}=n,r={};return e!==void 0&&(r.isEMSGWhitelisted=e),{id:"init",isInit:!0,time:0,end:0,duration:0,timescale:1,range:_(t)?void 0:t.range,indexRange:n.indexRange,url:(i=t==null?void 0:t.url)!=null?i:null,complete:!0,privateInfos:r,timestampOffset:-(n.indexTimeOffset/n.timescale)}}function Rh(n,e){let t=n.toString();return t.length>=e?t:(new Array(e+1).join("0")+t).slice(-e)}function vd(n){return(e,t,r)=>{let i=w(r)?parseInt(r,10):1;return Rh(String(n),i)}}function st(n,e,t){return kh(n,e,t)}function kh(n,e,t){return n.indexOf("$")===-1?n:n.replace(/\$\$/g,"$").replace(/\$RepresentationID\$/g,String(e)).replace(/\$Bandwidth(\%0(\d+)d)?\$/g,vd(t===void 0?0:t))}function ra(n,e){return function(r){return r.indexOf("$")===-1?r:r.replace(/\$\$/g,"$").replace(/\$Number(\%0(\d+)d)?\$/g,(i,o,a)=>{if(e===void 0)throw new Error("Segment number not defined in a $Number$ scheme");return vd(e)(i,o,a)}).replace(/\$Time(\%0(\d+)d)?\$/g,(i,o,a)=>{if(n===void 0)throw new Error("Segment time not defined in a $Time$ scheme");return vd(n)(i,o,a)})}}function Ch(n,e,t){let r=t-n;return r>0?Math.floor(r/e):0}function Ei(n,e,t,r,i,o){var T;let a=r.getEstimatedMaximumPosition((T=n.availabilityTimeOffset)!=null?T:0),s=Math.min(e+t,a!=null?a:1/0),d=He(e,n),u=He(s,n),{timeline:c,timescale:l,segmentUrlTemplate:f,startNumber:g,endNumber:p}=n,I=g!=null?g:1,h=[],b=c.length;for(let v=0;v<b;v++){let E=c[v],{duration:R,start:k,range:A}=E,M;a===void 0?M=i:M=Math.min(a*l,i!=null?i:1/0);let x=Ed(E,c[v+1],M),L=n.availabilityTimeComplete!==!1||v!==b-1&&x!==0,O=Ch(k,R,d),N=k+O*R;for(;N<u&&O<=x;){let C=I+O;if(p!==void 0&&C>p)break;let P=f===null?null:ra(N,C)(f),D=N-n.indexTimeOffset,F=R;D<0&&(F=R+D,D=0);let V={id:String(N),time:D/l,end:(D+F)/l,duration:F/l,isInit:!1,range:A,timescale:1,url:P,number:C,timestampOffset:-(n.indexTimeOffset/l),complete:L,privateInfos:{isEMSGWhitelisted:o}};h.push(V),O++,N=k+O*R}if(N>=u||(I+=x+1,p!==void 0&&I>p))return h}return h}function Ph(n,e){if(e.timescale!==n.timescale){let{timescale:t}=n;n.timeline.push({start:e.time/e.timescale*t,duration:e.duration/e.timescale*t,repeatCount:e.count===void 0?0:e.count,range:e.range})}else n.timeline.push({start:e.time,duration:e.duration,repeatCount:e.count===void 0?0:e.count,range:e.range});return!0}var _n=class{constructor(e,t){var p,I,h,b;let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t,d=(p=e.timescale)!=null?p:1,c=((I=e.presentationTimeOffset)!=null?I:0)-r*d,l=((h=e.initialization)==null?void 0:h.media)===void 0?null:st(e.initialization.media,o,a),f=e.media===void 0?null:st(e.media,o,a),g;e.initialization!==void 0?g=e.initialization.range:e.indexRange!==void 0&&(g=[0,e.indexRange[0]-1]),this._index={indexRange:e.indexRange,indexTimeOffset:c,initialization:{url:l,range:g},segmentUrlTemplate:f,startNumber:e.startNumber,endNumber:e.endNumber,timeline:(b=e.timeline)!=null?b:[],timescale:d},this._manifestBoundsCalculator=t.manifestBoundsCalculator,this._scaledPeriodStart=He(r,this._index),this._scaledPeriodEnd=_(i)?void 0:He(i,this._index),this._isInitialized=this._index.timeline.length>0,this._isEMSGWhitelisted=s}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return Ei(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){let e=this._index;return e.timeline.length===0?null:St(Math.max(this._scaledPeriodStart,e.timeline[0].start),e)}getLastAvailablePosition(){var i;let{timeline:e}=this._index;if(e.length===0)return null;let t=e[e.length-1],r=Math.min(ke(t,null,this._scaledPeriodEnd),(i=this._scaledPeriodEnd)!=null?i:1/0);return St(r,this._index)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return this._isInitialized}initialize(e){if(!this._isInitialized){for(let t=0;t<e.length;t++)Ph(this._index,e[t]);this._isInitialized=!0}}addPredictedSegments(){m.warn("Cannot add predicted segments to a `BaseRepresentationIndex`")}_replace(e){this._index=e._index,this._isInitialized=e._isInitialized,this._scaledPeriodEnd=e._scaledPeriodEnd,this._isEMSGWhitelisted=e._isEMSGWhitelisted}_update(){m.error("Base RepresentationIndex: Cannot update a SegmentList")}};var En=class{constructor(e,t){var g,p,I;if(e.duration===void 0)throw new Error("Invalid SegmentList: no duration");let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t;this._isEMSGWhitelisted=s,this._periodStart=r,this._periodEnd=i;let d=(g=e.presentationTimeOffset)!=null?g:0,u=(p=e.timescale)!=null?p:1,c=d-r*u,l=((I=e.initialization)==null?void 0:I.media)===void 0?null:st(e.initialization.media,o,a),f=e.list.map(h=>({url:h.media===void 0?null:st(h.media,o,a),mediaRange:h.mediaRange}));this._index={list:f,timescale:u,duration:e.duration,indexTimeOffset:c,indexRange:e.indexRange,initialization:_(e.initialization)?void 0:{url:l,range:e.initialization.range}}}getInitSegment(){let e=Mt(this._index);return e.privateInfos===void 0&&(e.privateInfos={}),e.privateInfos.isEMSGWhitelisted=this._isEMSGWhitelisted,e}getSegments(e,t){let r=this._index,{duration:i,list:o,timescale:a}=r,s=i/a,d=e-this._periodStart,[u,c]=yf(d,t,a),l=Math.min(o.length-1,Math.floor(c/i)),f=[],g=Math.floor(u/i);for(;g<=l;){let p=o[g].mediaRange,I=o[g].url,h=g*s+this._periodStart,b={id:String(g),time:h,isInit:!1,range:p,duration:s,timescale:1,end:h+s,url:I,timestampOffset:-(r.indexTimeOffset/a),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};f.push(b),g++}return f}shouldRefresh(e,t){return!1}getFirstAvailablePosition(){return this._periodStart}getLastAvailablePosition(){var i;let e=this._index,{duration:t,list:r}=e;return Math.min(r.length*t/e.timescale+this._periodStart,(i=this._periodEnd)!=null?i:1/0)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return!0}initialize(){m.error("A `ListRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `ListRepresentationIndex`")}_replace(e){this._index=e._index}_update(){m.error("A `ListRepresentationIndex` cannot be updated")}};function Yn(n){return U.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR*n}var vn=class{constructor(e,t){var b,T,v;let{availabilityTimeOffset:r,manifestBoundsCalculator:i,isDynamic:o,periodEnd:a,periodStart:s,representationId:d,representationBitrate:u,isEMSGWhitelisted:c}=t,l=(b=e.timescale)!=null?b:1;this._availabilityTimeOffset=r,this._manifestBoundsCalculator=i;let f=(T=e.presentationTimeOffset)!=null?T:0,g=s*l,p=f-g;if(e.duration===void 0)throw new Error("Invalid SegmentTemplate: no duration");let I=((v=e.initialization)==null?void 0:v.media)===void 0?null:st(e.initialization.media,d,u),h=e.media===void 0?null:st(e.media,d,u);this._index={duration:e.duration,timescale:l,indexRange:e.indexRange,indexTimeOffset:p,initialization:_(e.initialization)?void 0:{url:I,range:e.initialization.range},url:h,presentationTimeOffset:f,startNumber:e.startNumber,endNumber:e.endNumber},this._isDynamic=o,this._periodStart=s,this._scaledRelativePeriodEnd=a===void 0?void 0:(a-s)*l,this._isEMSGWhitelisted=c}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){let r=this._index,{duration:i,startNumber:o,endNumber:a,timescale:s,url:d}=r,u=this._periodStart*s,c=this._scaledRelativePeriodEnd,l=e*s-u,f=(e+t)*s-u,g=this._getFirstSegmentStart(),p=this._getLastSegmentStart();if(_(g)||_(p))return[];let I=Math.max(g,l),h=Math.min(p,f);if(h+i<=I)return[];let b=[],T=o!=null?o:1,v=Math.floor(I/i);for(let E=v*i;E<=h;E+=i){let R=v+T;if(a!==void 0&&R>a)return b;let k=!_(c)&&E+i>c?c-E:i,A=E+u,M=E+this._index.presentationTimeOffset,x=d===null?null:ra(M,R)(d),L={id:String(R),number:R,time:A/s,end:(A+k)/s,duration:k/s,timescale:1,isInit:!1,scaledDuration:k/s,url:x,timestampOffset:-(r.indexTimeOffset/s),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};b.push(L),v++}return b}getFirstAvailablePosition(){let e=this._getFirstSegmentStart();return _(e)?e:e/this._index.timescale+this._periodStart}getLastAvailablePosition(){let e=this._getLastSegmentStart();if(_(e))return e;let t=this._estimateRelativeScaledEnd();return Math.min(e+this._index.duration,t!=null?t:1/0)/this._index.timescale+this._periodStart}getEnd(){if(!this._isDynamic)return this.getLastAvailablePosition();let e=this._estimateRelativeScaledEnd();if(e===void 0)return;let{timescale:t}=this._index;return(e+this._periodStart*t)/t}awaitSegmentBetween(e,t){if(te(e<=t),!this._isDynamic)return!1;let{timescale:r}=this._index,i=Yn(r),o=this._periodStart*r,a=e*r-o,s=t*r-o,d=this._getLastSegmentStart();if(_(d)){let l=this._estimateRelativeScaledEnd();return l===void 0?s+i>=0:s+i>=0&&a<l-i}let u=d+this._index.duration,c=this._estimateRelativeScaledEnd();return c===void 0?s>u-i:s>u-i&&a<c-i}shouldRefresh(){return!1}checkDiscontinuity(){return null}isSegmentStillAvailable(e){if(e.isInit)return!0;let t=this.getSegments(e.time,.1);return t.length===0?!1:t[0].time===e.time&&t[0].end===e.end&&t[0].number===e.number}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){if(!this._isDynamic)return!1;let e=this._estimateRelativeScaledEnd();if(e===void 0)return!0;let{timescale:t}=this._index,r=this._getLastSegmentStart();if(_(r))return!0;let i=r+this._index.duration,o=Yn(t);return i+o<e}isInitialized(){return!0}initialize(){m.error("A `TemplateRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TemplateRepresentationIndex`")}_replace(e){this._index=e._index,this._isDynamic=e._isDynamic,this._periodStart=e._periodStart,this._scaledRelativePeriodEnd=e._scaledRelativePeriodEnd,this._manifestBoundsCalculator=e._manifestBoundsCalculator}_update(e){this._replace(e)}_getFirstSegmentStart(){var a;if(!this._isDynamic)return 0;if(this._scaledRelativePeriodEnd===0||this._scaledRelativePeriodEnd===void 0){let s=this._manifestBoundsCalculator.getEstimatedMaximumPosition((a=this._availabilityTimeOffset)!=null?a:0);if(s!==void 0&&s<this._periodStart)return null}let{duration:e,timescale:t}=this._index,r=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime(e/t);if(r===void 0)return;let i=r>this._periodStart?(r-this._periodStart)*t:0;return Math.floor(i/e)*e}_getLastSegmentStart(){var o,a;let{duration:e,timescale:t,endNumber:r,startNumber:i=1}=this._index;if(this._isDynamic){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&this._scaledRelativePeriodEnd!==void 0&&this._scaledRelativePeriodEnd<s-this._periodStart*this._index.timescale){let l=Math.ceil(this._scaledRelativePeriodEnd/e);return r!==void 0&&r-i+1<l&&(l=r-i+1),(l-1)*e}let d=this._manifestBoundsCalculator.getEstimatedMaximumPosition((o=this._availabilityTimeOffset)!=null?o:0);if(d===void 0)return;let u=(d-this._periodStart)*t;if(u<0)return null;let c=Math.floor(u/e);return r!==void 0&&r-i+1<c&&(c=r-i+1),c<=0?null:(c-1)*e}else{let s=(a=this._scaledRelativePeriodEnd)!=null?a:0,d=Math.ceil(s/e);r!==void 0&&r-i+1<d&&(d=r-i+1);let u=(d-1)*e,c=U.getCurrent().MINIMUM_SEGMENT_SIZE*t;return r!==void 0||s-u>c||d<2?u:(d-2)*e}}_estimateRelativeScaledEnd(){var e,t;if(this._index.endNumber!==void 0){let r=this._index.endNumber-((e=this._index.startNumber)!=null?e:1)+1;return Math.max(Math.min(r*this._index.duration,(t=this._scaledRelativePeriodEnd)!=null?t:1/0),0)}if(this._scaledRelativePeriodEnd!==void 0)return Math.max(this._scaledRelativePeriodEnd,0)}};function vi(n,e){let t=0;for(;n.length>0;){let r=n[0];if(r.start>=e||r.repeatCount===-1)return t;if(r.repeatCount===0)n.shift(),t+=1;else{let i=n[1];if(i!==void 0&&i.start<=e)n.shift(),t+=1;else{if(r.duration<=0)return t;let o=r.start+r.duration,a=1;for(;o<e&&a<=r.repeatCount;)o+=r.duration,a++;if(a>r.repeatCount)n.shift(),t=r.repeatCount+1;else{let s=r.repeatCount-a;return r.start=o,r.repeatCount=s,t+=a,t}}}}return t}function Ri(n,e){if(n.length===0)return n.push(...e),!0;if(e.length===0)return!1;let t=n.length,r=e[0].start,i=n[t-1];if(ke(i,e[0])<r)throw new J("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");for(let c=t-1;c>=0;c--){let l=n[c].start;if(l===r){let f=t-c;return n.splice(c,f,...e),!1}else if(l<r){let f=n[c];if(f.start+f.duration>r)return m.warn("RepresentationIndex: Manifest update removed all previous segments"),n.splice(0,t,...e),!0;if(f.repeatCount===void 0||f.repeatCount<=0)return f.repeatCount<0&&(f.repeatCount=Math.floor((r-f.start)/f.duration)-1),n.splice(c+1,t-(c+1),...e),!1;if(f.start+f.duration*(f.repeatCount+1)<=r)return n.splice(c+1,t-(c+1),...e),!1;let p=(r-f.start)/f.duration-1;if(p%1===0&&f.duration===e[0].duration){let I=e[0].repeatCount<0?-1:e[0].repeatCount+p+1;return n.splice(c,t-c,...e),n[c].start=f.start,n[c].repeatCount=I,!1}return m.warn("RepresentationIndex: Manifest update removed previous segments"),n[c].repeatCount=Math.floor(p),n.splice(c+1,t-(c+1),...e),!1}}let a=n[n.length-1],s=e[e.length-1];if(a.repeatCount!==void 0&&a.repeatCount<0)return a.start>s.start?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0);let d=a.start+a.duration*(a.repeatCount+1),u=s.start+s.duration*(s.repeatCount+1);return d>=u?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0)}function ki(n,e,t){let r=n.start,i=n.duration,o=n.repeatCount;return r===void 0&&(e===null?r=0:_(e.duration)||(r=e.start+e.duration*(e.repeatCount+1))),(i===void 0||isNaN(i))&&t!==null&&t.start!==void 0&&!isNaN(t.start)&&r!==void 0&&!isNaN(r)&&(i=t.start-r),r!==void 0&&!isNaN(r)&&i!==void 0&&!isNaN(i)&&(o===void 0||!isNaN(o))?{start:r,duration:i,repeatCount:o===void 0?0:o}:(m.warn('DASH: A "S" Element could not have been parsed.'),null)}function Ci(n){let e={};for(let t of Object.keys(n.attributes)){let r=n.attributes[t];if(!_(r))switch(t){case"t":let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid t ("${r}")`):e.start=i;break;case"d":let o=parseInt(r,10);isNaN(o)?m.warn(`DASH: invalid d ("${r}")`):e.duration=o;break;case"r":let a=parseInt(r,10);isNaN(a)?m.warn(`DASH: invalid r ("${r}")`):e.repeatCount=a;break}}return e}function Pi(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"t":let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid t ("${r.value}")`):e.start=i;break;case"d":let o=parseInt(r.value,10);isNaN(o)?m.warn(`DASH: invalid d ("${r.value}")`):e.duration=o;break;case"r":let a=parseInt(r.value,10);isNaN(a)?m.warn(`DASH: invalid r ("${r.value}")`):e.repeatCount=a;break}}return e}function Zt(n){let e=[];if(Array.isArray(n))for(let r=0;r<n.length;r++)e.push(Ci(n[r]));else for(let r=0;r<n.length;r++)e.push(Pi(n[r]));let t=[];for(let r=0;r<e.length;r++){let i=e[r],o=t[t.length-1]===void 0?null:t[t.length-1],a=e[r+1]===void 0?null:e[r+1],s=ki(i,o,a);s!==null&&t.push(s)}return t}function Rd(n,e){if(n.length===0||e.length===0)return null;let t=n[0].start,r=Array.isArray(e)?e[0].attributes.t:e[0].getAttribute("t"),i=_(r)?null:parseInt(r,10);if(i===null||Number.isNaN(i))return null;if(t===i)return{prevSegmentsIdx:0,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(t<i){let o=n[0],a=0;for(;;){if(o.repeatCount>0){let s=i-o.start;if(s%o.duration===0&&s/o.duration<=o.repeatCount)return{repeatNumberInPrevSegments:s/o.duration,prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInNewElements:0}}if(a++,a>=n.length)return null;if(o=n[a],o.start===i)return{prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(o.start>i)return null}}else{let o=0,a=Array.isArray(e)?e[0]:null,s=Array.isArray(e)?null:e[0],d=i;for(;;){let u=a!==null?a.attributes.d:s==null?void 0:s.getAttribute("d"),c=_(u)?null:parseInt(u,10);if(c===null||Number.isNaN(c))return null;let l=a!==null?a.attributes.r:s==null?void 0:s.getAttribute("r"),f=_(l)?null:parseInt(l,10);if(f!==null){if(Number.isNaN(f)||f<0)return null;if(f>0){let I=t-d;if(I%c===0&&I/c<=f)return{repeatNumberInPrevSegments:0,repeatNumberInNewElements:I/c,prevSegmentsIdx:0,newElementsIdx:o}}d+=c*(f+1)}else d+=c;if(o++,o>=e.length)return null;Array.isArray(e)?a=e[o]:s=e[o];let g=a!==null?a.attributes.t:s==null?void 0:s.getAttribute("t"),p=_(g)?null:parseInt(g,10);if(p!==null){if(Number.isNaN(p))return null;d=p}if(d===t)return{newElementsIdx:o,prevSegmentsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(d>i)return null}}}function kd(n,e){var I;let t=Rd(e,n);if(t===null)return m.warn('DASH: Cannot perform "based" update. Common segment not found.'),Zt(n);let{prevSegmentsIdx:r,newElementsIdx:i,repeatNumberInPrevSegments:o,repeatNumberInNewElements:a}=t,d=e.length-r+i-1;if(d>=n.length)return m.info('DASH: Cannot perform "based" update. New timeline too short'),Zt(n);let u=e.slice(r);if(o>0){let h=u[0];h.start+=h.duration*o,u[0].repeatCount-=o}if(a>0&&i!==0)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form.'),Zt(n);let c=u[u.length-1],l=Array.isArray(n)?Ci(n[d]):Pi(n[d]),f=((I=l.repeatCount)!=null?I:0)-a;if(l.duration!==c.duration||c.repeatCount>f)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form at the beginning.'),Zt(n);l.repeatCount!==void 0&&l.repeatCount>c.repeatCount&&(c.repeatCount=l.repeatCount);let g=[],p=[];if(Array.isArray(n))for(let h=d+1;h<n.length;h++)p.push(Ci(n[h]));else for(let h=d+1;h<n.length;h++)p.push(Pi(n[h]));for(let h=0;h<p.length;h++){let b=p[h],T=g[g.length-1]===void 0?c:g[g.length-1],v=p[h+1]===void 0?null:p[h+1],E=ki(b,T,v);E!==null&&g.push(E)}return u.concat(g)}var Mi=class n{constructor(e,t){var E,R,k,A,M;if(!n.isTimelineIndexArgument(e))throw new Error("The given index is not compatible with a TimelineRepresentationIndex.");let{availabilityTimeComplete:r,availabilityTimeOffset:i,manifestBoundsCalculator:o,isDynamic:a,isLastPeriod:s,representationId:d,representationBitrate:u,periodStart:c,periodEnd:l,isEMSGWhitelisted:f}=t,g=(E=e.timescale)!=null?E:1,p=(R=e.presentationTimeOffset)!=null?R:0,I=c*g,h=p-I;this._manifestBoundsCalculator=o,this._isEMSGWhitelisted=f,this._isLastPeriod=s,this._lastUpdate=(k=t.receivedTime)!=null?k:K(),this._unsafelyBaseOnPreviousIndex=null,t.unsafelyBaseOnPreviousRepresentation!==null&&t.unsafelyBaseOnPreviousRepresentation.index instanceof n&&(t.unsafelyBaseOnPreviousRepresentation.index._unsafelyBaseOnPreviousIndex=null,this._unsafelyBaseOnPreviousIndex=t.unsafelyBaseOnPreviousRepresentation.index),this._isDynamic=a,this._parseTimeline=(A=e.timelineParser)!=null?A:null;let b=((M=e.initialization)==null?void 0:M.media)===void 0?null:st(e.initialization.media,d,u),T=e.media===void 0?null:st(e.media,d,u),v;i===void 0&&r===void 0?v=1/0:v=i!=null?i:0,this._index={availabilityTimeComplete:r!=null?r:!0,availabilityTimeOffset:v,indexRange:e.indexRange,indexTimeOffset:h,initialization:_(e.initialization)?void 0:{url:b,range:e.initialization.range},segmentUrlTemplate:T,startNumber:e.startNumber,endNumber:e.endNumber,timeline:e.timeline===void 0?null:Cd(e.timeline,e.startNumber,e.endNumber),timescale:g},this._scaledPeriodStart=He(c,this._index),this._scaledPeriodEnd=l===void 0?void 0:He(l,this._index)}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),Ei(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=this._index.timeline;return e.length===0?null:St(Math.max(this._scaledPeriodStart,e[0].start),this._index)}getLastAvailablePosition(){var r;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=ia(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(e===null)return null;let t=Math.min(e.end,(r=this._scaledPeriodEnd)!=null?r:1/0);return St(t,this._index)}getEnd(){var r;if(this._isDynamic&&!this._isLastPeriod)return;if(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),this._index.timeline.length<=0)return null;let e=this._index.timeline[this._index.timeline.length-1],t=Math.min(ke(e,null,this._scaledPeriodEnd),(r=this._scaledPeriodEnd)!=null?r:1/0);return St(t,this._index)}awaitSegmentBetween(e,t){var u,c;if(te(e<=t),!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timescale:r,timeline:i}=this._index,o=Yn(r),a=He(t,this._index),s=ia(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(s!==null&&Math.min(s.end,(u=this._scaledPeriodEnd)!=null?u:1/0)+o>=Math.min(a,(c=this._scaledPeriodEnd)!=null?c:1/0))return!1;let d=He(e,this._index);if(i.length>0&&s!==null&&!s.isLastOfTimeline){let l=i[i.length-1],g=ke(l,null,this._scaledPeriodEnd)+o;if(d<g+o)return!0}return this._isLastPeriod?this._scaledPeriodEnd===void 0?a+o>this._scaledPeriodStart?void 0:!1:d-o<this._scaledPeriodEnd&&a+o>this._scaledPeriodStart:!1}isSegmentStillAvailable(e){return e.isInit?!0:(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),Mh(e,this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd))}checkDiscontinuity(e){this._refreshTimeline();let t=this._index.timeline;return t===null&&(t=this._getTimeline(),this._index.timeline=t),na({timeline:t,timescale:this._index.timescale,indexTimeOffset:this._index.indexTimeOffset},e,this._scaledPeriodEnd)}canBeOutOfSyncError(e){return this._isDynamic?e instanceof rt&&e.isHttpError(404):!1}_replace(e){this._parseTimeline=e._parseTimeline,this._index=e._index,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._manifestBoundsCalculator=e._manifestBoundsCalculator,this._isLastPeriod=e._isLastPeriod}_update(e){this._index.timeline===null&&(this._index.timeline=this._getTimeline()),e._index.timeline===null&&(e._index.timeline=e._getTimeline()),Ri(this._index.timeline,e._index.timeline)&&(this._index.startNumber=e._index.startNumber),this._index.availabilityTimeOffset=e._index.availabilityTimeOffset,this._index.availabilityTimeComplete=e._index.availabilityTimeComplete,this._index.endNumber=e._index.endNumber,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._isLastPeriod=e._isLastPeriod}isStillAwaitingFutureSegments(){var a;if(!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timeline:e}=this._index;if(e.length===0){if(this._scaledPeriodEnd!==void 0){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&He(s,this._index)>this._scaledPeriodEnd)return!1}return this._isLastPeriod}let t=Yn(this._index.timescale),r=ia(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(r!==null&&!r.isLastOfTimeline){let s=Math.min(r.end,(a=this._scaledPeriodEnd)!=null?a:1/0);return!(this._scaledPeriodEnd!==void 0&&s+t>=this._scaledPeriodEnd)}if(!this._isLastPeriod)return!1;if(this._scaledPeriodEnd===void 0)return!0;let i=e[e.length-1];return ke(i,null,this._scaledPeriodEnd)+t<this._scaledPeriodEnd}isInitialized(){return!0}initialize(){m.error("A `TimelineRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`")}static isTimelineIndexArgument(e){return typeof e.timelineParser=="function"||Array.isArray(e.timeline)}_refreshTimeline(){var i,o;if(this._index.timeline===null&&(this._index.timeline=this._getTimeline()),!this._isDynamic)return;let e=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime(((o=(i=this._index.timeline[0])==null?void 0:i.duration)!=null?o:0)/this._index.timescale);if(_(e))return;let t=He(e,this._index),r=vi(this._index.timeline,t);this._index.startNumber!==void 0?this._index.startNumber+=r:this._index.endNumber!==void 0&&(this._index.startNumber=r+1)}_getTimeline(){if(this._parseTimeline===null)return this._index.timeline!==null?this._index.timeline:(m.error("DASH: Timeline already lazily parsed."),[]);let e=this._parseTimeline();this._parseTimeline=null;let{MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:t}=U.getCurrent();if(this._unsafelyBaseOnPreviousIndex===null||e.length<t)return Cd(Zt(e),this._index.startNumber,this._index.endNumber);let r;return this._unsafelyBaseOnPreviousIndex._index.timeline===null?(r=this._unsafelyBaseOnPreviousIndex._getTimeline(),this._unsafelyBaseOnPreviousIndex._index.timeline=r):r=this._unsafelyBaseOnPreviousIndex._index.timeline,this._unsafelyBaseOnPreviousIndex=null,Cd(kd(e,r),this._index.startNumber,this._index.endNumber)}};function Cd(n,e,t){if(t===void 0)return n;let r=e!=null?e:1;for(let i=0;i<n.length;i++){let o=n[i];if(r+=o.repeatCount+1,r>t){if(r===t+1)return n.slice(0,i+1);{let a=n.slice(0,i),s=ae({},o),d=r-o.repeatCount-1;return s.repeatCount=Math.max(0,t-d),a.push(s),a}}}return n}function Mh(n,e,t,r){let i=ia(e,t,r);if(i===null)return!1;for(let o=0;o<e.timeline.length;o++){if(i.timelineIdx<o)return!1;let a=e.timeline[o],s=(a.start-e.indexTimeOffset)/e.timescale;if(s>n.time)return!1;if(s===n.time)return a.range===void 0?n.range===void 0:!_(n.range)&&a.range[0]===n.range[0]&&a.range[1]===n.range[1];if(a.repeatCount>=0&&a.duration!==void 0){let u=(s-a.start)/a.duration-1;return u%1===0&&u<=i.newRepeatCount}}return!1}function ia(n,e,t){if(n.timeline.length<=0)return null;if(n.availabilityTimeOffset===1/0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ke(o,null,t)}}let r=e.getEstimatedMaximumPosition(n.availabilityTimeOffset);if(r===void 0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ke(o,null,t)}}for(let i=n.timeline.length-1;i>=n.timeline.length;i--){let o=n.timeline[i],a=o.start+o.duration;if(St(a,n)<=r){let s=ke(o,n.timeline[i+1],t);if(St(s,n)<=r)return{isLastOfTimeline:i===n.timeline.length-1,timelineIdx:i,newRepeatCount:o.repeatCount,end:a};{let u=He(r,n)-o.start,c=Math.floor(u/o.duration);return te(c>=1),{isLastOfTimeline:!1,timelineIdx:i,newRepeatCount:c-1,end:o.start+c*o.duration}}}}return null}var oa=Mi;var Ah=/^(?:[a-z]+:)?\/\//i,xh=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function xi(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(Ah.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?xi(n.substring(0,t)):e+1}function wh(n,e){let t=If(n),r=If(e);if(r.scheme)return Pd(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return r.authority?(i.authority=r.authority,i.path=Md(r.path),Pd(i)):(r.path===""?(i.path=t.path,r.query||(i.query=t.query)):Je(r.path,"/")?i.path=Md(r.path):i.path=Md(Dh(t,r.path)),Pd(i))}var Ai=new Map,Oh=200;function If(n){var r,i,o,a,s;if(Ai.has(n))return Ai.get(n);let e=n.match(xh),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},Ai.size>=Oh&&Ai.clear(),Ai.set(n,t),t}function Pd(n){let e="";return n.scheme&&(e+=n.scheme+":"),n.authority&&(e+="//"+n.authority),e+=n.path,n.query&&(e+="?"+n.query),n.fragment&&(e+="#"+n.fragment),e}function Md(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Dh(n,e){if(n.authority&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function bf(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=wh(a,s),u=e.slice(2);return bf(d,...u)}}var $n=bf;var wi=class{constructor(){this._refs=new Map,this._stored=[]}addReferences(e){for(let t of e)t.attributes.refId!==void 0&&this._refs.set(t.attributes.refId,t)}add(e,t){this._tryParsing(e,t,!1)||this._stored.push([e,t]),t.attributes.refId!==void 0&&(this._refs.set(t.attributes.refId,t),this._resolveStoredRefs(!1))}finalize(){this._resolveStoredRefs(!0)}_resolveStoredRefs(e){for(let t=this._stored.length-1;t>=0;t--){let[r,i]=this._stored[t];(this._tryParsing(r,i,e)||e)&&this._stored.splice(t,1)}return this._stored.length===0}_tryParsing(e,t,r){if(t.attributes.ref===void 0)return Ad(e,t),!0;let i=this._getReferenced(t.attributes.ref);return i===void 0?(r&&(m.warn("DASH: forcing the parsing of a referencing ContentProtection"),Ad(e,t)),!1):(t.children.cencPssh.push(...i.children.cencPssh),t.attributes.keyId===void 0&&i.attributes.keyId!==void 0&&(t.attributes.keyId=i.attributes.keyId),t.attributes.schemeIdUri===void 0&&i.attributes.schemeIdUri!==void 0&&(t.attributes.schemeIdUri=i.attributes.schemeIdUri),t.attributes.value===void 0&&i.attributes.value!==void 0&&(t.attributes.value=i.attributes.value),Ad(e,t),!0)}_getReferenced(e){return this._refs.get(e)}};function Ad(n,e){let t;if(e.attributes.schemeIdUri!==void 0&&e.attributes.schemeIdUri.substring(0,9)==="urn:uuid:"&&(t=e.attributes.schemeIdUri.substring(9).replace(/-/g,"").toLowerCase()),e.attributes.keyId!==void 0&&e.attributes.keyId.length>0){let a={keyId:e.attributes.keyId,systemId:t};n.contentProtections===void 0?n.contentProtections={keyIds:[a],initData:[]}:n.contentProtections.keyIds===void 0?n.contentProtections.keyIds=[a]:n.contentProtections.keyIds.push(a)}if(t===void 0)return;let{cencPssh:r}=e.children,i=[];for(let a of r)i.push({systemId:t,data:a});if(i.length===0)return;if(n.contentProtections===void 0){n.contentProtections={keyIds:[],initData:[{type:"cenc",values:i}]};return}let o=X(n.contentProtections.initData,a=>a.type==="cenc");o===void 0?n.contentProtections.initData.push({type:"cenc",values:i}):o.values.push(...i)}function aa(n){let e=Date.parse(n)-K();if(isNaN(e)){m.warn("DASH Parser: Invalid clock received: ",n);return}return e}function xd(n){let e=n.children.utcTimings.filter(t=>(t.schemeIdUri==="urn:mpeg:dash:utc:http-iso:2014"||t.schemeIdUri==="urn:mpeg:dash:utc:http-xsdate:2014")&&t.value!==void 0);return e.length>0?e[0].value:void 0}function sa(n){let{representations:e}=n,t=null;for(let r=0;r<e.length;r++){let i=e[r].index.getLastAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.min(t,i))}return t===null?null:t}function wd(n){for(let e=n.length-1;e>=0;e--){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=sa(r);if(s===void 0)return{safe:void 0,unsafe:void 0};o=s}if(i!==void 0){let s=sa(i);if(s===void 0)return{safe:void 0,unsafe:void 0};a=s}if(r!==void 0&&o===null||i!==void 0&&a===null)return m.info("Parser utils: found Period with no segment. ","Going to previous one to calculate last position"),{safe:void 0,unsafe:void 0};if(a!==null)return o!==null?{safe:Math.min(o,a),unsafe:Math.max(o,a)}:{safe:a,unsafe:a};if(o!==null)return{safe:o,unsafe:o}}}return{safe:void 0,unsafe:void 0}}function da(n){let{representations:e}=n,t=null;for(let r=0;r<e.length;r++){let i=e[r].index.getFirstAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.max(t,i))}return t===null?null:t}function Od(n){for(let e=0;e<=n.length-1;e++){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=da(r);if(s===void 0)return;o=s}if(i!==void 0){let s=da(i);if(s===void 0)return;a=s}if(r!==void 0&&o===null||i!==void 0&&a===null){m.info("Parser utils: found Period with no segment. ","Going to next one to calculate first position");return}if(a!==null)return o!==null?Math.max(o,a):a;if(o!==null)return o}}}function Dd(n){if(n.length===0)throw new Error("DASH Parser: no period available for a dynamic content");let e=Od(n),t=wd(n);return{minimumSafePosition:e,maximumSafePosition:t.safe,maximumUnsafePosition:t.unsafe}}var Oi=class{constructor(e){this._isDynamic=e.isDynamic,this._timeShiftBufferDepth=!e.isDynamic||e.timeShiftBufferDepth===void 0?null:e.timeShiftBufferDepth,this._serverTimestampOffset=e.serverTimestampOffset,this._availabilityStartTime=e.availabilityStartTime}setLastPosition(e,t){this._lastPosition=e,this._positionTime=t}lastPositionIsKnown(){return this._isDynamic?this._positionTime!==void 0&&this._lastPosition!==void 0:this._lastPosition!==void 0}getEstimatedMinimumSegmentTime(e){var i;if(!this._isDynamic||this._timeShiftBufferDepth===null)return 0;let t=(i=this.getEstimatedLiveEdge())!=null?i:this.getEstimatedMaximumPosition(0);return t===void 0?void 0:t-(this._timeShiftBufferDepth+e)}getEstimatedLiveEdge(){if(!(!this._isDynamic||this._serverTimestampOffset===void 0))return(K()+this._serverTimestampOffset)/1e3-this._availabilityStartTime}getEstimatedMaximumPosition(e){if(!this._isDynamic)return this._lastPosition;let t=this.getEstimatedLiveEdge();return t!==void 0&&e!==1/0?t+e:this._positionTime!==void 0&&this._lastPosition!==void 0?Math.max(this._lastPosition-this._positionTime+K()/1e3,0):this._lastPosition}};function Ld(n,e){return n.type!=="dynamic"?0:_(n.availabilityStartTime)?e!=null?e:0:n.availabilityStartTime}function Nd(n){if(n.length===0)return[];let e=[n[0]];for(let t=1;t<n.length;t++){let r=n[t],i=e[e.length-1];for(;(i.duration===void 0||i.start+i.duration>r.start)&&(m.warn("DASH: Updating overlapping Periods.",i==null?void 0:i.start,r.start),i.duration=r.start-i.start,i.end=r.start,!(i.duration>0));){if(e.pop(),e.length===0)break;i=e[e.length-1]}e.push(r)}return e}function Ud(n,e){let t=[];return n.forEach((r,i)=>{let o;if(!_(r.attributes.start))o=r.attributes.start;else if(i===0)o=!e.isDynamic||_(e.availabilityStartTime)?0:e.availabilityStartTime;else{let u=t[t.length-1];if(!_(u)&&!_(u.periodEnd))o=u.periodEnd;else throw new Error("Missing start time when parsing periods.")}let a,s=n[i+1];_(r.attributes.duration)?i===n.length-1?a=e.duration:_(s.attributes.start)||(a=s.attributes.start-o):a=r.attributes.duration;let d=_(a)?void 0:o+a;t.push({periodStart:o,periodDuration:a,periodEnd:d})}),t}function Lh(n,e){for(let t of e){let{adaptation:r,trickModeAttachedAdaptationIds:i}=t;for(let o of i)for(let a of $t){let s=n[a];if(s!==void 0)for(let d of s)d.id===o&&(d.trickModeTracks===void 0&&(d.trickModeTracks=[]),d.trickModeTracks.push(r))}}}var Sf=Lh;var Nh=["subtitle","caption"];function Bd(n,e,t,r){function i(a,s){let d=a.split("/")[0];if(Q($t,d))return d;if(a==="application/ttml+xml")return"text";if(a==="application/mp4")return s!==null&&X(s,u=>u.schemeIdUri==="urn:mpeg:dash:role:2011"&&Q(Nh,u.value))!==void 0?"text":void 0}function o(a){switch(a.substring(0,3)){case"avc":case"hev":case"hvc":case"vp8":case"vp9":case"av1":return"video";case"vtt":return"text"}switch(a.substring(0,4)){case"mp4a":return"audio";case"wvtt":case"stpp":return"text"}}if(e!==null){let a=i(e,r);if(a!==void 0)return a}if(t!==null){let a=o(t);if(a!==void 0)return a}for(let a=0;a<n.length;a++){let s=n[a],{mimeType:d,codecs:u}=s.attributes;if(d!==void 0){let c=i(d,r);if(c!==void 0)return c}if(u!==void 0){let c=o(u);if(c!==void 0)return c}}}var Uh=/[, ]+/g;function Tf(n){return w(n)?n.trim().replace(Uh,", "):""}function _f(n){let[e,t,r,i,o,a,s,d]=n.split(".");if(e!=="vp08"&&e!=="vp09"&&e!=="vp10")return;let u,c,l;if((i!==void 0&&i==="10"||i==="12")&&(u=parseInt(i,10)),s!==void 0&&(s==="16"?c="pq":s==="18"&&(c="hlg")),a!==void 0&&d!==void 0&&a==="09"&&d==="09"&&(l="rec2020"),!(u===void 0||c===void 0))return{colorDepth:u,eotf:c,colorSpace:l}}function Fd(n,e){var p,I,h;let{availabilityTimeOffset:t,manifestBoundsCalculator:r,isDynamic:i,end:o,start:a,receivedTime:s,unsafelyBaseOnPreviousRepresentation:d,inbandEventStreams:u,isLastPeriod:c}=e,f={availabilityTimeComplete:void 0,availabilityTimeOffset:t,unsafelyBaseOnPreviousRepresentation:d,isEMSGWhitelisted:b=>u===void 0?!1:u.some(({schemeIdUri:T})=>T===b.schemeIdUri),isLastPeriod:c,manifestBoundsCalculator:r,isDynamic:i,periodEnd:o,periodStart:a,receivedTime:s,representationBitrate:n.attributes.bitrate,representationId:n.attributes.id},g;if(n.children.segmentBase!==void 0){let{segmentBase:b}=n.children;g=new _n(b,f)}else if(n.children.segmentList!==void 0){let{segmentList:b}=n.children;g=new En(b,f)}else if(n.children.segmentTemplate!==void 0||e.parentSegmentTemplates.length>0){let b=e.parentSegmentTemplates.slice(),T=n.children.segmentTemplate;T!==void 0&&b.push(T);let v=j({},...b);(v.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(f.availabilityTimeOffset=((p=v.availabilityTimeOffset)!=null?p:0)+((I=e.availabilityTimeOffset)!=null?I:0)),(v.availabilityTimeComplete!==void 0||e.availabilityTimeComplete!==void 0)&&(f.availabilityTimeComplete=(h=v.availabilityTimeComplete)!=null?h:e.availabilityTimeComplete),g=oa.isTimelineIndexArgument(v)?new oa(v,f):new vn(v,f)}else{let b=e.adaptation.children;if(b.segmentBase!==void 0){let{segmentBase:T}=b;g=new _n(T,f)}else if(b.segmentList!==void 0){let{segmentList:T}=b;g=new En(T,f)}else g=new vn({duration:Number.MAX_VALUE,timescale:1,startNumber:0,media:""},f)}return g}function At(n,e){var i;if(e.length===0)return n;let t=e.map(o=>({url:o.value}));if(n.length===0)return t;let r=[];for(let o=0;o<n.length;o++){let a=n[o];for(let s=0;s<t.length;s++){let d=t[s],u=$n(a.url,d.url);r.push({url:u,serviceLocation:(i=d.serviceLocation)!=null?i:a.serviceLocation})}}return r}function Bh(n,e){let t=[];if(n.children.inbandEventStreams!==void 0&&t.push(...n.children.inbandEventStreams),e.children.inbandEventStreams!==void 0&&t.push(...e.children.inbandEventStreams),t.length!==0)return t}function Fh({adaptationProfiles:n,essentialProperties:e,supplementalProperties:t,manifestProfiles:r,codecs:i}){if(((n!=null?n:"")+(r!=null?r:"")).indexOf("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")!==-1&&(i==="hvc1.2.4.L153.B0"||i==="hev1.2.4.L153.B0"))return{colorDepth:10,eotf:"pq",colorSpace:"rec2020"};let a=X([...e!=null?e:[],...t!=null?t:[]],s=>s.schemeIdUri==="urn:mpeg:mpegB:cicp:TransferCharacteristics");if(a!==void 0)switch(a.value){case"15":return;case"16":return{eotf:"pq"};case"18":return{eotf:"hlg"}}if(i!==void 0&&/^vp(08|09|10)/.exec(i))return _f(i)}function Kd(n,e,t){var i,o,a,s,d,u,c;let r=[];for(let l of n){let f=l.attributes.id!==void 0?l.attributes.id:String(l.attributes.bitrate)+(l.attributes.height!==void 0?`-${l.attributes.height}`:"")+(l.attributes.width!==void 0?`-${l.attributes.width}`:"")+(l.attributes.mimeType!==void 0?`-${l.attributes.mimeType}`:"")+(l.attributes.codecs!==void 0?`-${l.attributes.codecs}`:"");for(;r.some(x=>x.id===f);)f+="-dup";let g=(o=(i=t.unsafelyBaseOnPreviousAdaptation)==null?void 0:i.getRepresentation(f))!=null?o:null,p=Bh(l,e),I=(a=l.attributes.availabilityTimeComplete)!=null?a:t.availabilityTimeComplete,h;(l.attributes.availabilityTimeOffset!==void 0||t.availabilityTimeOffset!==void 0)&&(h=((s=l.attributes.availabilityTimeOffset)!=null?s:0)+((d=t.availabilityTimeOffset)!=null?d:0));let b=j({},t,{availabilityTimeOffset:h,availabilityTimeComplete:I,unsafelyBaseOnPreviousRepresentation:g,adaptation:e,inbandEventStreams:p}),T=Fd(l,b),v;l.attributes.bitrate===void 0?(m.warn("DASH: No usable bitrate found in the Representation."),v=0):v=l.attributes.bitrate;let E=At(t.baseURLs,l.children.baseURLs),R=E.length===0?[{baseUrl:"",id:void 0}]:E.map(x=>({baseUrl:x.url,id:x.serviceLocation})),k={bitrate:v,cdnMetadata:R,index:T,id:f};l.children.supplementalProperties!==void 0&&X(l.children.supplementalProperties,x=>x.schemeIdUri==="tag:dolby.com,2018:dash:EC3_ExtensionType:2018"&&x.value==="JOC")&&(k.isSpatialAudio=!0);let A;l.attributes.codecs!==void 0?A=l.attributes.codecs:e.attributes.codecs!==void 0&&(A=e.attributes.codecs),A!==void 0&&(A=A==="mp4a.40.02"?"mp4a.40.2":A,k.codecs=A);let M;l.attributes.supplementalCodecs!==void 0?M=l.attributes.supplementalCodecs:e.attributes.supplementalCodecs!==void 0&&(M=e.attributes.supplementalCodecs),M!==void 0&&(k.supplementalCodecs=Tf(M)),l.attributes.frameRate!==void 0?k.frameRate=l.attributes.frameRate:e.attributes.frameRate!==void 0&&(k.frameRate=e.attributes.frameRate),l.attributes.height!==void 0?k.height=l.attributes.height:e.attributes.height!==void 0&&(k.height=e.attributes.height),l.attributes.mimeType!==void 0?k.mimeType=l.attributes.mimeType:e.attributes.mimeType!==void 0&&(k.mimeType=e.attributes.mimeType),l.attributes.width!==void 0?k.width=l.attributes.width:e.attributes.width!==void 0&&(k.width=e.attributes.width);{let x=[...(u=e.children.contentProtections)!=null?u:[],...(c=l.children.contentProtections)!=null?c:[]];for(let L of x)t.contentProtectionParser.add(k,L)}k.hdrInfo=Fh({adaptationProfiles:e.attributes.profiles,supplementalProperties:e.children.supplementalProperties,essentialProperties:e.children.essentialProperties,manifestProfiles:t.manifestProfiles,codecs:A}),r.push(k)}return r}function Kh(n){if(n===void 0)return!1;let e=n.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&n.value==="1",t=n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="description";return e||t}function Vh(n,e){return!!(n!==void 0&&n.some(r=>r.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&r.value==="2")||e!==void 0&&e.some(r=>r.schemeIdUri==="urn:mpeg:dash:role:2011"&&r.value==="caption"))}function zh(n){return n===void 0?!1:n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="sign"}function Hh(n,e){if(w(n.attributes.id))return n.attributes.id;let{isClosedCaption:t,isForcedSubtitle:r,isAudioDescription:i,isSignInterpreted:o,isTrickModeTrack:a,type:s}=e,d=s;return w(n.attributes.language)&&(d+=`-${n.attributes.language}`),t===!0&&(d+="-cc"),r===!0&&(d+="-cc"),i===!0&&(d+="-ad"),o===!0&&(d+="-si"),a&&(d+="-trickMode"),w(n.attributes.contentType)&&(d+=`-${n.attributes.contentType}`),w(n.attributes.codecs)&&(d+=`-${n.attributes.codecs}`),w(n.attributes.mimeType)&&(d+=`-${n.attributes.mimeType}`),n.attributes.frameRate!==void 0&&(d+=`-${String(n.attributes.frameRate)}`),d}function Wh(n){if(!_(n.children.supplementalProperties)){let{supplementalProperties:e}=n.children;for(let t of e)if(t.schemeIdUri==="urn:mpeg:dash:adaptation-set-switching:2016"&&!_(t.value))return t.value.split(",").map(r=>r.trim()).filter(r=>r)}return[]}function Vd(n,e){var s,d,u,c,l,f,g;let t={video:[],audio:[],text:[]},r=[],i={},o=[];for(let p=0;p<n.length;p++){let I=n[p],h=I.children,{essentialProperties:b,roles:T,label:v}=h,E=Array.isArray(T)&&T.some(Ie=>Ie.value==="main")&&T.some(Ie=>Ie.schemeIdUri==="urn:mpeg:dash:role:2011"),R=I.children.representations,k=(s=I.attributes.availabilityTimeComplete)!=null?s:e.availabilityTimeComplete,A;(I.attributes.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(A=((d=I.attributes.availabilityTimeOffset)!=null?d:0)+((u=e.availabilityTimeOffset)!=null?u:0));let M=I.attributes.mimeType,x=I.attributes.codecs,L=Bd(R,w(M)?M:null,w(x)?x:null,_(h.roles)?null:h.roles);if(L===void 0)continue;let O=(c=I.attributes.selectionPriority)!=null?c:1,N=I.attributes.id,C=Wh(I),P=[];e.segmentTemplate!==void 0&&P.push(e.segmentTemplate),I.children.segmentTemplate!==void 0&&P.push(I.children.segmentTemplate);let D={availabilityTimeComplete:k,availabilityTimeOffset:A,baseURLs:At(e.baseURLs,h.baseURLs),contentProtectionParser:e.contentProtectionParser,manifestBoundsCalculator:e.manifestBoundsCalculator,end:e.end,isDynamic:e.isDynamic,isLastPeriod:e.isLastPeriod,manifestProfiles:e.manifestProfiles,parentSegmentTemplates:P,receivedTime:e.receivedTime,start:e.start,unsafelyBaseOnPreviousAdaptation:null},F=Array.isArray(b)?X(b,Ie=>Ie.schemeIdUri==="http://dashif.org/guidelines/trickmode"):void 0,V=(l=F==null?void 0:F.value)==null?void 0:l.split(" "),$=V!==void 0,{accessibilities:q}=h,W;T!==void 0&&T.some(Ie=>Ie.value==="dub")&&(W=!0);let z;L!=="text"?z=!1:z=Vh(q,T);let H;L==="text"&&T!==void 0&&T.some(Ie=>Ie.value==="forced-subtitle"||Ie.value==="forced_subtitle")&&(H=!0);let se;L!=="audio"?se=!1:q!==void 0&&(se=q.some(Kh));let oe;L!=="video"?oe=!1:q!==void 0&&(oe=q.some(zh));let ue=Hh(I,{isAudioDescription:se,isForcedSubtitle:H,isClosedCaption:z,isSignInterpreted:oe,isTrickModeTrack:$,type:L});for(;Q(o,ue);)ue+="-dup";let he=ue;o.push(ue),D.unsafelyBaseOnPreviousAdaptation=(g=(f=e.unsafelyBaseOnPreviousPeriod)==null?void 0:f.getAdaptation(ue))!=null?g:null;let Y=Kd(R,I,D),ce={id:ue,representations:Y,type:L,isTrickModeTrack:$};if(_(I.attributes.language)||(ce.language=I.attributes.language),_(z)||(ce.closedCaption=z),_(se)||(ce.audioDescription=se),W===!0&&(ce.isDub=!0),H!==void 0&&(ce.forcedSubtitles=H),oe===!0&&(ce.isSignInterpreted=!0),v!==void 0&&(ce.label=v),V!==void 0)r.push({adaptation:ce,trickModeAttachedAdaptationIds:V});else{let Ie=-1;for(let Bt of C){let $e=i[Bt];if($e!==void 0&&$e.newID!==he&&Q($e.adaptationSetSwitchingIDs,N)){Ie=ye(t[L],Tt=>Tt[0].id===Bt);let Ue=t[L][Ie];if(Ue!==void 0&&Ue[0].audioDescription===ce.audioDescription&&Ue[0].closedCaption===ce.closedCaption&&Ue[0].language===ce.language){m.info('DASH Parser: merging "switchable" AdaptationSets',N,Bt),Ue[0].representations.push(...ce.representations),Ue[1]={priority:Math.max(O,Ue[1].priority),isMainAdaptation:E||Ue[1].isMainAdaptation,indexInMpd:Math.min(p,Ue[1].indexInMpd)};break}}}Ie<0&&t[L].push([ce,{priority:O,isMainAdaptation:E,indexInMpd:p}])}!_(N)&&_(i[N])&&(i[N]={newID:he,adaptationSetSwitchingIDs:C})}let a=$t.reduce((p,I)=>{let h=t[I];return h.length>0&&(h.sort(Ef),p[I]=h.map(([b])=>b)),p},{});return t.video.sort(Ef),Sf(a,r),a}function Ef(n,e){let t=e[1].priority-n[1].priority;return t!==0?t:n[1].isMainAdaptation!==e[1].isMainAdaptation?n[1].isMainAdaptation?-1:1:n[1].indexInMpd-e[1].indexInMpd}var Gh=Ze();function zd(n,e){var a,s,d,u,c;let t=[],r=Ud(n,e);if(r.length!==n.length)throw new Error("MPD parsing error: the time information are incoherent.");let{isDynamic:i,manifestBoundsCalculator:o}=e;!i&&!_(e.duration)&&o.setLastPosition(e.duration);for(let l=n.length-1;l>=0;l--){let f=l===n.length-1,g=n[l],p=e.xlinkInfos.get(g),I=At(e.baseURLs,g.children.baseURLs),{periodStart:h,periodDuration:b,periodEnd:T}=r[l],v;for(_(g.attributes.id)?(m.warn("DASH: No usable id found in the Period. Generating one."),v="gen-dash-period-"+Gh()):v=g.attributes.id;t.some(F=>F.id===v);)v+="-dup";let E=p!==void 0?p.receivedTime:e.receivedTime,R=(s=(a=e.unsafelyBaseOnPreviousManifest)==null?void 0:a.getPeriod(v))!=null?s:null,k=g.attributes.availabilityTimeComplete,A=g.attributes.availabilityTimeOffset,{manifestProfiles:M,contentProtectionParser:x}=e,{segmentTemplate:L}=g.children;x.addReferences((d=g.children.contentProtections)!=null?d:[]);let O={availabilityTimeComplete:k,availabilityTimeOffset:A,baseURLs:I,contentProtectionParser:x,manifestBoundsCalculator:o,end:T,isDynamic:i,isLastPeriod:f,manifestProfiles:M,receivedTime:E,segmentTemplate:L,start:h,unsafelyBaseOnPreviousPeriod:R},N=Vd(g.children.adaptations,O),C=((u=e.xmlNamespaces)!=null?u:[]).concat((c=g.attributes.namespaces)!=null?c:[]),P=jh(g.children.eventStreams,h,C),D={id:v,start:h,end:T,duration:b,adaptations:N,streamEvents:P};if(t.unshift(D),!o.lastPositionIsKnown()){let F=qh(N);if(!i)typeof F=="number"&&o.setLastPosition(F);else if(typeof F=="number"){let V=K()/1e3;o.setLastPosition(F,V)}else{let V=vf(e,h);if(V!==void 0){let[$,q]=V;o.setLastPosition($,q)}}}}if(e.isDynamic&&!o.lastPositionIsKnown()){let l=vf(e,0);if(l!==void 0){let[f,g]=l;o.setLastPosition(f,g)}}return Nd(t)}function vf(n,e){if(_(n.clockOffset)){let t=Date.now()/1e3;if(t>=e){m.warn("DASH Parser: no clock synchronization mechanism found. Using the system clock instead.");let r=t-n.availabilityStartTime,i=K()/1e3;return[r,i]}}else{let t=n.clockOffset/1e3-n.availabilityStartTime,r=K()/1e3,i=r+t;if(i>=e)return[i,r]}}function qh(n){let e=null,t=!0,r=wn(n).filter(o=>!_(o)),i=Ln(r,o=>o);for(let o of i){let a=o.representations;for(let s of a){let d=s.index.getLastAvailablePosition();d!==null&&(t=!1,typeof d=="number"&&(e=_(e)?d:Math.max(e,d)))}}if(_(e)){if(t)return null}else return e}function jh(n,e,t){var i,o;let r=[];for(let a of n){let{schemeIdUri:s="",timescale:d=1}=a.attributes,u=t.concat((i=a.attributes.namespaces)!=null?i:[]);for(let c of a.children.events)if(c.eventStreamData!==void 0){let l=((o=c.presentationTime)!=null?o:0)/d+e,f=c.duration===void 0?void 0:l+c.duration/d,g,p;if(!Ft&&c.eventStreamData instanceof Element)g=c.eventStreamData;else try{p={namespaces:u,data:typeof c.eventStreamData=="string"?c.eventStreamData:Le(new Uint8Array(c.eventStreamData))}}catch(I){m.error("DASH: Error while parsing event-stream:",I instanceof Error?I.message:"Unknown error")}r.push({start:l,end:f,id:c.id,data:{type:"dash-event-stream",value:{schemeIdUri:s,timescale:d,element:g,xmlData:p}}})}}return r}function Qn(n,e,t,r,i=new WeakMap){let{children:o,attributes:a}=n;if(_(e.externalClockOffset)){let d=a.type==="dynamic",u=X(o.utcTimings,f=>f.schemeIdUri==="urn:mpeg:dash:utc:direct:2014"&&!_(f.value)),c=!_(u)&&!_(u.value)?aa(u.value):void 0,l=!_(c)&&!isNaN(c)?c:void 0;if(!_(l)&&r!==!0)e.externalClockOffset=l;else if(d&&r!==!0){let f=xd(n);if(!_(f)&&f.length>0)return{type:"needs-clock",value:{url:f,continue:function(p){return p.success?(e.externalClockOffset=aa(p.data),Qn(n,e,t,!0)):(t.push(p.error),m.warn("DASH Parser: Error on fetching the clock ressource",p.error),Qn(n,e,t,!0))}}}}}let s=[];for(let d=0;d<o.periods.length;d++){let{xlinkHref:u,xlinkActuate:c}=o.periods[d].attributes;!_(u)&&c==="onLoad"&&s.push({index:d,ressource:u})}return s.length===0?Yh(n,e,t,i):{type:"needs-xlinks",value:{xlinksUrls:s.map(({ressource:d})=>d),continue:function(u){if(u.length!==s.length)throw new Error("DASH parser: wrong number of loaded ressources.");for(let c=u.length-1;c>=0;c--){let l=s[c].index,{parsed:f,warnings:g,receivedTime:p,sendingTime:I,url:h}=u[c];g.length>0&&t.push(...g);for(let b of f)i.set(b,{receivedTime:p,sendingTime:I,url:h});o.periods.splice(l,1,...f)}return Qn(n,e,t,r,i)}}}}function Yh(n,e,t,r){var P,D,F,V,$;let{children:i,attributes:o}=n,a=o.type==="dynamic",s=e.url!==void 0?[{url:e.url.substring(0,xi(e.url))}]:[],d=At(s,i.baseURLs),u=Ld(o,e.referenceDateTime),c=o.timeShiftBufferDepth,l=o.maxSegmentDuration,{externalClockOffset:f,unsafelyBaseOnPreviousManifest:g}=e,{externalClockOffset:p}=e,I=new Oi({availabilityStartTime:u,isDynamic:a,timeShiftBufferDepth:c,serverTimestampOffset:p}),h=new wi;h.addReferences((P=i.contentProtections)!=null?P:[]);let b={availabilityStartTime:u,baseURLs:d,clockOffset:f,contentProtectionParser:h,duration:o.duration,isDynamic:a,manifestBoundsCalculator:I,manifestProfiles:n.attributes.profiles,receivedTime:e.manifestReceivedTime,unsafelyBaseOnPreviousManifest:g,xlinkInfos:r,xmlNamespaces:n.attributes.namespaces},T=zd(i.periods,b);h.finalize();let v=o.duration,E,R,k=null,A;o.minimumUpdatePeriod!==void 0&&o.minimumUpdatePeriod>=0&&(E=o.minimumUpdatePeriod===0?U.getCurrent().DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:o.minimumUpdatePeriod);let{minimumSafePosition:M,maximumSafePosition:x,maximumUnsafePosition:L}=Dd(T),O=K();if(a){let q;x!==void 0?q=x:p===void 0?(m.warn("DASH Parser: use system clock to define maximum position"),q=Date.now()/1e3-u):q=(K()+p)/1e3-u;let W=I.getEstimatedLiveEdge();W===void 0&&(L!==void 0?W=L:W=q),A={isLinear:!0,maximumSafePosition:q,livePosition:W,time:O},R=M,k=c!=null?c:null,k!==null&&(k+=l!=null?l:0),k!==null&&R!==void 0&&W-R>k&&(k=W-R)}else{R=M,R===void 0&&(R=(F=(D=T[0])==null?void 0:D.start)!=null?F:0);let q=v!=null?v:1/0;if(T[T.length-1]!==void 0){let W=T[T.length-1],z=(V=W.end)!=null?V:W.duration!==void 0?W.start+W.duration:void 0;z!==void 0&&z<q&&(q=z)}x!==void 0&&x<q&&(q=x),A={isLinear:!1,maximumSafePosition:q,livePosition:void 0,time:O}}let N=!a||n.attributes.minimumUpdatePeriod===void 0&&((($=T[T.length-1])==null?void 0:$.end)!==void 0||n.attributes.duration!==void 0);return{type:"done",value:{parsed:{availabilityStartTime:u,clockOffset:e.externalClockOffset,isDynamic:a,isLive:a,isLastPeriodKnown:N,periods:T,publishTime:o.publishTime,suggestedPresentationDelay:o.suggestedPresentationDelay,transportType:"dash",timeBounds:{minimumSafePosition:R,timeshiftDepth:k,maximumTimeData:A},lifetime:E,uris:_(e.url)?i.locations:[e.url,...i.locations]},warnings:t}}}var Rf=Qn;function xt(n){let e=n.textContent,t=[];return e===null||e.length===0?[void 0,t]:[{value:e},t]}var $h=/^P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,Qh=/([0-9]+)-([0-9]+)/;function We(n,e){return n==="true"?[!0,null]:n==="false"?[!1,null]:[!1,new et(`\`${e}\` property is not a boolean value but "${n}"`)]}function Se(n,e){let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not an integer value but "${n}"`)]:[t,null]}function je(n,e){if(n==="INF")return[1/0,null];let t=parseFloat(n);return isNaN(t)?[null,new et(`\`${e}\` property is invalid: "${n}"`)]:[t,null]}function Hd(n,e){if(n==="true")return[!0,null];if(n==="false")return[!1,null];let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not a boolean nor an integer but "${n}"`)]:[t,null]}function ua(n,e){let t=Date.parse(n);return isNaN(t)?[null,new et(`\`${e}\` is in an invalid date format: "${n}"`)]:[new Date(Date.parse(n)).getTime()/1e3,null]}function pt(n,e){if(!w(n))return[0,new et(`\`${e}\` property is empty`)];let t=$h.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[parseFloat(w(t[2])?t[2]:"0")*365*24*60*60+parseFloat(w(t[4])?t[4]:"0")*30*24*60*60+parseFloat(w(t[6])?t[6]:"0")*24*60*60+parseFloat(w(t[8])?t[8]:"0")*60*60+parseFloat(w(t[10])?t[10]:"0")*60+parseFloat(w(t[12])?t[12]:"0"),null]}function Rn(n,e){let t=Qh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[[+t[1],+t[2]],null]}function kf(n,e){try{return[ft(n),null]}catch(t){return[null,new et(`\`${e}\` is not a valid base64 string: "${n}"`)]}}function Xn(n,e){let t=/^(\d+)\/(\d+)$/.exec(n);return t!==null?[+t[1]/+t[2],null]:je(n,e)}function ze(n){let e,t;for(let r=0;r<n.attributes.length;r++){let i=n.attributes[r];switch(i.name){case"schemeIdUri":e=i.value;break;case"value":t=i.value;break}}return{schemeIdUri:e,value:t}}function xe(n,e){return function(t,{asKey:r,parser:i,dashName:o}){let[a,s]=i(t,o);s!==null&&(m.warn(s.message),e.push(s)),a!==null&&(n[r]=a)}}var et=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="MPDError"}};function Xh(n){let e=[],t=[];for(let r=0;r<n.length;r++)if(n[r].nodeType===Node.ELEMENT_NODE){let i=n[r];if(i.nodeName==="cenc:pssh"){let o=i.textContent;if(o!==null&&o.length>0){let[a,s]=kf(o,"cenc:pssh");s!==null&&(m.warn(s.message),e.push(s)),a!==null&&t.push(a)}}}return[{cencPssh:t},e]}function Zh(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"schemeIdUri":e.schemeIdUri=r.value;break;case"value":e.value=r.value;break;case"cenc:default_KID":e.keyId=qe(r.value.replace(/-/g,""));break;case"ref":e.ref=r.value;break;case"refId":e.refId=r.value;break}}return e}function wt(n){let[e,t]=Xh(n.childNodes),r=Zh(n);return[{children:e,attributes:r},t]}function Wd(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"id":e.id=r.value;break;case"lang":e.language=r.value;break;case"contentType":e.contentType=r.value;break;case"par":e.par=r.value;break}}return e}function Gd(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"range":r(o.value,{asKey:"range",parser:Rn,dashName:"range"});break;case"sourceURL":e.media=o.value;break}}return[e,t]}function Ot(n){let e={},t=[],r=xe(e,t),i=n.childNodes;for(let o=0;o<i.length;o++)if(i[o].nodeType===Node.ELEMENT_NODE){let a=i[o];if(a.nodeName==="Initialization"){let[s,d]=Gd(a);e.initialization=s,t=t.concat(d)}}for(let o=0;o<n.attributes.length;o++){let a=n.attributes[o];switch(a.name){case"timescale":r(a.value,{asKey:"timescale",parser:Se,dashName:"timescale"});break;case"presentationTimeOffset":r(a.value,{asKey:"presentationTimeOffset",parser:je,dashName:"presentationTimeOffset"});break;case"indexRange":r(a.value,{asKey:"indexRange",parser:Rn,dashName:"indexRange"});break;case"indexRangeExact":r(a.value,{asKey:"indexRangeExact",parser:We,dashName:"indexRangeExact"});break;case"availabilityTimeOffset":r(a.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(a.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break;case"duration":r(a.value,{asKey:"duration",parser:Se,dashName:"duration"});break;case"startNumber":r(a.value,{asKey:"startNumber",parser:Se,dashName:"startNumber"});break;case"endNumber":r(a.value,{asKey:"endNumber",parser:Se,dashName:"endNumber"});break}}return[e,t]}function qd(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"media":e.media=o.value;break;case"indexRange":r(o.value,{asKey:"indexRange",parser:Rn,dashName:"indexRange"});break;case"index":e.index=o.value;break;case"mediaRange":r(o.value,{asKey:"mediaRange",parser:Rn,dashName:"mediaRange"});break}}return[e,t]}function Di(n){let[e,t]=Ot(n),r=t,i=[],o=n.childNodes;for(let s=0;s<o.length;s++)if(o[s].nodeType===Node.ELEMENT_NODE){let d=o[s];if(d.nodeName==="SegmentURL"){let[u,c]=qd(d);i.push(u),r=r.concat(c)}}return[j(e,{list:i}),r]}function jd(n){let e=null;return function(){if(e===null){let t=n.getElementsByTagName("S");return e=t,t}return e}}function kn(n){let[e,t]=Ot(n),r=t,i;for(let s=0;s<n.childNodes.length;s++)if(n.childNodes[s].nodeType===Node.ELEMENT_NODE){let d=n.childNodes[s];d.nodeName==="SegmentTimeline"&&(i=jd(d))}let o=j({},e,{duration:e.duration,timelineParser:i}),a=xe(o,r);for(let s=0;s<n.attributes.length;s++){let d=n.attributes[s];switch(d.nodeName){case"initialization":_(o.initialization)&&(o.initialization={media:d.value});break;case"index":o.index=d.value;break;case"availabilityTimeOffset":a(d.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":a(d.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break;case"media":o.media=d.value;break;case"bitstreamSwitching":a(d.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break}}return[o,r]}function Jh(n){let e={baseURLs:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"BaseURL":let[a,s]=xt(o);a!==void 0&&e.baseURLs.push(a),r=r.concat(s);break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(ze(o));break;case"SegmentBase":let[d,u]=Ot(o);e.segmentBase=d,u.length>0&&(r=r.concat(u));break;case"SegmentList":let[c,l]=Di(o);r=r.concat(l),e.segmentList=c;break;case"SegmentTemplate":let[f,g]=kn(o);r=r.concat(g),e.segmentTemplate=f;break;case"ContentProtection":let[p,I]=wt(o);I.length>0&&(r=r.concat(I)),p!==void 0&&t.push(p);break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[ze(o)]:e.supplementalProperties.push(ze(o));break}}return t.length>0&&(e.contentProtections=t),[e,r]}function ey(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"bandwidth":r(o.value,{asKey:"bitrate",parser:Se,dashName:"bandwidth"});break;case"codecs":e.codecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:We,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Xn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:Se,dashName:"height"});break;case"id":e.id=o.value;break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:je,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:je,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"qualityRanking":r(o.value,{asKey:"qualityRanking",parser:Se,dashName:"qualityRanking"});break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:Se,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break}}return e.bitrate===void 0&&t.push(new et("No bitrate found on a Representation")),[e,t]}function Cf(n){let[e,t]=Jh(n.childNodes),[r,i]=ey(n),o=t.concat(i);return[{children:e,attributes:r},o]}function ty(n){let e={baseURLs:[],representations:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"Accessibility":e.accessibilities===void 0?e.accessibilities=[ze(o)]:e.accessibilities.push(ze(o));break;case"BaseURL":let[a,s]=xt(o);a!==void 0&&e.baseURLs.push(a),s.length>0&&(r=r.concat(s));break;case"ContentComponent":e.contentComponent=Wd(o);break;case"EssentialProperty":_(e.essentialProperties)?e.essentialProperties=[ze(o)]:e.essentialProperties.push(ze(o));break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(ze(o));break;case"Label":let d=o.textContent;d!=null&&(e.label=d);break;case"Representation":let[u,c]=Cf(o);e.representations.push(u),c.length>0&&(r=r.concat(c));break;case"Role":_(e.roles)?e.roles=[ze(o)]:e.roles.push(ze(o));break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[ze(o)]:e.supplementalProperties.push(ze(o));break;case"SegmentBase":let[l,f]=Ot(o);e.segmentBase=l,f.length>0&&(r=r.concat(f));break;case"SegmentList":let[g,p]=Di(o);e.segmentList=g,p.length>0&&(r=r.concat(p));break;case"SegmentTemplate":let[I,h]=kn(o);e.segmentTemplate=I,h.length>0&&(r=r.concat(h));break;case"ContentProtection":let[b,T]=wt(o);T.length>0&&(r=r.concat(T)),b!==void 0&&t.push(b);break}}return t.length>0&&(e.contentProtections=t),[e,r]}function ny(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"group":r(o.value,{asKey:"group",parser:Se,dashName:"group"});break;case"lang":e.language=o.value;break;case"contentType":e.contentType=o.value;break;case"par":e.par=o.value;break;case"minBandwidth":r(o.value,{asKey:"minBitrate",parser:Se,dashName:"minBandwidth"});break;case"maxBandwidth":r(o.value,{asKey:"maxBitrate",parser:Se,dashName:"maxBandwidth"});break;case"minWidth":r(o.value,{asKey:"minWidth",parser:Se,dashName:"minWidth"});break;case"maxWidth":r(o.value,{asKey:"maxWidth",parser:Se,dashName:"maxWidth"});break;case"minHeight":r(o.value,{asKey:"minHeight",parser:Se,dashName:"minHeight"});break;case"maxHeight":r(o.value,{asKey:"maxHeight",parser:Se,dashName:"maxHeight"});break;case"minFrameRate":r(o.value,{asKey:"minFrameRate",parser:Xn,dashName:"minFrameRate"});break;case"maxFrameRate":r(o.value,{asKey:"maxFrameRate",parser:Xn,dashName:"maxFrameRate"});break;case"selectionPriority":r(o.value,{asKey:"selectionPriority",parser:Se,dashName:"selectionPriority"});break;case"segmentAlignment":r(o.value,{asKey:"segmentAlignment",parser:Hd,dashName:"segmentAlignment"});break;case"subsegmentAlignment":r(o.value,{asKey:"subsegmentAlignment",parser:Hd,dashName:"subsegmentAlignment"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break;case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"codecs":e.codecs=o.value;break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:We,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Xn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:Se,dashName:"height"});break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:je,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:je,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:Se,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break}}return[e,t]}function Pf(n){let e=n.childNodes,[t,r]=ty(e),[i,o]=ny(n),a=r.concat(o);return[{children:t,attributes:i},a]}function Yd(n){let e={children:{events:[]},attributes:{}},t=[],r=xe(e.attributes,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"schemeIdUri":e.attributes.schemeIdUri=o.value;break;case"timescale":r(o.value,{asKey:"timescale",parser:Se,dashName:"timescale"});break;case"value":e.attributes.value=o.value;break}}for(let i=0;i<n.childNodes.length;i++)if(n.childNodes[i].nodeType===Node.ELEMENT_NODE){let o=n.childNodes[i];switch(o.nodeName){case"Event":let[a,s]=ry(o);e.children.events.push(a),s.length>0&&(t=t.concat(s));break}}return[e,t]}function ry(n){let e={eventStreamData:n},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"presentationTime":r(o.value,{asKey:"presentationTime",parser:Se,dashName:"presentationTime"});break;case"duration":r(o.value,{asKey:"duration",parser:Se,dashName:"duration"});break;case"id":e.id=o.value;break}}return[e,t]}function iy(n){let e=[],t=[],r,i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":let[u,c]=xt(d);u!==void 0&&e.push(u),o=o.concat(c);break;case"AdaptationSet":let[l,f]=Pf(d);t.push(l),o=o.concat(f);break;case"EventStream":let[g,p]=Yd(d);a.push(g),o=o.concat(p);break;case"SegmentTemplate":let[I,h]=kn(d);r=I,h.length>0&&(o=o.concat(h));break;case"ContentProtection":let[b,T]=wt(d);T.length>0&&(o=o.concat(T)),b!==void 0&&i.push(b);break}}return[{baseURLs:e,adaptations:t,eventStreams:a,segmentTemplate:r,contentProtections:i},o]}function oy(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"start":r(o.value,{asKey:"start",parser:pt,dashName:"start"});break;case"duration":r(o.value,{asKey:"duration",parser:pt,dashName:"duration"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break;case"xlink:href":e.xlinkHref=o.value;break;case"xlink:actuate":e.xlinkActuate=o.value;break}}return[e,t]}function la(n){let[e,t]=iy(n.childNodes),[r,i]=oy(n),o=t.concat(i);return[{children:e,attributes:r},o]}function ay(n){let e=[],t=[],r=[],i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":let[u,c]=xt(d);u!==void 0&&e.push(u),a=a.concat(c);break;case"Location":t.push(d.textContent===null?"":d.textContent);break;case"Period":let[l,f]=la(d);r.push(l),a=a.concat(f);break;case"UTCTiming":let g=ze(d);i.push(g);break;case"ContentProtection":let[p,I]=wt(d);I.length>0&&(a=a.concat(I)),p!==void 0&&o.push(p);break}}return[{baseURLs:e,locations:t,periods:r,utcTimings:i,contentProtections:o},a]}function sy(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"profiles":e.profiles=o.value;break;case"type":e.type=o.value;break;case"availabilityStartTime":r(o.value,{asKey:"availabilityStartTime",parser:ua,dashName:"availabilityStartTime"});break;case"availabilityEndTime":r(o.value,{asKey:"availabilityEndTime",parser:ua,dashName:"availabilityEndTime"});break;case"publishTime":r(o.value,{asKey:"publishTime",parser:ua,dashName:"publishTime"});break;case"mediaPresentationDuration":r(o.value,{asKey:"duration",parser:pt,dashName:"mediaPresentationDuration"});break;case"minimumUpdatePeriod":r(o.value,{asKey:"minimumUpdatePeriod",parser:pt,dashName:"minimumUpdatePeriod"});break;case"minBufferTime":r(o.value,{asKey:"minBufferTime",parser:pt,dashName:"minBufferTime"});break;case"timeShiftBufferDepth":r(o.value,{asKey:"timeShiftBufferDepth",parser:pt,dashName:"timeShiftBufferDepth"});break;case"suggestedPresentationDelay":r(o.value,{asKey:"suggestedPresentationDelay",parser:pt,dashName:"suggestedPresentationDelay"});break;case"maxSegmentDuration":r(o.value,{asKey:"maxSegmentDuration",parser:pt,dashName:"maxSegmentDuration"});break;case"maxSubsegmentDuration":r(o.value,{asKey:"maxSubsegmentDuration",parser:pt,dashName:"maxSubsegmentDuration"});break}}return[e,t]}function Mf(n){let[e,t]=ay(n.childNodes),[r,i]=sy(n),o=t.concat(i);return[{children:e,attributes:r},o]}function $d(n,e){let t=n.documentElement;if(_(t)||t.nodeName!=="MPD")throw new Error("DASH Parser: document root should be MPD");let[r,i]=Mf(t),o=Rf(r,e,i);return a(o);function a(s){if(s.type==="done")return s;if(s.type==="needs-clock")return{type:"needs-resources",value:{urls:[s.value.url],format:"string",continue(d){if(d.length!==1)throw new Error("DASH parser: wrong number of loaded ressources.");let u=s.value.continue(d[0].responseData);return a(u)}}};if(s.type==="needs-xlinks")return{type:"needs-resources",value:{urls:s.value.xlinksUrls,format:"string",continue(d){let u=[];for(let l=0;l<d.length;l++){let{responseData:f,receivedTime:g,sendingTime:p,url:I}=d[l];if(!f.success)throw f.error;let h="<root>"+f.data+"</root>",b=new DOMParser().parseFromString(h,"text/xml");if(_(b)||b.children.length===0)throw new Error("DASH parser: Invalid external ressources");let T=b.children[0].children,v=[],E=[];for(let R=0;R<T.length;R++)if(T[R].nodeType===Node.ELEMENT_NODE){let[k,A]=la(T[R]);E.push(...A),v.push(k)}u.push({url:I,receivedTime:g,sendingTime:p,parsed:v,warnings:E})}let c=s.value.continue(u);return a(c)}}};Qe(s)}}var Af=$d;function Ye(n,e){if(e.length===0)return n;let t,r="",i=n.indexOf("#"),o=n;i>=0&&(r=n.substring(i),o=n.substring(0,i));let a=o.indexOf("?");a===-1?t="?":a+1===o.length?t="":t="&";let s=o+t;for(let d=0;d<e.length;d++){let u=e[d];u[1]===null?s+=u[0]:s+=`${u[0]}=${u[1]}`,d<e.length-1&&(s+="&")}return r.length>0&&(s+=r),s}function Qd(n,e){return(t,r,i)=>new Promise((o,a)=>{let s=Date.now()-K(),d=!1,f={reject:I=>{var v,E;if(d||i.isCancelled())return;d=!0,i.deregister(p);let h=I,b=(v=h==null?void 0:h.message)!=null?v:"Unknown error when fetching the Manifest through a custom manifestLoader.",T=new nt(b,(E=h==null?void 0:h.canRetry)!=null?E:!1,h==null?void 0:h.xhr);a(T)},resolve:I=>{if(d||i.isCancelled())return;d=!0,i.deregister(p);let h=I.receivingTime!==void 0?I.receivingTime-s:void 0,b=I.sendingTime!==void 0?I.sendingTime-s:void 0;o({responseData:I.data,size:I.size,requestDuration:I.duration,url:I.url,receivedTime:h,sendingTime:b})},fallback:()=>{d||i.isCancelled()||(d=!0,i.deregister(p),e(t,r,i).then(o,a))}},g=n({url:t,timeout:r.timeout,cmcdPayload:r.cmcdPayload},f);i.register(p);function p(I){d||(d=!0,typeof g=="function"&&g(),a(I))}})}function dy(n){return function(t,r,i){var s,d;if(t===void 0)throw new Error("Cannot perform HTTP(s) request. URL not known");let o=((s=r.cmcdPayload)==null?void 0:s.type)==="query"?Ye(t,r.cmcdPayload.value):t,a=((d=r.cmcdPayload)==null?void 0:d.type)==="headers"?r.cmcdPayload.value:void 0;switch(n){case"arraybuffer":return Te({url:o,headers:a,responseType:"arraybuffer",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"text":return Te({url:o,headers:a,responseType:"text",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"document":return Te({url:o,headers:a,responseType:"document",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});default:Qe(n)}}}function Li({customManifestLoader:n},e,t){let r=dy(e),i=typeof n!="function"?r:Qd(n,r);return t!==null?t(i):i}function Jt(n,e){if(e){if(yt(n,1718909296)<0)throw new De("INTEGRITY_ERROR","Incomplete `ftyp` box");if(yt(n,1836019574)<0)throw new De("INTEGRITY_ERROR","Incomplete `moov` box")}else{if(yt(n,1836019558)<0)throw new De("INTEGRITY_ERROR","Incomplete `moof` box");if(yt(n,1835295092)<0)throw new De("INTEGRITY_ERROR","Incomplete `mdat` box")}}function gt(n,e){if(n==="audio"||n==="video")return e==="video/mp4"||e==="audio/mp4"?"mp4":e==="video/webm"||e==="audio/webm"?"webm":void 0;if(n==="text")return e==="application/mp4"?"mp4":void 0}function ca(n){return(e,t,r,i,o)=>{return new Promise((s,d)=>{let u=new B,c=u.linkToSignal(i);u.signal.register(d),n(e,t,r,u.signal,le(ae({},o),{onNewChunk(f){try{a(f),o.onNewChunk(f)}catch(g){l(),u.cancel(),d(g)}}})).then(f=>{if(l(),!u.isUsed()){if(f.resultType==="segment-loaded")try{a(f.resultData.responseData)}catch(g){d(g);return}s(f)}},f=>{l(),d(f)});function l(){u.signal.deregister(d),c()}});function a(s){!(s instanceof ArrayBuffer)&&!(s instanceof Uint8Array)||gt(t.type,t.mimeType)!=="mp4"||Jt(new Uint8Array(s),t.segment.isInit)}}}function xf(n){return async(e,t,r)=>{let i=await n(e,t,r);return o(i.responseData),i;function o(a){if(typeof a=="string"){let s=a.length-1,d=["</","MPD",">"];for(let u=d.length-1;u>=0;u--){let c=d[u];for(;uy(a[s]);)s--;for(let l=c.length-1;l>=0;l--){if(a[s]!==c[l])throw new Error("INTEGRITY_ERROR MPD does not end with </MPD>");s--}}}else if(a instanceof ArrayBuffer){let s=a.byteLength-1,d=new DataView(a),u=[[60,47],[77,80,68],[62]];for(let c=u.length-1;c>=0;c--){let l=u[c];for(;ly(d.getUint8(s));)s--;for(let f=l.length-1;f>=0;f--){if(d.getUint8(s)!==l[f])throw new Error("INTEGRITY_ERROR MPD does not end with </MPD>");s--}}}else if(!_(ee.Document)&&a instanceof ee.Document&&a.documentElement.nodeName!=="MPD")throw new De("INTEGRITY_ERROR","MPD does not end with </MPD>")}}}function uy(n){return n===" "||n===" "||n==="\r"||n===`
5
+ `}function ly(n){return n===32||n===9||n===13||n===10}function Xd(n){let{referenceDateTime:e}=n,t=n.serverSyncInfos!==void 0?n.serverSyncInfos.serverTimestamp-n.serverSyncInfos.clientTime:void 0;return function(i,o,a,s,d){var T;let{responseData:u}=i,c=o.externalClockOffset,l=(T=i.url)!=null?T:o.originalUrl,f=t!=null?t:c,p={unsafelyBaseOnPreviousManifest:o.unsafeMode?o.previousManifest:null,url:l,referenceDateTime:e,externalClockOffset:f},I=me.dashParsers;if(I.wasm===null||I.wasm.status==="uninitialized"||I.wasm.status==="failure")return m.debug("DASH: WASM MPD Parser not initialized. Running JS one."),h();{let v=gy(u);if(!hy(v))return m.info("DASH: MPD doesn't seem to be UTF-8-encoded. Running JS parser instead of the WASM one."),h();if(I.wasm.status==="initialized"){m.debug("DASH: Running WASM MPD Parser.");let E=I.wasm.runWasmParser(v,p);return b(E)}else return m.debug("DASH: Awaiting WASM initialization before parsing the MPD."),I.wasm.waitForInitialization().catch(()=>{}).then(()=>{if(I.wasm===null||I.wasm.status!=="initialized")return m.warn("DASH: WASM MPD parser initialization failed. Running JS parser instead"),h();m.debug("DASH: Running WASM MPD Parser.");let R=I.wasm.runWasmParser(v,p);return b(R)})}function h(){if(I.fastJs!==null){let v=my(u),E=I.fastJs(v,p);return b(E)}else if(I.native!==null){let v=py(u),E=I.native(v,p);return b(E)}else throw new Error("No MPD parser is imported")}function b(v){if(v.type==="done"){if(v.value.warnings.length>0&&a(v.value.warnings),s.isCancelled())return Promise.reject(s.cancellationError);let k=[];return{manifest:new Vn(v.value.parsed,n,k),url:l,warnings:k}}let{value:E}=v,R=E.urls.map(k=>d(()=>{let A=U.getCurrent().DEFAULT_REQUEST_TIMEOUT,M=U.getCurrent().DEFAULT_CONNECTION_TIMEOUT;return E.format==="string"?Te({url:k,responseType:"text",timeout:A,connectionTimeout:M,cancelSignal:s}):Te({url:k,responseType:"arraybuffer",timeout:A,connectionTimeout:M,cancelSignal:s})}).then(A=>{if(E.format==="string"){if(typeof A.responseData!="string")throw new Error("External DASH resources should have been a string");return j(A,{responseData:{success:!0,data:A.responseData}})}else{if(!(A.responseData instanceof ArrayBuffer))throw new Error("External DASH resources should have been ArrayBuffers");return j(A,{responseData:{success:!0,data:A.responseData}})}},A=>{let M=we(A,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"An unknown error occured when parsing ressources."});return j({},{size:void 0,requestDuration:void 0,responseData:{success:!1,error:M}})}));return Promise.all(R).then(k=>E.format==="string"?(cy(k),b(E.continue(k))):(fy(k),b(E.continue(k))))}}}function cy(n){y.CURRENT_ENV!==y.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&typeof t.data=="string")&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function fy(n){y.CURRENT_ENV!==y.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&t.data instanceof ArrayBuffer)&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function my(n){if(n instanceof ArrayBuffer)return Le(new Uint8Array(n));if(typeof n=="string")return n;if(n instanceof Document)return n.documentElement.outerHTML;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function py(n){if(n instanceof ArrayBuffer)return new DOMParser().parseFromString(Le(new Uint8Array(n)),"text/xml");if(typeof n=="string")return new DOMParser().parseFromString(n,"text/xml");if(n instanceof Document)return n;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function gy(n){if(n instanceof ArrayBuffer)return n;if(typeof n=="string")return ve(n).buffer;if(n instanceof Document)return ve(n.documentElement.innerHTML).buffer;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function hy(n){let e=new DataView(n);return e.getUint16(0)===61371&&e.getUint8(2)===191?!0:!(e.getUint16(0)===65279||e.getUint16(0)===65534)}function dt([n,e]){return e===1/0?`bytes=${n}-`:`bytes=${n}-${e}`}function Ni(n,e){return n===null?null:e.url===null?n.baseUrl:$n(n.baseUrl,e.url)}function Ui(n,e,t,r,i){var u,c;let o=n;((u=t.cmcdPayload)==null?void 0:u.type)==="query"&&(o=Ye(o,t.cmcdPayload.value));let a=((c=t.cmcdPayload)==null?void 0:c.type)==="headers"?t.cmcdPayload.value:void 0;if(e.range===void 0)return Te({url:o,responseType:"arraybuffer",headers:a,timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(l=>({resultType:"segment-loaded",resultData:l}));if(e.indexRange===void 0)return Te({url:o,headers:le(ae({},a),{Range:dt(e.range)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(l=>({resultType:"segment-loaded",resultData:l}));if(e.range[1]+1===e.indexRange[0])return Te({url:o,headers:le(ae({},a),{Range:dt([e.range[0],e.indexRange[1]])}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(l=>({resultType:"segment-loaded",resultData:l}));let s=Te({url:o,headers:le(ae({},a),{Range:dt(e.range)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}),d=Te({url:o,headers:le(ae({},a),{Range:dt(e.indexRange)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress});return Promise.all([s,d]).then(([l,f])=>{let g=re(new Uint8Array(l.responseData),new Uint8Array(f.responseData)),p=Math.min(l.sendingTime,f.sendingTime),I=Math.max(l.receivedTime,f.receivedTime);return{resultType:"segment-loaded",resultData:{url:o,responseData:g,size:l.size+f.size,requestDuration:I-p,sendingTime:p,receivedTime:I}}})}async function Bi(n,e,t,r){let i=null;function o(s){let d=new Uint8Array(s.chunk),u=i!==null?re(i,d):d,c=No(u),l=c[0];i=c[1],!(l!==null&&(l.forEach(f=>{t.onNewChunk(f)}),r.isCancelled()))&&(t.onProgress({duration:s.duration,size:s.size,totalSize:s.totalSize}),r.isCancelled())}return{resultType:"chunk-complete",resultData:await Io({url:n,headers:e.headers,onData:o,timeout:e.timeout,connectionTimeout:e.connectionTimeout,cancelSignal:r})}}async function wf(n,e,t,r,i,o){var f,g;if(e.segment.isInit)return Ui(n,e.segment,r,o,i);let a=((f=r.cmcdPayload)==null?void 0:f.type)==="query"?Ye(n,r.cmcdPayload.value):n,s=((g=r.cmcdPayload)==null?void 0:g.type)==="headers"?r.cmcdPayload.value:void 0,{segment:d}=e,u;d.range!==void 0?u=le(ae({},s),{Range:dt(d.range)}):s!==void 0&&(u=s);let c=gt(e.type,e.mimeType);if(t&&(c==="mp4"||c===void 0)){if(Sr())return Bi(a,{headers:u,timeout:r.timeout,connectionTimeout:r.connectionTimeout},i,o);kt("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}return{resultType:"segment-loaded",resultData:await Te({url:a,responseType:"arraybuffer",headers:u,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:o,onProgress:i.onProgress})}}function Zd({lowLatencyMode:n,segmentLoader:e,checkMediaSegmentIntegrity:t}){return t!==!0?r:ca(r);function r(i,o,a,s,d){let u=Ni(i,o.segment);return u===null?Promise.resolve({resultType:"segment-created",resultData:null}):n||e===void 0?wf(u,o,n,a,d,s):new Promise((c,l)=>{let f=!1,b={reject:k=>{var L,O;if(f||s.isCancelled())return;f=!0,s.deregister(R);let A=k,M=(L=A==null?void 0:A.message)!=null?L:"Unknown error when fetching a DASH segment through a custom segmentLoader.",x=new nt(M,(O=A==null?void 0:A.canRetry)!=null?O:!1,A==null?void 0:A.xhr);l(x)},resolve:k=>{f||s.isCancelled()||(f=!0,s.deregister(R),c({resultType:"segment-loaded",resultData:{responseData:k.data,size:k.size,requestDuration:k.duration}}))},progress:k=>{f||s.isCancelled()||d.onProgress({duration:k.duration,size:k.size,totalSize:k.totalSize})},fallback:()=>{f||s.isCancelled()||(f=!0,s.deregister(R),wf(u,o,n,a,d,s).then(c,l))}},T;o.segment.range!==void 0&&(T=[o.segment.range],o.segment.indexRange!==void 0&&T.push(o.segment.indexRange));let v={isInit:o.segment.isInit,timeout:a.timeout,byteRanges:T,trackType:o.type,url:u,cmcdPayload:a.cmcdPayload},E=e(v,b);s.register(R);function R(k){f||(f=!0,typeof E=="function"&&E(),l(k))}})}}var eu=408125543,Of=357149030,yy=2807729,Iy=17545,by=475249515,Sy=187,Ty=179,_y=183,Ey=241;function en(n,e,t,[r,i]){let o=r;for(;o<i;){let a=Ry(t,o);if(a===null)return null;let{value:s,length:d}=a,u=o+d,c=ky(t,u);if(c===null)return null;let{length:l,value:f}=c,g=u+l,p=g+f;if(s===n)return[g,p];if(e.length>0){for(let I=0;I<e.length;I++)if(s===e[I]){let h=e.slice(I+1,e.length);return en(n,h,t,[g,p])}}o=p}return null}function fa(n,e){let t=en(yy,[eu,Of],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return 1e9/Jd(n,t[0],r)}function vy(n,e){let t=en(Iy,[eu,Of],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return r===4?Cy(n,t[0]):r===8?Py(n,t[0]):null}function tu(n,e){let t=en(eu,[],n,[e,n.length]);if(t===null)return null;let[r,i]=t,o=fa(n,r);if(o===null)return null;let a=vy(n,r);if(a===null)return null;let s=en(by,[],n,[r,i]);if(s===null)return null;let d=[],u=s[0];for(;u<s[1];){let l=en(Sy,[],n,[u,s[1]]);if(l===null)break;let f=en(Ty,[],n,[l[0],l[1]]);if(f===null)return null;let g=Jd(n,f[0],f[1]-f[0]),p=en(Ey,[_y],n,[l[0],l[1]]);if(p===null)return null;let I=Jd(n,p[0],p[1]-p[0])+r;d.push({time:g,rangeStart:I}),u=l[1]}let c=[];for(let l=0;l<d.length;l++){let f=d[l];l===d.length-1?c.push({time:f.time,timescale:o,duration:l===0?a:a-f.time,range:[f.rangeStart,1/0]}):c.push({time:f.time,timescale:o,duration:d[l+1].time-f.time,range:[f.rangeStart,d[l+1].rangeStart-1]})}return c}function Df(n,e){for(let t=1;t<=8;t++)if(n[e]>=Math.pow(2,8-t))return t}function Ry(n,e){let t=Df(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function ky(n,e){let t=Df(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=(n[e]&(1<<8-t)-1)*Math.pow(2,(t-1)*8);for(let i=1;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function Cy(n,e){return new DataView(n.buffer).getFloat32(e)}function Py(n,e){return new DataView(n.buffer).getFloat64(e)}function Jd(n,e,t){let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return r}function Fi(n,e,t,r){let i=Is(n);if(i===void 0||r===void 0)return null;let o=t.timestampOffset!==void 0?i+t.timestampOffset*r:i,a=Or(n);if(o<0&&(a!==void 0&&(a+=o),o=0),e||!t.complete)return a===void 0&&m.warn("DASH: Chunked segments should indicate a duration through their trun boxes"),{time:o/r,duration:a!==void 0?a/r:void 0};let s,d=t.duration*r,u=Math.min(r*.9,d/4);return a!==void 0&&Math.abs(a-d)<=u&&(s=a),{time:o/r,duration:s!==void 0?s/r:s}}function My(n,e){if(n.length<=0)return!1;let t=n.length;for(let r=0;r<t;r++){let i=n[r],o=e,{messageData:a}=i,s=Le(a),d=Date.parse(s);if(o===void 0||d===void 0||isNaN(d)||d>=o)return!0}return!1}function nu(n,e){if(n.length===0)return;let{manifestRefreshEventsFromEMSGs:t,EMSGs:r}=n.reduce((a,s)=>(s.schemeIdUri==="urn:mpeg:dash:event:2012"&&s.value==="1"?(a.manifestRefreshEventsFromEMSGs===void 0&&(a.manifestRefreshEventsFromEMSGs=[]),a.manifestRefreshEventsFromEMSGs.push(s)):(a.EMSGs===void 0&&(a.EMSGs=[]),a.EMSGs.push(s)),a),{manifestRefreshEventsFromEMSGs:void 0,EMSGs:void 0}),i=r==null?void 0:r.map(a=>({type:"emsg",value:a})),o=e===void 0||t===void 0?!1:My(t,e);return{inbandEvents:i,needsManifestRefresh:o}}function ru({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var v,E;let{segment:o,periodStart:a,periodEnd:s}=r,{data:d,isChunked:u}=t,c=[a,s];if(d===null)return o.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:0,protectionData:[],appendWindow:c};let l=d instanceof Uint8Array?d:new Uint8Array(d),f=gt(r.type,r.mimeType),g=f==="mp4"||f===void 0,p=[];if(g){let R=Uo(l),k;o.isInit&&(k=(v=Cc(l))!=null?v:void 0),(R.length>0||k!==void 0)&&p.push({initDataType:"cenc",keyId:k,initData:R})}if(!o.isInit){let R=g?Fi(l,u,o,i):null,k=(E=o.timestampOffset)!=null?E:0;if(g){let A=kc(l);if(A!==void 0){let M=A.filter(L=>o.privateInfos===void 0||o.privateInfos.isEMSGWhitelisted===void 0?!1:o.privateInfos.isEMSGWhitelisted(L)),x=nu(M,r.manifestPublishTime);if(x!==void 0){let{needsManifestRefresh:L,inbandEvents:O}=x;return{segmentType:"media",chunkData:l,chunkSize:l.length,chunkInfos:R,chunkOffset:k,appendWindow:c,inbandEvents:O,protectionData:p,needsManifestRefresh:L}}}}return{segmentType:"media",chunkData:l,chunkSize:l.length,chunkInfos:R,chunkOffset:k,protectionData:p,appendWindow:c}}let{indexRange:I}=o,h;if(f==="webm")h=tu(l,0);else if(g&&(h=wr(l,Array.isArray(I)?I[0]:0),n===!0&&h!==null&&h.length>0)){let R=h[h.length-1];Array.isArray(R.range)&&(R.range[1]=1/0)}let b;g?b=Dr(l):f==="webm"&&(b=fa(l,0));let T=_(b)?void 0:b;return{segmentType:"init",initializationData:l,initializationDataSize:l.length,protectionData:p,initTimescale:T,segmentList:h!=null?h:void 0}}}function iu({lowLatencyMode:n,checkMediaSegmentIntegrity:e}){return e!==!0?t:ca(t);async function t(r,i,o,a,s){var h,b;let{segment:d}=i,u=Ni(r,d);if(u===null)return Promise.resolve({resultType:"segment-created",resultData:null});if(d.isInit)return Ui(u,d,o,a,s);let c=((h=o.cmcdPayload)==null?void 0:h.type)==="query"?Ye(u,o.cmcdPayload.value):u,l=((b=o.cmcdPayload)==null?void 0:b.type)==="headers"?o.cmcdPayload.value:void 0,f;d.range!==void 0?f=le(ae({},l),{Range:dt(d.range)}):l!==void 0&&(f=l);let g=gt(i.type,i.mimeType),p=g==="mp4"||g===void 0;if(n&&p){if(Sr())return Bi(c,{headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout},s,a);kt("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}let I;return p?I=await Te({url:c,responseType:"arraybuffer",headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}):I=await Te({url:c,responseType:"text",headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}),{resultType:"segment-loaded",resultData:I}}}function Ay(n){let e=Ar(n);return e===null?"":Le(e)}function xy(n){if(n===void 0)throw new Error("Cannot parse subtitles: unknown format");switch(n.toLowerCase()){case"stpp":case"stpp.ttml.im1t":return"ttml";case"wvtt":return"vtt"}throw new Error(`The codec used for the subtitles "${n}" is not managed yet.`)}function wy(n,e){switch(e){case"application/ttml+xml":return"ttml";case"application/x-sami":case"application/smil":return"sami";case"text/vtt":return"vtt"}if(n!==void 0&&n.toLowerCase()==="srt")return"srt";throw new Error(`could not find a text-track parser for the type ${e!=null?e:""}`)}function Lf({segment:n,language:e,codecs:t},r,i,o){if(n.isInit)return null;let a,s;i===null?o?(a=n.time,s=n.end):m.warn("Transport: Unavailable time data for current text track."):(a=i.time,i.duration!==void 0?s=a+i.duration:!o&&n.complete&&(s=a+n.duration));let d=xy(t);return{data:Ay(r),type:d,language:e,start:a,end:s}}function Nf(n,e,t){let{segment:r}=n;if(r.isInit)return null;let i,o;t?m.warn("Transport: Unavailable time data for current text track."):(i=r.time,r.complete&&(o=r.time+r.duration));let a=wy(n.codecs,n.mimeType);return{data:e,type:a,language:n.language,start:i,end:o}}function Oy(n,e,t,r,i){var f;let{segment:o}=t,{isInit:a,indexRange:s}=o,d;if(typeof n=="string"?d=ve(n):n instanceof Uint8Array?d=n:d=new Uint8Array(n),a){let g=wr(d,Array.isArray(s)?s[0]:0);if(i===!0&&g!==null&&g.length>0){let I=g[g.length-1];Array.isArray(I.range)&&(I.range[1]=1/0)}let p=Dr(d);return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:p,segmentList:g!=null?g:void 0}}let u=Fi(d,e,o,r),c=Lf(t,d,u,e),l=(f=o.timestampOffset)!=null?f:0;return{segmentType:"media",chunkData:c,chunkSize:d.length,chunkInfos:u,chunkOffset:l,protectionData:[],appendWindow:[t.periodStart,t.periodEnd]}}function Dy(n,e,t){let{periodStart:r,periodEnd:i,segment:o}=t,{timestampOffset:a=0}=o;if(o.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};let s,d;if(typeof n!="string"){let c=n instanceof Uint8Array?n:new Uint8Array(n);s=Le(c),d=c.length}else s=n;return{segmentType:"media",chunkData:Nf(t,s,e),chunkSize:d,chunkInfos:null,chunkOffset:a,protectionData:[],appendWindow:[r,i]}}function ou({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var l;let{periodStart:o,periodEnd:a,segment:s}=r,{data:d,isChunked:u}=t;if(d===null)return s.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:(l=s.timestampOffset)!=null?l:0,protectionData:[],appendWindow:[o,a]};let c=gt(r.type,r.mimeType);if(c==="webm")throw new Error("Text tracks with a WEBM container are not yet handled.");return c==="mp4"?Oy(d,u,r,i,n):Dy(d,u,r)}}function Uf(n){let e=Li({customManifestLoader:n.manifestLoader},Ly()?"text":"arraybuffer",n.checkManifestIntegrity===!0?xf:null),t=Xd(n),r=Zd(n),i=ru(n),o=iu(n),a=ou(n);return{transportName:"dash",manifest:{loadManifest:e,parseManifest:t},audio:{loadSegment:r,parseSegment:i},video:{loadSegment:r,parseSegment:i},text:{loadSegment:o,parseSegment:a}}}function Ly(){return me.dashParsers.wasm!==null&&(me.dashParsers.wasm.status==="initialized"||me.dashParsers.wasm.status==="initializing")}var Bf=Uf;function au(n){n.transports.dash===void 0&&(n.transports.dash=Bf),n.dashParsers.native=Af,n.mainThreadMediaSourceInit=Tn}var Ny=typeof MediaSource=="function"&&MediaSource.canConstructInDedicatedWorker===!0,Ff=Ny;var Ki=class extends Gn{constructor(e){super(),this._settings=e,this._initCanceller=new B}prepare(){}start(e,t){let r=this._initCanceller.signal,{keySystems:i,speed:o,url:a}=this._settings;qn(e);let{statusRef:s}=Ii(e,i,{onError:u=>this._onFatalError(u),onWarning:u=>this.trigger("warning",u),onBlackListProtectionData:Z,onKeyIdsCompatibilityUpdate:Z},r);_i(e,u=>this._onFatalError(u),r);let d=new Sn(t,null,o);d.addEventListener("stalled",u=>this.trigger("stalled",u)),d.addEventListener("unstalled",()=>this.trigger("unstalled",null)),d.addEventListener("warning",u=>this.trigger("warning",u)),r.register(()=>{d.destroy()}),d.start(),s.onUpdate((u,c)=>{u.initializationState.type!=="uninitialized"&&(c(),m.info("Setting URL to HTMLMediaElement",a),e.src=a,r.register(()=>{m.info("Init: Removing directfile src from media element",e.src),qn(e)}),u.initializationState.type==="awaiting-media-link"?(u.initializationState.value.isMediaLinked.setValue(!0),s.onUpdate((l,f)=>{l.initializationState.type==="initialized"&&(f(),this._seekAndPlay(e,t))},{emitCurrentValue:!0,clearSignal:r})):(te(u.initializationState.type==="initialized"),this._seekAndPlay(e,t)))},{emitCurrentValue:!0,clearSignal:r})}updateContentUrls(e,t){throw new Error("Cannot update content URL of directfile contents")}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.cancel(),this.trigger("error",e)}_seekAndPlay(e,t){let r=this._initCanceller.signal,{autoPlay:i,startAt:o}=this._settings;yi({mediaElement:e,playbackObserver:t,startTime:()=>{m.debug("Init: Calculating initial time");let s=Uy(e,o);return m.debug("Init: Initial time calculated:",s),s},mustAutoPlay:i,onWarning:s=>this.trigger("warning",s),isDirectfile:!0},r).autoPlayResult.then(()=>hi(t,e,!0,r).onUpdate((s,d)=>{s&&(d(),this.trigger("loaded",{getSegmentSinkMetrics:null}))},{emitCurrentValue:!0,clearSignal:r})).catch(s=>{r.isCancelled()||this._onFatalError(s)})}};function Uy(n,e){if(_(e))return 0;if(_(e.position))if(_(e.wallClockTime)){if(!_(e.fromFirstPosition))return e.fromFirstPosition}else return e.wallClockTime;else return e.position;let t=n.duration;if(typeof e.fromLastPosition=="number")return _(t)||!isFinite(t)?(m.warn("startAt.fromLastPosition set but no known duration, beginning at 0."),0):Math.max(0,t+e.fromLastPosition);if(typeof e.fromLivePosition=="number"){let r=n.seekable.length>0?n.seekable.end(0):t;return _(r)?(m.warn("startAt.fromLivePosition set but no known live position, beginning at 0."),0):Math.max(0,r+e.fromLivePosition)}else if(!_(e.percentage)){if(_(t)||!isFinite(t))return m.warn("startAt.percentage set but no known duration, beginning at 0."),0;let{percentage:r}=e;if(r>=100)return t;if(r<=0)return 0;let i=+r/100;return t*i}return 0}function su(n,e){for(let t=0;t<n.length;t++)(!sr||t!==e)&&(n[t].enabled=!1);return e<0||e>=n.length?!1:(n[e].enabled=!0,!0)}function Zn(n,e){var t;if(e.length!==n.length)return!0;for(let r=0;r<e.length;r++)if(e[r].nativeTrack!==((t=n[r])==null?void 0:t.nativeTrack))return!0;return!1}function du(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_audio_"+a+"_"+s.toString();t[a]=s+1;let u={language:o.language,id:d,normalized:Tr(o.language),audioDescription:o.kind==="descriptions"||o.kind==="description",representations:[]};e.push({track:u,nativeTrack:o})}return e}function uu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_text_"+a+"_"+s.toString();t[a]=s+1;let u=o.kind==="forced"?!0:void 0,c={language:o.language,forced:u,label:o.label,id:d,normalized:Tr(o.language),closedCaption:o.kind==="captions"};e.push({track:c,nativeTrack:o})}return e}function lu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_video_"+a+"_"+s.toString();t[a]=s+1,e.push({track:{id:d,representations:[]},nativeTrack:o})}return e}var Vi=class extends ie{constructor(e){var t,r,i;super(),this._nativeAudioTracks=e.audioTracks,this._nativeVideoTracks=e.videoTracks,this._nativeTextTracks=e.textTracks,this._audioTracks=this._nativeAudioTracks!==void 0?du(this._nativeAudioTracks):[],this._videoTracks=this._nativeVideoTracks!==void 0?lu(this._nativeVideoTracks):[],this._textTracks=this._nativeTextTracks!==void 0?uu(this._nativeTextTracks):[],this._lastEmittedNativeAudioTrack=(t=this._getCurrentAudioTrack())==null?void 0:t.nativeTrack,this._lastEmittedNativeVideoTrack=(r=this._getCurrentVideoTrack())==null?void 0:r.nativeTrack,this._lastEmittedNativeTextTrack=(i=this._getCurrentTextTrack())==null?void 0:i.nativeTrack,this._handleNativeTracksCallbacks()}setAudioTrackById(e){for(let t=0;t<this._audioTracks.length;t++){let{track:r,nativeTrack:i}=this._audioTracks[t];if(r.id===e){this._enableAudioTrackFromIndex(t),this._audioTrackLockedOn=i;return}}throw new Error("Audio track not found.")}disableTextTrack(){Kf(this._textTracks),this._textTrackLockedOn=null}setTextTrackById(e){let t=!1;for(let r=0;r<this._textTracks.length;r++){let{track:i,nativeTrack:o}=this._textTracks[r];i.id===e?(o.mode="showing",t=!0,this._textTrackLockedOn=o):(o.mode==="showing"||o.mode==="hidden")&&(o.mode="disabled")}if(!t)throw new Error("Text track not found.")}disableVideoTrack(){Vf(this._videoTracks),this._videoTrackLockedOn=null}setVideoTrackById(e){for(let t=0;t<this._videoTracks.length;t++){let{track:r,nativeTrack:i}=this._videoTracks[t];if(r.id===e){i.selected=!0,this._videoTrackLockedOn=i;return}}throw new Error("Video track not found.")}getChosenAudioTrack(){let e=this._getCurrentAudioTrack();return _(e)?e:e.track}getChosenTextTrack(){let e=this._getCurrentTextTrack();return _(e)?e:e.track}getChosenVideoTrack(){let e=this._getCurrentVideoTrack();return _(e)?e:e.track}getAvailableAudioTracks(){return this._audioTracks.map(({track:e,nativeTrack:t})=>({id:e.id,language:e.language,normalized:e.normalized,audioDescription:e.audioDescription,active:t.enabled,representations:e.representations}))}getAvailableTextTracks(){return this._textTracks.map(({track:e,nativeTrack:t})=>({id:e.id,label:e.label,forced:e.forced,language:e.language,normalized:e.normalized,closedCaption:e.closedCaption,active:t.mode==="showing"}))}getAvailableVideoTracks(){return this._videoTracks.map(({track:e,nativeTrack:t})=>({id:e.id,representations:e.representations,active:t.selected}))}dispose(){this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onchange=null,this._nativeVideoTracks.onaddtrack=null,this._nativeVideoTracks.onremovetrack=null),this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onchange=null,this._nativeAudioTracks.onaddtrack=null,this._nativeAudioTracks.onremovetrack=null),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onchange=null,this._nativeTextTracks.onaddtrack=null,this._nativeTextTracks.onremovetrack=null),this.removeEventListener()}_getCurrentAudioTrack(){if(this._nativeAudioTracks!==void 0){for(let e=0;e<this._audioTracks.length;e++){let t=this._audioTracks[e];if(t.nativeTrack.enabled)return t}return null}}_getCurrentVideoTrack(){if(this._nativeVideoTracks!==void 0){for(let e=0;e<this._videoTracks.length;e++){let t=this._videoTracks[e];if(t.nativeTrack.selected)return t}return null}}_getCurrentTextTrack(){if(this._nativeTextTracks!==void 0){for(let e=0;e<this._textTracks.length;e++){let t=this._textTracks[e];if(t.nativeTrack.mode==="showing")return t}return null}}_setPreviouslyLockedAudioTrack(){if(this._audioTrackLockedOn!==void 0)if(this._audioTrackLockedOn===null)for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];t.enabled=!1}else for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];if(t===this._audioTrackLockedOn){this._enableAudioTrackFromIndex(e);return}}}_setPreviouslyLockedTextTrack(){if(this._textTrackLockedOn!==void 0)if(this._textTrackLockedOn===null){Kf(this._textTracks);return}else for(let e=0;e<this._textTracks.length;e++){let{nativeTrack:t}=this._textTracks[e];if(t===this._textTrackLockedOn){By(this._textTracks,t),t.mode!=="showing"&&(t.mode="showing");return}}}_setPreviouslyLockedVideoTrack(){if(this._videoTrackLockedOn!==void 0)if(this._videoTrackLockedOn===null){Vf(this._videoTracks);return}else for(let e=0;e<this._videoTracks.length;e++){let{nativeTrack:t}=this._videoTracks[e];if(t===this._videoTrackLockedOn){t.selected=!0;return}}}_handleNativeTracksCallbacks(){this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onaddtrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=du(this._nativeAudioTracks);if(Zn(this._audioTracks,r)){this._audioTracks=r,this._setPreviouslyLockedAudioTrack(),this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onremovetrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=du(this._nativeAudioTracks);if(Zn(this._audioTracks,r)){this._audioTracks=r,this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onchange=()=>{if(this._audioTracks!==void 0)for(let e=0;e<this._audioTracks.length;e++){let{track:t,nativeTrack:r}=this._audioTracks[e];if(r.enabled){r!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",t),this._lastEmittedNativeAudioTrack=r);return}}this._lastEmittedNativeAudioTrack!==null&&(this.trigger("audioTrackChange",null),this._lastEmittedNativeAudioTrack=null)}),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onaddtrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=uu(this._nativeTextTracks);if(Zn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onremovetrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=uu(this._nativeTextTracks);if(Zn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onchange=()=>{if(this._textTracks!==void 0)for(let e=0;e<this._textTracks.length;e++){let{track:t,nativeTrack:r}=this._textTracks[e];if(r.mode==="showing"){r!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",t),this._lastEmittedNativeTextTrack=r);return}}this._lastEmittedNativeTextTrack!==null&&(this.trigger("textTrackChange",null),this._lastEmittedNativeTextTrack=null)}),this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onaddtrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=lu(this._nativeVideoTracks);if(Zn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onremovetrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=lu(this._nativeVideoTracks);if(Zn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onchange=()=>{if(this._videoTracks!==void 0)for(let e=0;e<this._videoTracks.length;e++){let{track:t,nativeTrack:r}=this._videoTracks[e];if(r.selected){r!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",t),this._lastEmittedNativeVideoTrack=r);return}}this._lastEmittedNativeVideoTrack!==null&&(this.trigger("videoTrackChange",null),this._lastEmittedNativeVideoTrack=null)})}_enableAudioTrackFromIndex(e){su(this._audioTracks.map(({nativeTrack:t})=>t),e)}};function Kf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.mode="disabled"}}function By(n,e){for(let t=0;t<n.length;t++){let{nativeTrack:r}=n[t];r!==e&&(r.mode==="showing"||r.mode==="hidden")&&(r.mode="disabled")}}function Vf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.selected=!1}}function cu(n){n.directfile={initDirectFile:Ki,mediaElementTracksStore:Vi}}function fu(n){n.decrypt=Bc}var zf=ee.ResizeObserver;function mu(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o=new G({height:r,width:i},t),a=r,s=i;if(zf!==void 0){let d=new zf(u=>{if(u.length===0){m.error("Compat: Resized but no observed element.");return}let c=u[0],{height:l,width:f}=c.contentRect;(l!==a||f!==s)&&(a=l,s=f,o.setValue({height:l,width:f}))});d.observe(n),t.register(()=>{d.disconnect()})}else{let d=setInterval(()=>{let{height:u,width:c}=n.getBoundingClientRect();(u!==a||c!==s)&&(a=u,s=c,o.setValue({height:u,width:c}))},e);t.register(()=>{clearInterval(d)})}return o}var Cn=class{constructor(){this._ranges=[],this.length=0}insert(e,t){y.CURRENT_ENV===y.DEV&&(te(e>=0,"invalid start time"),te(t-e>0,"invalid end time")),Ht(this._ranges,{start:e,end:t}),this.length=this._ranges.length}remove(e,t){y.CURRENT_ENV===y.DEV&&(te(e>=0,"invalid start time"),te(t-e>0,"invalid end time"));let r=[];e>0&&r.push({start:0,end:e}),t<1/0&&r.push({start:t,end:1/0}),this._ranges=Hl(this._ranges,r),this.length=this._ranges.length}start(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].start}end(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].end}};function pu(n,e,t,r){m.debug("HTSB: Finding parser for html text tracks:",n);let i=me.htmlTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("HTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("HTTB: Parsed successfully!",o.length),o}function Dt(n,e,t=.2){return Math.abs(n-e)<=Math.min(t,.2)}var Fy=.05;function Hf(n,e){let t=n.end-n.start,r=e.end-e.start,i=Math.abs(n.start-e.start),o=Math.min(t,r,.2);return i/o<=Fy}function zi(n,e){for(let t=n.length-1;t>=0;t--)if(n[t].start<e)return n.slice(0,t+1);return[]}function Jn(n,e){for(let t=0;t<n.length;t++)if(n[t].end>e)return n.slice(t,n.length);return[]}function gu(n,e,t){let r=Math.max(n.start,e),i=zi(n.cues,e),o={start:n.start,end:r,cues:i},a=Math.min(t,n.end),s=Jn(n.cues,t),d={start:a,end:n.end,cues:s};return[o,d]}var Wf=.001,Ky=5,Hi=class{constructor(){this._cuesBuffer=[]}isEmpty(){return this._cuesBuffer.length===0}get(e){let t=this._cuesBuffer,r=[];for(let i=t.length-1;i>=0;i--){let o=t[i];if(e<o.end&&e>=o.start){let a=o.cues;for(let s of a)e>=s.start&&e<s.end&&r.push(s.element);if(r.length===0&&a.length>0)for(let s of a)(Dt(e,s.start,Wf)||Dt(e,s.end,Wf))&&r.push(s.element);return r}}return[]}remove(e,t){y.CURRENT_ENV===y.DEV&&(te(e>=0),te(t>=0),te(t>e));let r=Math.max(e,t),i=this._cuesBuffer;for(let o=0;o<i.length;o++)if(i[o].end>e){let a=i[o];if(a.start>=r)return;if(a.end>=r){if(e<=a.start)a.cues=Jn(a.cues,r),a.start=r;else{let[s,d]=gu(a,e,r);this._cuesBuffer[o]=s,i.splice(o+1,0,d)}return}a.start>=e?(i.splice(o,1),o--):(a.cues=zi(a.cues,e),a.end=Math.max(e,a.start))}}insert(e,t,r){let i=this._cuesBuffer,o={start:t,end:r,cues:e},a=Math.abs(t-r)/Ky;function s(d){let u=i[d];u===void 0||Dt(o.end,u.end,a)?i[d]=o:(u.start>=o.end||(u.cues=Jn(u.cues,o.end),u.start=o.end),i.splice(d,0,o))}for(let d=0;d<i.length;d++){let u=i[d];if(t<u.end){if(Hf(o,u)){if(Dt(r,u.end,a)){i[d]=o;return}else if(r<u.end){u.cues=Jn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}else if(t<u.start){if(r<u.start){i.splice(d,0,o);return}else if(Dt(r,u.start,a)){u.start=r,i.splice(d,0,o);return}else if(Dt(r,u.end,a)){i.splice(d,1,o);return}else if(r<u.end){u.cues=Jn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}if(Dt(u.end,r,a)){u.cues=zi(u.cues,t),u.end=t,i.splice(d+1,0,o);return}else if(u.end>r){let[c,l]=gu(u,t,r);this._cuesBuffer[d]=c,i.splice(d+1,0,o),i.splice(d+2,0,l);return}else{u.cues=zi(u.cues,t),u.end=t;let c=d+1;for(u=i[c];u!==void 0&&r>u.end;)i.splice(c,1),u=i[c];s(c);return}}}if(i.length){let d=i[i.length-1];Dt(d.end,t,a)&&(d.end=t)}i.push(o)}};function hu(n,e,t,r){let i=[e/t.columns,n/t.rows],o=r.getElementsByClassName("proportional-style");for(let a=0;a<o.length;a++){let s=o[a];if(s instanceof HTMLElement){let d=s.getAttribute("data-proportional-font-size");d!==null&&!isNaN(+d)&&(s.style.fontSize=String(+d*i[1])+"px");let u=s.getAttribute("data-proportional-width");u!==null&&!isNaN(+u)&&(s.style.width=String(+u*i[0])+"px");let c=s.getAttribute("data-proportional-height");c!==null&&!isNaN(+c)&&(s.style.height=String(+c*i[1])+"px");let l=s.getAttribute("data-proportional-line-height");l!==null&&!isNaN(+l)&&(s.style.lineHeight=String(+l*i[1])+"px");let f=s.getAttribute("data-proportional-left");f!==null&&!isNaN(+f)&&(s.style.left=String(+f*i[0])+"px");let g=s.getAttribute("data-proportional-top");g!==null&&!isNaN(+g)&&(s.style.top=String(+g*i[1])+"px");let p=s.getAttribute("data-proportional-padding-top");p!==null&&!isNaN(+p)&&(s.style.paddingTop=String(+p*i[1])+"px");let I=s.getAttribute("data-proportional-padding-bottom");I!==null&&!isNaN(+I)&&(s.style.paddingBottom=String(+I*i[1])+"px");let h=s.getAttribute("data-proportional-padding-left");h!==null&&!isNaN(+h)&&(s.style.paddingLeft=String(+h*i[0])+"px");let b=s.getAttribute("data-proportional-padding-right");b!==null&&!isNaN(+b)&&(s.style.paddingRight=String(+b*i[0])+"px")}}return o.length>0}function Gf(n,e){try{n.removeChild(e)}catch(t){m.warn("HTD: Can't remove text track: not in the element.")}}function Vy(n){let e=n.getAttribute("data-resolution-rows"),t=n.getAttribute("data-resolution-columns");if(e===null||t===null)return null;let r=parseInt(e,10),i=parseInt(t,10);return r===null||i===null?null:{rows:r,columns:i}}var Wi=class{constructor(e,t){m.debug("HTD: Creating HTMLTextDisplayer"),this._buffered=new Cn,this._videoElement=e,this._textTrackElement=t,this._sizeUpdateCanceller=new B,this._subtitlesIntervalCanceller=new B,this._buffer=new Hi,this._currentCues=[],this._isAutoRefreshing=!1}pushTextData(e){var I,h;m.debug("HTD: Appending new html text tracks");let{timestampOffset:t,appendWindow:r,chunk:i}=e;if(i===null)return Pe(this._buffered);let{start:o,end:a,data:s,type:d,language:u}=i,c=(I=r[0])!=null?I:0,l=(h=r[1])!=null?h:1/0,f=pu(d,s,t,u);if(c!==0&&l!==1/0){let b=0;for(;b<f.length&&f[b].end<=c;)b++;for(f.splice(0,b),b=0;b<f.length&&f[b].start<c;)f[b].start=c,b++;for(b=f.length-1;b>=0&&f[b].start>=l;)b--;for(f.splice(b,f.length),b=f.length-1;b>=0&&f[b].end>l;)f[b].end=l,b--}let g;if(o!==void 0)g=Math.max(c,o);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("HTD: No start time given. Guessing from cues."),g=f[0].start}let p;if(a!==void 0)p=Math.min(l,a);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("HTD: No end time given. Guessing from cues."),p=f[f.length-1].end}return p<=g?(m.warn("HTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered)):(this._buffer.insert(f,g,p),this._buffered.insert(g,p),!this._isAutoRefreshing&&!this._buffer.isEmpty()&&this.autoRefreshSubtitles(this._subtitlesIntervalCanceller.signal),Pe(this._buffered))}removeBuffer(e,t){return m.debug("HTD: Removing html text track data",e,t),this._buffer.remove(e,t),this._buffered.remove(e,t),this._isAutoRefreshing&&this._buffer.isEmpty()&&(this.refreshSubtitles(),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel(),this._subtitlesIntervalCanceller=new B),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("HTD: Resetting HTMLTextDisplayer"),this.stop(),this._subtitlesIntervalCanceller=new B}stop(){this._subtitlesIntervalCanceller.isUsed()||(m.debug("HTD: Stopping HTMLTextDisplayer"),this._disableCurrentCues(),this._buffer.remove(0,1/0),this._buffered.remove(0,1/0),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel())}_disableCurrentCues(){if(this._sizeUpdateCanceller.cancel(),this._currentCues.length>0){for(let e of this._currentCues)Gf(this._textTrackElement,e.element);this._currentCues=[]}}_displayCues(e){if(this._currentCues.length===e.length&&this._currentCues.every((i,o)=>i.element===e[o]))return;this._sizeUpdateCanceller.cancel();for(let i of this._currentCues)Gf(this._textTrackElement,i.element);this._currentCues=[];for(let i of e){let o=Vy(i);this._currentCues.push({element:i,resolution:o}),this._textTrackElement.appendChild(i)}let r=this._currentCues.filter(i=>i.resolution!==null);if(r.length>0){this._sizeUpdateCanceller=new B,this._sizeUpdateCanceller.linkToSignal(this._subtitlesIntervalCanceller.signal);let{TEXT_TRACK_SIZE_CHECKS_INTERVAL:i}=U.getCurrent();mu(this._textTrackElement,i,this._sizeUpdateCanceller.signal).onUpdate(({height:a,width:s})=>{for(let d of r){let{resolution:u,element:c}=d;hu(a,s,u,c)}},{clearSignal:this._sizeUpdateCanceller.signal,emitCurrentValue:!0})}}autoRefreshSubtitles(e){if(this._isAutoRefreshing||e.isCancelled())return;let t=null,{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:r}=U.getCurrent(),i=()=>{this._isAutoRefreshing=!1,t!==null&&(t.cancel(),t=null)},o=()=>{i(),this._isAutoRefreshing=!0,t=new B,t.linkToSignal(e);let a=setInterval(()=>this.refreshSubtitles(),r);t.signal.register(()=>{clearInterval(a)}),this.refreshSubtitles()};lc(this._videoElement,()=>{i(),this._disableCurrentCues()},e),cc(this._videoElement,o,e),fc(this._videoElement,o,e),o()}refreshSubtitles(){let{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:e}=U.getCurrent(),t;this._videoElement.paused||this._videoElement.playbackRate<=0?t=this._videoElement.currentTime:t=Math.max(this._videoElement.currentTime+e/1e3/2,0);let r=this._buffer.get(t);r.length===0?this._disableCurrentCues():this._displayCues(r)}};y.CURRENT_ENV===y.DEV&&(zy=function(e){function t(r){}});var zy;var tn=Wi;var Hy=/&#([0-9]+);/g,Wy=/<br>/gi,Gy=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,qy=/\s*<p (?:class=([^>]+))?>(.*)/i,jy=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function Yy(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;r!==null;){let i=r[1],o=Qy(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function $y(n){let t=/p\s*{([^}]*)}/gi.exec(n);return t===null?"":t[1]}function Qy(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function Xy(n){return n.replace(Hy,(e,t)=>String.fromCharCode(Number(t)))}function Zy(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=Gy.exec(n),s=Array.isArray(a)?a[1]:"",d,u;i.exec(n);let c=Yy(s),l=$y(s),f;if(w(t)&&(f=c[t],f===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let p=n.slice(d.index,u.index),I=jy.exec(p);if(!Array.isArray(I))throw new Error("parse error (sync time attribute)");let h=+I[1];if(isNaN(h))throw new Error("parse error (sync time attribute NaN)");g(p.split(`
6
+ `),h/1e3)}return o;function g(p,I){let h=p.length;for(;--h>=0;){let b=qy.exec(p[h]);if(!Array.isArray(b))continue;let[,T,v]=b;if(f===T)if(v==="&nbsp;")o[o.length-1].end=I;else{let E=document.createElement("DIV");E.className="rxp-texttrack-region";let R=document.createElement("DIV");R.className="rxp-texttrack-div",R.style.position="absolute",R.style.bottom="0",R.style.width="100%",R.style.color="#fff",R.style.textShadow="-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000";let k=document.createElement("div");k.className="rxp-texttrack-p",w(l)&&(k.style.cssText=l);let A=v.split(Wy);for(let M=0;M<A.length;M++){M!==0&&k.appendChild(document.createElement("BR"));let x=document.createElement("SPAN");x.className="rxp-texttrack-span",x.textContent=Xy(A[M]),k.appendChild(x)}R.appendChild(k),E.appendChild(R),o.push({element:E,start:I+e,end:-1})}}}}var qf=Zy;function yu(n){n.htmlTextTracksParsers.sami=qf,n.htmlTextDisplayer=tn}function Iu(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function Gi(n){let e=[];for(let t=0;t<n.length;t++)if(w(n[t])){let r=Iu(n,t),i=n.slice(t,r);i.length>0&&(i.length===1?i[0].indexOf("-->")>=0&&e.push(i):(i[1].indexOf("-->")>=0||i[0].indexOf("-->")>=0)&&e.push(i)),t=r}return e}function ma(n){let e=n.split(":");if(w(e[2])){let t=parseInt(e[0],10),r=parseInt(e[1],10),i=parseFloat(e[2].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function qi(n,e){if(n.length===0)return null;let t,r,i=[];if(w(n[1])&&n[1].indexOf("-->")!==-1&&([t,r]=n[1].split("-->").map(s=>s.trim()),i=n.slice(2,n.length)),(!w(t)||!w(r))&&([t,r]=n[0].split("-->").map(s=>s.trim()),i=n.slice(1,n.length)),!w(t)||!w(r))return null;let o=ma(t),a=ma(r);return o===void 0||a===void 0?null:{start:o+e,end:a+e,payload:i}}function bu(n,e){let t=n.split(/\r\n|\n|\r/),r=Gi(t),i=[];for(let o=0;o<r.length;o++){let a=qi(r[o],e);if(a!==null){let s=Jy(a);s!==null&&i.push(s)}}return i}function Jy(n){let{start:e,end:t,payload:r}=n,i=document.createElement("div");i.className="rxp-texttrack-p",i.style.fontSize="28px",i.style.position="absolute",i.style.bottom="5%",i.style.width="100%",i.style.textAlign="center",i.style.color="#fff",i.style.textShadow="-1px -1px 2px #000,1px -1px 2px #000,-1px 1px 2px #000,1px 1px 2px #000";for(let o=0;o<r.length;o++){o!==0&&i.appendChild(document.createElement("br"));let a=eI(r[o]);i.appendChild(a)}return{start:e,end:t,element:i}}function eI(n){let e=document.createElement("div");e.innerHTML=n;let t=function(r){let i=r.childNodes,o=document.createElement("span");o.className="rxp-texttrack-span";for(let a=0;a<i.length;a++){let s=i[a];if(s.nodeName==="#text"){let d=s.wholeText.split(`
7
+ `);for(let u=0;u<d.length;u++)if(u!==0&&o.appendChild(document.createElement("br")),d[u].length>0){let c=document.createTextNode(d[u]);o.appendChild(c)}}else if(s.nodeName==="B"){let d=t(s);d.style.fontWeight="bold",o.appendChild(d)}else if(s.nodeName==="I"){let d=t(s);d.style.fontStyle="italic",o.appendChild(d)}else if(s.nodeName==="U"){let d=t(s);d.style.textDecoration="underline",o.appendChild(d)}else if(tI(s)&&typeof s.color=="string"){let d=t(s);d.style.color=s.color,o.appendChild(d)}else{let d=t(s);o.appendChild(d)}}return o};return t(e)}function tI(n){return n.nodeName==="FONT"&&"color"in n}function Su(n){n.htmlTextTracksParsers.srt=bu,n.htmlTextDisplayer=tn}var nI=/(\d+) (\d+)/;function Tu(n){let e=n.getAttribute("ttp:frameRate"),t=n.getAttribute("ttp:subFramRate"),r=n.getAttribute("ttp:tickRate"),i=n.getAttribute("ttp:frameRateMultiplier"),o=n.getAttribute("xml:space"),a=n.getAttribute("ttp:cellResolution"),s={columns:32,rows:15};if(a!==null){let I=nI.exec(a);if(I===null||I.length<3)m.warn("TTML Parser: Invalid cellResolution");else{let h=parseInt(I[1],10),b=parseInt(I[2],10);isNaN(h)||isNaN(b)?m.warn("TTML Parser: Invalid cellResolution"):s={columns:h,rows:b}}}if(w(o)&&o!=="default"&&o!=="preserve")throw new Error("Invalid spacing style");let d=Number(e);(isNaN(d)||d<=0)&&(d=30);let u=Number(t);(isNaN(u)||u<=0)&&(u=1);let c=Number(r);(isNaN(c)||c<=0)&&(c=void 0);let l=d,f=u!=null?u:1,g=o!=null?o:"default",p=c!=null?c:d*u;if(i!==null){let I=/^(\d+) (\d+)$/g.exec(i);if(I!==null){let h=Number(I[1]),b=Number(I[2]),T=h/b;l=d*T}}return{cellResolution:s,tickRate:p,frameRate:l,subFrameRate:f,spaceStyle:g}}function Pn(n,e,t,r){let i={},o=n.slice();for(let a=0;a<=e.length-1;a++){let s=e[a];if(s!==void 0){let d,u;if(s.nodeType===Node.ELEMENT_NODE){let c=s;for(let l=0;l<=c.attributes.length-1;l++){let f=c.attributes[l],g=f.name;if(g==="style")d=f.value;else if(g==="region")u=f.value;else{let p=g.substring(4);if(Q(o,p)&&(i[p]=f.value,o.splice(l,1),o.length===0))return i}}}if(w(d)){let c=X(t,l=>l.id===d);if(c!==void 0)for(let l=0;l<=o.length-1;l++){let f=o[l];if(!w(i[f])&&w(c.style[f])){if(i[f]=c.style[f],o.splice(l,1),o.length===0)return i;l--}}}if(w(u)){let c=X(r,l=>l.id===u);if(c!==void 0)for(let l=0;l<=o.length-1;l++){let f=o[l];if(!w(i[f])&&w(c.style[f])){if(i[f]=c.style[f],o.splice(l,1),o.length===0)return i;l--}}}}}return i}function _u(n){if(n.nodeType!==Node.ELEMENT_NODE)return{};let e=n,t={};for(let r=0;r<=e.attributes.length-1;r++){let i=e.attributes[r];if(Je(i.name,"tts")){let o=i.name.substring(4);t[o]=i.value}}return t}function Eu(n){let e=[];function t(r,i){e.push(i);for(let o=0;o<r.extendsStyles.length;o++){let a=r.extendsStyles[o],s=ye(n,d=>d.id===a);if(s<0)m.warn("TTML Parser: unknown style inheritance: "+a);else{let d=n[s];Q(e,s)?m.warn("TTML Parser: infinite style inheritance loop avoided"):t(d,s),r.style=j({},d.style,r.style)}}r.extendsStyles.length=0}for(let r=0;r<n.length;r++)t(n[r],r),e.length=0}function jf(n,e){if(!(n.parentNode instanceof Element))return[];function t(r){let i=[];r.tagName.toLowerCase()===e.toLowerCase()&&i.push(r);let o=r.parentNode;return o instanceof Element&&i.push(...t(o)),i}return t(n.parentNode)}function pa(n){let e=jf(n,"div");if(e.length===0){let t=jf(n,"tt:div");t.length>0&&(e=t)}return e}function Yf(n){let e=n.getElementsByTagName("body");if(e.length>0)return e[0];let t=n.getElementsByTagName("tt:body");return t.length>0?t[0]:null}function $f(n){let e=n.getElementsByTagName("style");if(e.length>0)return e;let t=n.getElementsByTagName("tt:style");return t.length>0?t:e}function Qf(n){let e=n.getElementsByTagName("region");if(e.length>0)return e;let t=n.getElementsByTagName("tt:region");return t.length>0?t:e}function Xf(n){let e=n.getElementsByTagName("p");if(e.length>0)return e;let t=n.getElementsByTagName("tt:p");return t.length>0?t:e}function ga(n){return n.nodeName==="br"||n.nodeName==="tt:br"}function ha(n){return n.nodeName==="span"||n.nodeName==="tt:span"}var Zf=["align","backgroundColor","color","direction","display","displayAlign","extent","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","opacity","origin","overflow","padding","textAlign","textDecoration","textOutline","unicodeBidi","visibility","wrapOption","writingMode"];function ji(n,e){let t=[],r=new DOMParser().parseFromString(n,"text/xml");if(r!=null){let o=r.getElementsByTagName("tt")[0];if(o===void 0&&(o=r.getElementsByTagNameNS("*","tt")[0],o===void 0))throw new Error("invalid XML");let a=Yf(o),s=$f(o),d=Qf(o),u=Xf(o),c=Tu(o),l=[];for(let h=0;h<=s.length-1;h++){let b=s[h];if(b instanceof Element){let T=b.getAttribute("xml:id");if(T!==null){let v=b.getAttribute("style"),E=v===null?[]:v.split(" ");l.push({id:T,style:_u(b),extendsStyles:E})}}}Eu(l);let f=[];for(let h=0;h<=d.length-1;h++){let b=d[h];if(b instanceof Element){let T=b.getAttribute("xml:id");if(T!==null){let v=_u(b),E=b.getAttribute("style");if(w(E)){let R=X(l,k=>k.id===E);R!==void 0&&(v=j({},R.style,v))}f.push({id:T,style:v,extendsStyles:[]})}}}let g=Pn(Zf,a!==null?[a]:[],l,f),I=(a!==null?a.getAttribute("xml:space"):void 0)==="default"||c.spaceStyle==="default";for(let h=0;h<u.length;h++){let b=u[h];if(b instanceof Element){let T=pa(b),v=j({},g,Pn(Zf,[b,...T],l,f)),E=b.getAttribute("xml:space"),R=w(E)?E==="default":I,k={paragraph:b,timeOffset:e,idStyles:l,regionStyles:f,body:a,paragraphStyle:v,ttParams:c,shouldTrimWhiteSpace:R};k!==null&&t.push(k)}}}return t}function Jf(n){return n.extent===void 0&&n.origin===void 0&&n.displayAlign===void 0&&n.display===void 0&&n.textAlign===void 0&&n.fontSize===void 0}function em(n){n.extent="70% 20%",n.fontSize="1c",n.origin="15% 80%",n.displayAlign="before",n.textAlign="center"}var vu=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,Ru=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/,ku=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/,Cu=/^(\d*\.?\d*)f$/,Pu=/^(\d*\.?\d*)t$/,Mu=/^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/,Au=/^(\d{1,2}|100)% (\d{1,2}|100)%$/,Ge=/^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/,tm=/^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/,nm=/^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/,rm=/^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/,im=/^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;function rI(n,e){if(vu.test(n))return aI(e,n);if(Ru.test(n))return xu(Ru,n);if(ku.test(n))return xu(ku,n);if(Cu.test(n))return iI(e,n);if(Pu.test(n))return oI(e,n);if(Mu.test(n))return xu(Mu,n)}function iI(n,e){let t=Cu.exec(e);return Number(t[1])/n.frameRate}function oI(n,e){let t=Pu.exec(e);return Number(t[1])/n.tickRate}function aI(n,e){let t=vu.exec(e),r=Number(t[1]),i=Number(t[2]),o=Number(t[3]),a=Number(t[4]),s=Number(t[5]);return isNaN(s)&&(s=0),a+=s/n.subFrameRate,o+=a/n.frameRate,o+i*60+r*3600}function xu(n,e){let t=n.exec(e);if(t===null||t[0]==="")return null;let r=Number(t[1]);isNaN(r)&&(r=0);let i=Number(t[2]);isNaN(i)&&(i=0);let o=Number(t[3]);isNaN(o)&&(o=0);let a=Number(t[4]);return isNaN(a)&&(a=0),a/1e3+o+i*60+r*3600}var ya=rI;function Yi(n,e){let t=n.getAttribute("begin"),r=n.getAttribute("dur"),i=n.getAttribute("end"),o=w(t)?ya(t,e):null,a=w(r)?ya(r,e):null,s=w(i)?ya(i,e):null;if(_(o)||_(s)&&_(a))throw new Error("Invalid text cue");let d=_(s)?o+a:s;return{start:o,end:d}}var wu;function Ce(n,e){wu===void 0&&(wu=n.classList!==void 0&&typeof n.classList.add=="function"),wu?n.classList.add(e):(" "+n.className+" ").indexOf(" "+e+" ")<0&&(n.className+=" "+e)}function Ou(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.width=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-width",i[1])):m.warn("TTML Parser: unhandled extent unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.height=o[1]+o[2]:o[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-height",o[1])):m.warn("TTML Parser: unhandled extent unit:",o[2]))}function Du(n,e){let r=e.trim().split(" ");if(r.length===0)return;let i=Ge.exec(r[0]);if(i!==null)if(i[2]==="px"||i[2]==="em")n.style.fontSize=i[1]+i[2];else if(i[2]==="c")n.style.position="relative",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size",i[1]);else if(i[2]==="%"){let o=Number(i[1]);isNaN(o)?m.warn('TTML Parser: could not parse fontSize value "'+i[1]+'" into a number'):(n.style.position="relative",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size",String(o/100)))}else m.warn("TTML Parser: unhandled fontSize unit:",i[2])}function Lu(n,e){let t=e.trim(),r=t.split(" ");if(t==="auto")return;let i=Ge.exec(r[0]);i!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.lineHeight=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-line-height",i[1])):m.warn("TTML Parser: unhandled lineHeight unit:",i[2]))}function Nu(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.left=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-left",i[1])):m.warn("TTML Parser: unhandled origin unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.top=o[1]+o[2]:o[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-top",o[1])):m.warn("TTML Parser: unhandled origin unit:",o[2]))}function Uu(n,e){let r=e.trim().split(" ");if(r.length<1)return;let i=Ge.exec(r[0]);if(i===null)return;if(i[2]==="px"||i[2]==="%"||i[2]==="em"){let d=i[1]+i[2];r.length===1?n.style.padding=d:r.length===2?(n.style.paddingTop=d,n.style.paddingBottom=d):n.style.paddingTop=d}else i[2]==="c"?(Ce(n,"proportional-style"),r.length===1?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1]),n.setAttribute("data-proportional-padding-left",i[1]),n.setAttribute("data-proportional-padding-right",i[1])):r.length===2?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1])):n.setAttribute("data-proportional-padding-top",i[1])):m.warn("TTML Parser: unhandled padding unit:",i[2]);if(r.length===1)return;let o=Ge.exec(r[1]);if(o===null)return;if(o[2]==="px"||o[2]==="%"||o[2]==="em"){let d=o[1]+o[2];r.length<4&&(n.style.paddingLeft=d),n.style.paddingRight=d}else o[2]==="c"?(Ce(n,"proportional-style"),r.length<4&&n.setAttribute("data-proportional-padding-left",o[1]),n.setAttribute("data-proportional-padding-right",o[1])):m.warn("TTML Parser: unhandled padding unit:",o[2]);if(r.length===2)return;let a=Ge.exec(r[2]);if(a===null)return;if(a[2]==="px"||a[2]==="%"||a[2]==="em"){let d=a[1]+a[2];n.style.paddingBottom=d}else a[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-padding-bottom",a[1])):m.warn("TTML Parser: unhandled padding unit:",a[2]);if(r.length===3)return;let s=Ge.exec(r[3]);if(s!==null)if(s[2]==="px"||s[2]==="%"||s[2]==="em"){let d=s[1]+s[2];n.style.paddingLeft=d}else s[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-padding-left",s[1])):m.warn("TTML Parser: unhandled padding unit:",s[2])}function er(n,e){let t=e;return w(e)&&e.trim().endsWith("%")&&(t=e.trim().slice(0,-1),t=(parseInt(t,10)/100).toString()+"em"),`-1px -1px ${t} ${n},1px -1px ${t} ${n},-1px 1px ${t} ${n},1px 1px ${t} ${n}`}function nn(n){let e;return e=tm.exec(n),_(e)?(e=nm.exec(n),_(e)?(e=rm.exec(n),_(e)?(e=im.exec(n),_(e)?n:"rgba("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+","+String(+e[4]/255)+")"):"rgb("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+")"):"rgba("+String(parseInt(e[1]+e[1],16))+","+String(parseInt(e[2]+e[2],16))+","+String(parseInt(e[3]+e[3],16))+","+String(parseInt(e[4]+e[4],16)/255)+")"):"rgba("+String(parseInt(e[1],16))+","+String(parseInt(e[2],16))+","+String(parseInt(e[3],16))+","+String(parseInt(e[4],16)/255)+")"}var sI=["color","direction","display","fontFamily","fontSize","fontStyle","fontWeight","textDecoration","textOutline","unicodeBidi","visibility","wrapOption"];function dI(n,e,t){let r=e.color;w(r)&&(n.style.color=nn(r));let i=e.backgroundColor;w(i)&&(n.style.backgroundColor=nn(i));let o=e.textOutline;if(w(o)){let h=o.trim().replace(/\s+/g," ").split(" "),b=h.length;if(b===3){let T=nn(h[0]),v=h[1];n.style.textShadow=er(T,v)}else if(w(r)&&b===1){let T=h[0];n.style.textShadow=er(r,T)}else if(b===2){let T=/^[#A-Z]/i.test(h[0]),v=/^[0-9]/.test(h[0]);if(T!==v){if(T){let E=nn(h[0]),R=h[1];n.style.textShadow=er(E,R)}else if(w(r)){let E=h[0];n.style.textShadow=er(r,E)}}}}let a=e.textDecoration;if(w(a))switch(a){case"noUnderline":case"noLineThrough":case"noOverline":n.style.textDecoration="none";break;case"lineThrough":n.style.textDecoration="line-through";break;default:n.style.textDecoration=a;break}let s=e.fontFamily;if(w(s))switch(s){case"proportionalSansSerif":n.style.fontFamily="Arial, Helvetica, Liberation Sans, sans-serif";break;case"monospaceSansSerif":case"sansSerif":n.style.fontFamily="sans-serif";break;case"monospaceSerif":case"default":n.style.fontFamily="Courier New, Liberation Mono, monospace";break;case"proportionalSerif":n.style.fontFamily="serif";break;default:n.style.fontFamily=s}let d=e.fontStyle;w(d)&&(n.style.fontStyle=d);let u=e.fontWeight;w(u)&&(n.style.fontWeight=u);let c=e.fontSize;w(c)?Du(n,c):(Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1"));let l=e.direction;w(l)&&(n.style.direction=l);let f=e.unicodeBidi;if(w(f))switch(f){case"bidiOverride":n.style.unicodeBidi="bidi-override";break;case"embed":n.style.unicodeBidi="embed";break;default:n.style.unicodeBidi="normal"}let g=e.visibility;w(g)&&(n.style.visibility=g),e.display==="none"&&(n.style.display="none"),e.wrapOption==="noWrap"?t?n.style.whiteSpace="nowrap":n.style.whiteSpace="pre":t?n.style.whiteSpace="normal":n.style.whiteSpace="pre-wrap"}function uI(n,e){n.style.color="white",n.style.position="absolute";let t=e.extent;w(t)&&Ou(n,t);let r=e.writingMode;w(r);let i=e.overflow;n.style.overflow=w(i)?i:"hidden";let o=e.padding;w(o)&&Uu(n,o);let a=e.origin;w(a)&&Nu(n,a);let s=e.displayAlign;if(w(s))switch(n.style.display="flex",n.style.flexDirection="column",s){case"before":n.style.justifyContent="flex-start";break;case"center":n.style.justifyContent="center";break;case"after":n.style.justifyContent="flex-end";break}let d=e.opacity;w(d)&&(n.style.opacity=d);let u=e.visibility;w(u)&&(n.style.visibility=u),e.display==="none"&&(n.style.display="none")}function lI(n,e){n.style.margin="0px",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1");let t=e.backgroundColor;w(t)&&(n.style.backgroundColor=nn(t));let r=e.lineHeight;w(r)&&Lu(n,r);let i=e.textAlign;if(w(i))switch(i){case"center":n.style.textAlign="center";break;case"left":case"start":n.style.textAlign="left";break;case"right":case"end":n.style.textAlign="right";break}}function cI(n,e,t){let r=document.createElement("span"),i=n.textContent===null?"":n.textContent;if(t){let a=i.trim();a=a.replace(/\s+/g," "),i=a}let o=document.createTextNode(i);return r.appendChild(o),r.className="rxp-texttrack-span",dI(r,e,t),r}function fI(n,e,t,r,i){function o(a,s,d,u){let c=a.childNodes,l=[];for(let f=0;f<c.length;f++){let g=c[f];if(g.nodeName==="#text"){let{backgroundColor:p}=Pn(["backgroundColor"],d,t,e);w(p)?s.backgroundColor=p:delete s.backgroundColor;let I=cI(g,s,u);l.push(I)}else if(ga(g)){let p=document.createElement("BR");l.push(p)}else if(ha(g)&&g.nodeType===Node.ELEMENT_NODE&&g.childNodes.length>0){let p=g.getAttribute("xml:space"),I=w(p)?p==="default":u,h=j({},s,Pn(sI,[g],t,e));l.push(...o(g,h,[g,...d],I))}}return l}return o(n,j({},r),[],i)}function Bu(n,e,t,r,i,{cellResolution:o,shouldTrimWhiteSpace:a}){let s=pa(n),d=document.createElement("DIV");if(d.className="rxp-texttrack-region",d.setAttribute("data-resolution-columns",String(o.columns)),d.setAttribute("data-resolution-rows",String(o.rows)),uI(d,i),e!==null){let{bodyBackgroundColor:l}=Pn(["backgroundColor"],[...s,e],r,t);w(l)&&(d.style.backgroundColor=nn(l))}let u=document.createElement("p");u.className="rxp-texttrack-p",lI(u,i);let c=fI(n,t,r,i,a);for(let l=0;l<c.length;l++)u.appendChild(c[l]);return d.appendChild(u),d}function Fu(n){let{paragraph:e,ttParams:t,body:r,regionStyles:i,idStyles:o,paragraphStyle:a,timeOffset:s,shouldTrimWhiteSpace:d}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{cellResolution:u}=t,{start:c,end:l}=Yi(e,t),f=Bu(e,r,i,o,a,{cellResolution:u,shouldTrimWhiteSpace:d});return{start:c+s,end:l+s,element:f}}function Ku(n,e){let t=ji(n,e),r=[];for(let i=0;i<t.length;i++){let{paragraphStyle:o}=t[i];Jf(o)&&em(o);let a=Fu(t[i]);a!==null&&r.push(a)}return r}var om=Ku;function Vu(n){n.htmlTextTracksParsers.ttml=om,n.htmlTextDisplayer=tn}function Ia(n){let e=0;for(;e<n.length;){if(n[e]==="")return e+1;e++}return e}function zu(n,e){return typeof n[e]=="string"&&/^STYLE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function mI(n,e){return typeof n[e]=="string"&&/^NOTE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function pI(n,e){return typeof n[e]=="string"&&/^REGION( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function am(n,e){let t=n[e];if(t===void 0||t===""||zu(n,e)||pI(n,e)||mI(n,e))return!1;if(t.indexOf("-->")>=0)return!0;let r=n[e+1];return r!==void 0&&r.indexOf("-->")>=0}function sm(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function $i(n,e){let t=[];for(let r=e;r<n.length;r++)if(am(n,r)){let i=sm(n,r);t.push(n.slice(r,i)),r=i}else if(w(n[r]))for(;w(n[r]);)r++;return t}function Hu(n,e){let t=[];for(let r=e;r<n.length;r++)if(zu(n,r)){let i=r;for(r++;w(n[r]);)r++;let o=n.slice(i,r);t.push(o)}else if(w(n[r]))for(;w(n[r]);)r++;return t}function ba(n){let e=n.split(":").reverse();if(w(e[2])||w(e[1])){let t=w(e[2])?parseInt(e[2],10):0,r=parseInt(e[1],10),i=parseFloat(e[0].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function gI(n){return n.split(/ |\t/).reduce((t,r)=>{let i=r.split(":");return i.length===2&&(t[i[0]]=i[1]),t},{})}function hI(n){let t=/^([\d:.]+)[ |\t]+-->[ |\t]+([\d:.]+)[ |\t]*(.*)$/.exec(n);if(t===null)return null;let r=ba(t[1]),i=ba(t[2]);if(r===void 0||i===void 0)return null;let o=gI(t[3]);return{start:r,end:i,settings:o}}function Qi(n,e){let t=/-->/,r,i,o;if(t.test(n[0]))r=n[0],i=n.slice(1,n.length);else{if(!t.test(n[1]))return null;o=n[0],r=n[1],i=n.slice(2,n.length)}let a=hI(r);if(a===null)return null;let{start:s,end:d,settings:u}=a;return{start:s+e,end:d+e,settings:u,payload:i,header:o}}var Wu={white:"#ffffff",lime:"#00ff00",cyan:"#00ffff",red:"#ff0000",yellow:"#ffff00",magenta:"#ff00ff",blue:"#0000ff",black:"#000000"};function Gu(){return Object.keys(Wu).reduce((n,e)=>(n[e]=`color: ${Wu[e]};`,n[`bg_${e}`]=`background-color: ${Wu[e]};`,n),{})}function qu(n){let e=Gu(),t="";return n.forEach(r=>{if(r.length>=2)for(let i=1;i<r.length;i++){let o=r[i];if(Array.isArray(/::cue {/.exec(o)))for(o=r[++i];w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)t+=o,o=r[++i];else{let a=[],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);for(;w(o)&&Array.isArray(s);)a.push(s[1]),o=r[++i],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);let d="";for(;w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)d+=o,o=r[++i];a.forEach(u=>{e[u]===void 0?e[u]=d:e[u]+=d})}}}),{classes:e,global:t}}function Xi(n,e){let t=["u","i","b"],r=["u","i","b","c","#text"],i=n.nodeName.toLowerCase().split(".")[0],o;if(Q(r,i))if(i==="#text"){let a=n.wholeText.split(`
8
+ `);o=document.createElement("span");for(let s=0;s<a.length;s++)if(s>0&&o.appendChild(document.createElement("br")),a[s].length>0){let d=document.createTextNode(a[s]);o.appendChild(d)}}else{let a=n.nodeName.toLowerCase().split("."),s=[];if(a.forEach(d=>{w(e[d])&&s.push(e[d])}),s.length!==0){let d=document.createAttribute("style");s.forEach(c=>{d.value+=c});let u=Q(t,i)?i:"span";o=document.createElement(u),o.setAttributeNode(d)}else{let d=Q(t,i)?i:"span";o=document.createElement(d)}for(let d=0;d<n.childNodes.length;d++){let u=Xi(n.childNodes[d],e);o.appendChild(u)}}else{o=document.createElement("span");for(let a=0;a<n.childNodes.length;a++){let s=Xi(n.childNodes[a],e);o.appendChild(s)}}return o}function ju(n,e){let t=n.replace(/<[0-9]{2}:[0-9]{2}.[0-9]{3}>/,"").replace(/<([u,i,b,c])(\..*?)?(?: .*?)?>(.*?)<\/\1>/g,"<$1$2>$3</$1$2>"),i=new DOMParser().parseFromString(t,"text/html").body.childNodes,o=[];for(let a=0;a<i.length;a++)o.push(Xi(i[a],e));return o}function Yu(n){let e=document.createAttribute("style");return e.value=yI(n),e}var yI=n=>{if(!(n!==void 0&&wn(n).length!==0))return"text-align:center";let t=II(n),r=TI(n);return`position: absolute;margin: 0;transform: translate(${t.offset}%,${r.offset}%);width: ${vI(n.size)}%;left: ${t.position}%;top: ${r.position!==null?`${r.position}%`:"auto"};text-align: ${$u(n.align)};`};var II=n=>({position:bI(n),offset:SI(n)}),bI=n=>{let e=Qu(n.position);if(e!==null)return e;let t=$u(n.align);return{left:0,center:50,right:100}[t]},SI=n=>{let e=a=>{let d=/,(line-left|line-right|center)/.exec(a);return!Array.isArray(d)||d.length<2?null:d[1]},t={"line-left":0,center:-50,"line-right":-100},r=n.position!==void 0?e(n.position):null;if(r!==null)return t[r];let i={left:0,center:-50,right:-100},o=n.align!==void 0?$u(n.align):"center";return i[o]},TI=n=>({position:_I(n.line),offset:EI(n.line)}),_I=n=>Qu(n),EI=n=>{let e=i=>{let a=/,(start|center|end)/.exec(i);return!Array.isArray(a)||a.length<2?null:a[1]},t={start:0,center:-50,end:-100};if(n===void 0)return t.start;let r=e(n);return r!==null?t[r]:t.start},$u=n=>{switch(n){case"left":case"start":return"left";case"right":case"end":return"right";default:return"center"}},vI=n=>RI(n,100),RI=(n,e)=>{let t=Qu(n);return t!==null?t:e},Qu=n=>{if(n===void 0)return null;let t=/^([\d.]+)%/.exec(n);return!Array.isArray(t)||t.length<2?null:parseInt(t[1],10)};function Xu(n,e){let{start:t,end:r,settings:i,header:o,payload:a}=n,s=document.createElement("div"),d=document.createAttribute("style");d.value="width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;",s.setAttributeNode(d);let u=document.createElement("p"),c=Yu(i);u.setAttributeNode(c);let l=document.createElement("span"),f=document.createAttribute("style");f.value="background-color:rgba(0,0,0,0.8);color:white;",l.setAttributeNode(f);let{global:g,classes:p}=e,I=w(o)?p[o]:void 0,h=[g,I].filter(b=>b!==void 0).join("");return f.value+=h,l.setAttributeNode(f),ju(a.join(`
9
+ `),p).forEach(b=>{l.appendChild(b)}),s.appendChild(u),u.appendChild(l),{start:t,end:r,element:s}}function Zu(n,e){let t=/\r\n|\n|\r/g,r=n.split(t),i=[];if(/^WEBVTT( |\t|\n|\r|$)/.exec(r[0])===null)throw new Error("Can't parse WebVTT: Invalid File.");let o=Ia(r),a=Hu(r,o),s=$i(r,o),d=qu(a);for(let u=0;u<s.length;u++){let c=Qi(s[u],e);if(c!==null){let l=Xu(c,d);i.push(l)}}return i}var dm=Zu;function Ju(n){n.htmlTextTracksParsers.vtt=dm,n.htmlTextDisplayer=tn}function el(n){var i;let e,t,r="subtitles";if(zt){let o=n.textTracks.length;e=o>0?n.textTracks[o-1]:n.addTextTrack(r),e.mode=(i=e.SHOWING)!=null?i:"showing"}else t=document.createElement("track"),n.appendChild(t),e=t.track,t.kind=r,e.mode="showing";return{track:e,trackElement:t}}function kI(n,e){let{activeCues:t}=n;if(t===null)return!1;for(let r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function tl(n,e){if(dn&&kI(n,e)){let t=n.mode;n.mode="hidden";try{n.removeCue(e)}catch(r){m.warn("Compat: Could not remove cue from text track.")}n.mode=t;return}try{n.removeCue(e)}catch(t){m.warn("Compat: Could not remove cue from text track.")}}function nl(n,e,t,r){m.debug("NTSB: Finding parser for native text tracks:",n);let i=me.nativeTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("NTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("NTSB: Parsed successfully!",o.length),o}var Zi=class{constructor(e){m.debug("NTD: Creating NativeTextDisplayer");let{track:t,trackElement:r}=el(e);this._buffered=new Cn,this._videoElement=e,this._track=t,this._trackElement=r}pushTextData(e){var I,h;if(m.debug("NTD: Appending new native text tracks"),e.chunk===null)return Pe(this._buffered);let{timestampOffset:t,appendWindow:r,chunk:i}=e,{start:o,end:a,data:s,type:d,language:u}=i,c=(I=r[0])!=null?I:0,l=(h=r[1])!=null?h:1/0,f=nl(d,s,t,u);if(c!==0&&l!==1/0){let b=0;for(;b<f.length&&f[b].endTime<=c;)b++;for(f.splice(0,b),b=0;b<f.length&&f[b].startTime<c;)f[b].startTime=c,b++;for(b=f.length-1;b>=0&&f[b].startTime>=l;)b--;for(f.splice(b,f.length),b=f.length-1;b>=0&&f[b].endTime>l;)f[b].endTime=l,b--}let g;if(o!==void 0)g=Math.max(c,o);else{if(f.length<=0)return m.warn("NTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("NTD: No start time given. Guessing from cues."),g=f[0].startTime}let p;if(a!==void 0)p=Math.min(l,a);else{if(f.length<=0)return m.warn("NTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("NTD: No end time given. Guessing from cues."),p=f[f.length-1].endTime}if(p<=g)return m.warn("NTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered);if(f.length>0){let b=f[0],T=this._track.cues;T!==null&&T.length>0&&b.startTime<T[T.length-1].startTime&&this._removeData(b.startTime,1/0);for(let v of f)this._track.addCue(v)}return this._buffered.insert(g,p),Pe(this._buffered)}removeBuffer(e,t){return this._removeData(e,t),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("NTD: Aborting NativeTextDisplayer"),this._removeData(0,1/0);let{_trackElement:e,_videoElement:t}=this;if(e!==void 0&&t.hasChildNodes())try{t.removeChild(e)}catch(i){m.warn("NTD: Can't remove track element from the video")}let r=this._track.mode;this._track.mode="disabled",this._track.mode=r,this._trackElement!==void 0&&(this._trackElement.innerHTML="")}stop(){m.debug("NTD: Aborting NativeTextDisplayer"),this._removeData(0,1/0);let{_trackElement:e,_videoElement:t}=this;if(e!==void 0&&t.hasChildNodes())try{t.removeChild(e)}catch(r){m.warn("NTD: Can't remove track element from the video")}this._track.mode="disabled",this._trackElement!==void 0&&(this._trackElement.innerHTML="")}_removeData(e,t){m.debug("NTD: Removing native text track data",e,t);let r=this._track,i=r.cues;if(i!==null)for(let o=i.length-1;o>=0;o--){let a=i[o],{startTime:s,endTime:d}=a;s>=e&&s<=t&&d<=t&&tl(r,a)}this._buffered.remove(e,t)}};y.CURRENT_ENV===y.DEV&&(CI=function(e){function t(r){}});var CI;var rn=Zi;function Lt(n,e,t){if(n>=e)return m.warn(`Compat: Invalid cue times: ${n} - ${e}`),null;if(_(ee.VTTCue)){if(_(ee.TextTrackCue))throw new Error("VTT cues not supported in your target");return new TextTrackCue(n,e,t)}else return new VTTCue(n,e,t)}var PI=/&#([0-9]+);/g,MI=/<br>/gi,AI=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,xI=/\s*<p (?:class=([^>]+))?>(.*)/i,wI=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function OI(n){let e=[];for(let t=0;t<n.length;t++){let{start:r,end:i,text:o}=n[t];if(w(o)&&!_(i)){let a=Lt(r,i,o);a!==null&&e.push(a)}}return e}function DI(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;Array.isArray(r);){let i=r[1],o=LI(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function LI(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function NI(n){return n.replace(MI,`
10
+ `).replace(PI,(e,t)=>String.fromCharCode(Number(t)))}function UI(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=AI.exec(n),s=a!==null?a[1]:"",d,u;i.exec(n);let c=DI(s),l;if(w(t)&&(l=c[t],l===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let g=n.slice(d.index,u.index),p=wI.exec(g);if(p===null)throw new Error("parse error (sync time attribute)");let I=+p[1];if(isNaN(I))throw new Error("parse error (sync time attribute NaN)");f(g.split(`
11
+ `),I/1e3)}return OI(o);function f(g,p){let I=g.length,h;for(;--I>=0;){if(h=xI.exec(g[I]),h===null)continue;let[,b,T]=h;l===b&&(T==="&nbsp;"?o[o.length-1].end=p:o.push({text:NI(T),start:p+e}))}}}var um=UI;function rl(n){n.nativeTextTracksParsers.sami=um,n.nativeTextDisplayer=rn}function il(n,e){let t=n.split(/\r\n|\n|\r/),r=Gi(t),i=[];for(let o=0;o<r.length;o++){let a=qi(r[o],e);if(a!==null){let s=BI(a);s!==null&&i.push(s)}}return i}function BI(n){let{start:e,end:t,payload:r}=n,i=r.join(`
12
+ `);return Lt(e,t,i)}function ol(n){n.nativeTextTracksParsers.srt=il,n.nativeTextDisplayer=rn}function Ji(n){return typeof ee.VTTCue=="function"&&n instanceof ee.VTTCue}var FI={left:"start",center:"center",right:"end",start:"start",end:"end"},KI={left:"line-left",center:"center",right:"line-right"};function al(n){let{paragraph:e,timeOffset:t,paragraphStyle:r,ttParams:i,shouldTrimWhiteSpace:o}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{start:a,end:s}=Yi(e,i),d=VI(e,o),u=Lt(a+t,s+t,d);return u===null?null:(Ji(u)&&zI(u,r),u)}function VI(n,e){function t(r,i){let o=r.childNodes,a="";for(let s=0;s<o.length;s++){let d=o[s];if(d.nodeName==="#text"){let u=d.textContent;if(u===null&&(u=""),i){let l=u.trim();l=l.replace(/\s+/g," "),u=l}let c=u.replace(/&|\u0026/g,"&amp;").replace(/<|\u003C/g,"&lt;").replace(/>|\u2265/g,"&gt;").replace(/\u200E/g,"&lrm;").replace(/\u200F/g,"&rlm;").replace(/\u00A0/g,"&nbsp;");a+=c}else if(ga(d))a+=`
13
+ `;else if(ha(d)&&d.nodeType===Node.ELEMENT_NODE&&d.childNodes.length>0){let u=d.getAttribute("xml:space"),c=w(u)?u==="default":i;a+=t(d,c)}}return a}return t(n,e)}function zI(n,e){let t=e.extent;if(w(t)){let a=Au.exec(t);_(a)||(n.size=Number(a[1]))}switch(e.writingMode){case"tb":case"tblr":n.vertical="lr";break;case"tbrl":n.vertical="rl";break;default:break}let i=e.origin;if(w(i)){let a=Au.exec(i);_(a)}let o=e.align;if(w(o)){n.align=o,o==="center"&&(n.align!=="center"&&(n.align="middle"),n.position="auto");let a=KI[o];n.positionAlign=a===void 0?"":a;let s=FI[o];n.lineAlign=s===void 0?"":s}}function sl(n,e){let t=ji(n,e),r=[];for(let i=0;i<t.length;i++){let o=t[i],a=al(o);a!==null&&r.push(a)}return r}var lm=sl;function dl(n){n.nativeTextTracksParsers.ttml=lm,n.nativeTextDisplayer=rn}function ul(n,e){if(w(n.vertical)&&(n.vertical==="rl"||n.vertical==="lr")&&(e.vertical=n.vertical),w(n.line)){let r=/^(\d+(\.\d+)?)%(,([a-z]+))?/.exec(n.line);if(Array.isArray(r))e.line=Number(r[1]),e.snapToLines=!1,Q(["start","center","end"],r[4])&&(e.lineAlign=r[4]);else{let o=/^(-?\d+)(,([a-z]+))?/.exec(n.line);Array.isArray(o)&&(e.line=Number(o[1]),e.snapToLines=!0,Q(["start","center","end"],o[3])&&(e.lineAlign=o[3]))}}if(w(n.position)){let r=/^([\d\.]+)%(?:,(line-left|line-right|center))?$/.exec(n.position);if(Array.isArray(r)&&r.length>=2){let i=parseInt(r[1],10);isNaN(i)||(e.position=i,r[2]!==void 0&&(e.positionAlign=r[2]))}}w(n.size)&&(e.size=n.size),typeof n.align=="string"&&Q(["start","center","end","left"],n.align)&&(e.align=n.align)}function ll(n){let{start:e,end:t,payload:r}=n,i=r.join(`
14
+ `);return Lt(e,t,i)}function cl(n,e){let t=n.split(/\r\n|\n|\r/);if(!/^WEBVTT($| |\t)/.test(t[0]))throw new Error("Can't parse WebVTT: Invalid file.");let r=Ia(t),i=$i(t,r),o=[];for(let a=0;a<i.length;a++){let s=Qi(i[a],e);if(s!==null){let d=ll(s);d!==null&&(Ji(d)&&ul(s.settings,d),o.push(d))}}return o}var cm=cl;function fl(n){n.nativeTextTracksParsers.vtt=cm,n.nativeTextDisplayer=rn}function tr(n){let e=[];n.periods.forEach(t=>{let r=t.id;if(Q(e,r)){m.warn("Two periods with the same ID found. Updating.");let a=r+"-dup";t.id=a,tr(n),e.push(a)}else e.push(r);let{adaptations:i}=t,o=[];Object.keys(i).forEach(a=>{let s=i[a];s!==void 0&&s.forEach(d=>{let u=d.id;if(Q(o,u)){m.warn("Two adaptations with the same ID found. Updating.",u);let l=u+"-dup";d.id=l,tr(n),o.push(l)}else o.push(u);let c=[];d.representations.forEach(l=>{let f=l.id;if(Q(c,f)){m.warn("Two representations with the same ID found. Updating.",f);let g=`${f}-dup`;l.id=g,tr(n),c.push(g)}else c.push(f)})})})})}function fm(n,e){let t;return e==="AACH"?t=5:t=w(n)?(parseInt(n.substring(0,2),16)&248)>>3:2,t===0?"mp4a.40.2":`mp4a.40.${t}`}function mm(n){let e=/00000001\d7([0-9a-fA-F]{6})/.exec(n);return e===null||!w(e[1])?"avc1.4D401E":"avc1."+e[1]}function ml(n){return n.reduce((e,t,r)=>{let i=t.getAttribute("d"),o=t.getAttribute("t"),a=t.getAttribute("r"),s=a!==null?+a-1:0,d=o!==null?+o:void 0,u=i!==null?+i:void 0;if(r===0)d=d===void 0||isNaN(d)?0:d;else{let c=e[r-1];if(d===void 0||isNaN(d)){if(c.duration===void 0||isNaN(c.duration))throw new Error("Smooth: Invalid CNodes. Missing timestamp.");d=c.start+c.duration*(c.repeatCount+1)}}if(u===void 0||isNaN(u)){let c=n[r+1];if(c!==void 0){let l=c.getAttribute("t"),f=w(l)?+l:null;if(f===null)throw new Error("Can't build index timeline from Smooth Manifest.");u=f-d}else return e}return e.push({duration:u,start:d,repeatCount:s}),e},[])}function HI(n){return[{systemId:"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",privateData:re([8,1,18,16],n)}]}function pl(n,e=HI){if(n.firstElementChild===null||n.firstElementChild.nodeName!=="ProtectionHeader")throw new Error("Protection should have ProtectionHeader child");let t=n.firstElementChild,r=ft(t.textContent===null?"":t.textContent),i=xr(r),o=qe(i),a=t.getAttribute("SystemID"),s=(a!==null?a:"").toLowerCase().replace(/\{|\}/g,"");return{keyId:o,keySystems:[{systemId:s,privateData:r}].concat(e(o))}}function pm(n,e,t){return n.replace(/\{bitrate\}/g,String(e)).replace(/{CustomAttributes}/g,t.length>0?t[0]:"")}function gm(n,e){return n.replace(/\{start time\}/g,String(e))}function WI(n,e,t){let r=e-n;return r>0?Math.floor(r/t):0}function GI(n,e,t){let r=n===void 0||n===0?1:n;return{up:e*r,to:(e+t)*r}}function qI(n,e){let t=n.repeatCount;if(n.duration!==void 0&&t<0){let r=e!==void 0?e.start:1/0;t=Math.ceil((r-n.start)/n.duration)-1}return t}var eo=class{constructor(e){let{isLive:t,segmentPrivateInfos:r,media:i,sharedSmoothTimeline:o}=e;if(this._sharedSmoothTimeline=o,this._initSegmentInfos={bitsPerSample:r.bitsPerSample,channels:r.channels,codecPrivateData:r.codecPrivateData,packetSize:r.packetSize,samplingRate:r.samplingRate,timescale:o.timescale,height:r.height,width:r.width,protection:r.protection},this._isLive=t,this._media=i,o.timeline.length!==0&&t){let{timeline:a,validityTime:s}=o,d=a[a.length-1],u=ke(d,null),c=s/1e3*o.timescale;this._scaledLiveGap=c-u}}getInitSegment(){return{id:"init",isInit:!0,privateInfos:{smoothInitSegment:this._initSegmentInfos},url:null,time:0,end:0,duration:0,timescale:1,complete:!0}}getSegments(e,t){this._refreshTimeline();let{timescale:r,timeline:i}=this._sharedSmoothTimeline,{up:o,to:a}=GI(r,e,t),s=this._media,d,u=[],c=i.length,l=this._scaledLiveGap===void 0?void 0:K()/1e3*r-this._scaledLiveGap;for(let f=0;f<c;f++){let g=i[f],{duration:p,start:I}=g,h=qI(g,i[f+1]),b=WI(I,o,p),T=I+b*p,v=p;for(;T<a&&b<=h&&(l===void 0||T+v<=l);){let E=T,R=d!==void 0?d+b:void 0,k={id:String(T),isInit:!1,time:E/r,end:(E+p)/r,duration:p/r,timescale:1,number:R,url:gm(s,E),complete:!0,privateInfos:{smoothMediaSegment:{time:E,duration:p}}};u.push(k),b++,T=I+b*p}if(T>=a)return u;d!==void 0&&(d+=h+1)}return u}shouldRefresh(e,t){if(this._refreshTimeline(),!this._isLive)return!1;let{timeline:r,timescale:i}=this._sharedSmoothTimeline,o=r[r.length-1];if(o===void 0)return!1;let a=o.repeatCount,s=o.start+(a+1)*o.duration;if(t*i<s)return!1;if(e*i>=s)return!0;let d=o.start+a*o.duration;return e*i>d}getFirstAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;return e.length===0?null:e[0].start/t}getLastAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;if(this._scaledLiveGap===void 0){let r=e[e.length-1];return ke(r,null)/t}for(let r=e.length-1;r>=0;r--){let i=e[r],o=K()/1e3*t,{start:a,duration:s,repeatCount:d}=i;for(let u=d;u>=0;u--){let c=a+s*(u+1);if(c<=o-this._scaledLiveGap)return c/t}}}getEnd(){if(!this._isLive)return this.getLastAvailablePosition()}awaitSegmentBetween(e,t){var i;if(te(e<=t),this.isStillAwaitingFutureSegments())return!1;let r=this.getLastAvailablePosition();return r!==void 0&&t<r?!1:t>((i=this.getFirstAvailablePosition())!=null?i:0)?void 0:!1}checkDiscontinuity(e){return this._refreshTimeline(),na(this._sharedSmoothTimeline,e,void 0)}isSegmentStillAvailable(e){if(e.isInit)return!0;this._refreshTimeline();let{timeline:t,timescale:r}=this._sharedSmoothTimeline;for(let i=0;i<t.length;i++){let o=t[i],a=o.start/r;if(a>e.time)return!1;if(a===e.time)return!0;if(o.repeatCount>=0&&o.duration!==void 0){let d=(a-o.start)/o.duration-1;return d%1===0&&d<=o.repeatCount}}return!1}canBeOutOfSyncError(e){return this._isLive?e instanceof rt&&(e.isHttpError(404)||e.isHttpError(412)):!1}_replace(e){this._initialScaledLastPosition=e._initialScaledLastPosition,this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.replace(e._sharedSmoothTimeline)}_update(e){this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.update(e._sharedSmoothTimeline)}isStillAwaitingFutureSegments(){return this._isLive}isInitialized(){return!0}initialize(){m.error("A `SmoothRepresentationIndex` does not need to be initialized")}addPredictedSegments(e,t){this._sharedSmoothTimeline.addPredictedSegments(e,t)}_refreshTimeline(){this._sharedSmoothTimeline.refresh()}};function gl(n,e,t,r){let i=n.length,o=n[i-1],a=t.timescale===e?{time:t.time,duration:t.duration}:{time:t.time/t.timescale*e,duration:t.duration/t.timescale*e};return r.time===a.time?!1:a.time>=ke(o,null)?(o.duration===a.duration?o.repeatCount++:n.push({duration:a.duration,start:a.time,repeatCount:0}),!0):!1}var to=class{constructor(e){let{timeline:t,timescale:r,timeShiftBufferDepth:i,manifestReceivedTime:o}=e;this.timeline=t,this.timescale=r;let a=o!=null?o:K();if(this.validityTime=a,this._timeShiftBufferDepth=i,t.length!==0){let s=t[t.length-1],d=ke(s,null);this._initialScaledLastPosition=d}}refresh(){if(this._initialScaledLastPosition===void 0)return;let e=this._timeShiftBufferDepth,r=(K()-this.validityTime)/1e3+this._initialScaledLastPosition/this.timescale;if(e!==void 0){let i=(r-e)*this.timescale;vi(this.timeline,i)}}replace(e){let t=this.timeline,r=e.timeline,i=this.timescale,o=e.timescale;if(this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime,t.length===0||r.length===0||i!==o)return;let a=t[t.length-1],s=r[r.length-1],d=ke(s,null);if(!(ke(a,null)<=d))for(let u=0;u<t.length;u++){let c=t[u],l=ke(c,null);if(l===d){this.timeline=this.timeline.concat(t.slice(u+1));return}if(l>d){if(c.duration!==s.duration)return;let f=d-c.start;if(f===0){m.warn("Smooth Parser: a discontinuity detected in the previous manifest has been resolved."),this.timeline=this.timeline.concat(t.slice(u));return}if(f<0||f%c.duration!==0)return;let g=f/c.duration-1,p=c.repeatCount-g;if(p<0)return;s.repeatCount+=p;let I=t.slice(u+1);this.timeline=this.timeline.concat(I);return}}}update(e){Ri(this.timeline,e.timeline),this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime}addPredictedSegments(e,t){var r;if(((r=t.privateInfos)==null?void 0:r.smoothMediaSegment)===void 0){m.warn("Smooth Parser: should only encounter SmoothRepresentationIndex");return}this.refresh();for(let i=0;i<e.length;i++)gl(this.timeline,this.timescale,e[i],t.privateInfos.smoothMediaSegment)}};function hl(n){return typeof n=="boolean"?n:typeof n=="string"?n.toUpperCase()==="TRUE":!1}function nr(n,e,t){let r=n.firstElementChild,i=t;for(;r!==null;)i=e(i,r.nodeName,r),r=r.nextElementSibling;return i}var jI={audio:"audio/mp4",video:"video/mp4",text:"application/ttml+xml"},no={AACL:"audio/mp4",AVC1:"video/mp4",H264:"video/mp4",TTML:"application/ttml+xml+mp4",DFXP:"application/ttml+xml+mp4"};function YI(n={}){let e=n.referenceDateTime===void 0?Date.UTC(1970,0,1,0,0,0,0)/1e3:n.referenceDateTime,t=n.minRepresentationBitrate===void 0?0:n.minRepresentationBitrate,{serverSyncInfos:r}=n,i=r!==void 0?r.serverTimestamp-r.clientTime:void 0;function o(d,u){let c=nr(d,(f,g,p)=>(g==="CustomAttributes"&&f.push(...nr(p,(I,h,b)=>{if(h==="Attribute"){let T=b.getAttribute("Name"),v=b.getAttribute("Value");T!==null&&v!==null&&I.push(T+"="+v)}return I},[])),f),[]);function l(f){let g=d.getAttribute(f);return g===null?void 0:g}switch(u){case"audio":{let f=l("AudioTag"),g=l("BitsPerSample"),p=l("Channels"),I=l("CodecPrivateData"),h=l("FourCC"),b=l("PacketSize"),T=l("SamplingRate"),v=l("Bitrate"),E=v===void 0?0:parseInt(v,10);if(E=isNaN(E)?0:E,h!==void 0&&no[h]===void 0||I===void 0)return m.warn("Smooth parser: Unsupported audio codec. Ignoring quality level."),null;let R=fm(I,h);return{audiotag:f!==void 0?parseInt(f,10):f,bitrate:E,bitsPerSample:g!==void 0?parseInt(g,10):g,channels:p!==void 0?parseInt(p,10):p,codecPrivateData:I,codecs:R,customAttributes:c,mimeType:h!==void 0?no[h]:h,packetSize:b!==void 0?parseInt(b,10):b,samplingRate:T!==void 0?parseInt(T,10):T}}case"video":{let f=l("CodecPrivateData"),g=l("FourCC"),p=l("MaxWidth"),I=l("MaxHeight"),h=l("Bitrate"),b=h===void 0?0:parseInt(h,10);if(b=isNaN(b)?0:b,g!==void 0&&no[g]===void 0||f===void 0)return m.warn("Smooth parser: Unsupported video codec. Ignoring quality level."),null;let T=mm(f);return{bitrate:b,customAttributes:c,mimeType:g!==void 0?no[g]:g,codecPrivateData:f,codecs:T,width:p!==void 0?parseInt(p,10):void 0,height:I!==void 0?parseInt(I,10):void 0}}case"text":{let f=l("CodecPrivateData"),g=l("FourCC"),p=l("Bitrate"),I=p===void 0?0:parseInt(p,10);return I=isNaN(I)?0:I,{bitrate:I,customAttributes:c,mimeType:g!==void 0?no[g]:g,codecPrivateData:f!=null?f:""}}default:return m.error("Smooth Parser: Unrecognized StreamIndex type: "+u),null}}function a(d){let{root:u,timescale:c,baseUrl:l,protections:f,timeShiftBufferDepth:g,manifestReceivedTime:p,isLive:I}=d,h=u.getAttribute("Timescale"),b=h===null?c:+h;isNaN(b)&&(b=c);let T=u.getAttribute("Type");if(T===null)throw new Error("StreamIndex without type.");Q($t,T)||m.warn("Smooth Parser: Unrecognized adaptation type:",T);let v=T,E=u.getAttribute("Subtype"),R=u.getAttribute("Language"),k=u.getAttribute("Url"),A=k===null?"":k;y.CURRENT_ENV===y.DEV&&te(A!=="");let{qualityLevels:M,cNodes:x}=nr(u,(P,D,F)=>{switch(D){case"QualityLevel":let V=o(F,v);if(V===null)return P;(v!=="video"||V.bitrate>t)&&P.qualityLevels.push(V);break;case"c":P.cNodes.push(F);break}return P},{qualityLevels:[],cNodes:[]}),L=new to({timeline:ml(x),timescale:b,timeShiftBufferDepth:g,manifestReceivedTime:p});te(M.length!==0,"Adaptation should have at least one playable representation.");let O=v+(w(R)?"_"+R:""),N=M.map(P=>{let D=pm(A,P.bitrate,P.customAttributes),F=w(P.mimeType)?P.mimeType:jI[v],V=P.codecs,$=O+"_"+(_(v)?"":v+"-")+(_(F)?"":F+"-")+(_(V)?"":V+"-")+String(P.bitrate),q=[],W;f.length>0&&(W=f[0],f.forEach(oe=>{let ue=oe.keyId;oe.keySystems.forEach(he=>{q.push({keyId:ue,systemId:he.systemId})})}));let z={bitsPerSample:P.bitsPerSample,channels:P.channels,codecPrivateData:P.codecPrivateData,packetSize:P.packetSize,samplingRate:P.samplingRate,height:P.height,width:P.width,protection:_(W)?void 0:{keyId:W.keyId}},H=new eo({isLive:I,sharedSmoothTimeline:L,media:D,segmentPrivateInfos:z}),se=j({},P,{index:H,cdnMetadata:[{baseUrl:l}],mimeType:F,codecs:V,id:$});if(q.length>0||W!==void 0){let oe=W===void 0?[]:W.keySystems.map(ue=>{let{systemId:he,privateData:Y}=ue,ce=he.replace(/-/g,""),Ie=$I(ce,Y);return{systemId:ce,data:Ie}});if(oe.length>0){let ue=[{type:"cenc",values:oe}];se.contentProtections={keyIds:q,initData:ue}}else se.contentProtections={keyIds:q,initData:[]}}return se});if(E==="ADVT")return null;let C={id:O,type:v,representations:N,language:R===null?void 0:R};return v==="text"&&E==="DESC"&&(C.closedCaption=!0),C}function s(d,u,c){let l="";if(u!==void 0){let H=xi(u);l=u.substring(0,H)}let f=d.documentElement;if(_(f)||f.nodeName!=="SmoothStreamingMedia")throw new Error("document root should be SmoothStreamingMedia");let g=f.getAttribute("MajorVersion"),p=f.getAttribute("MinorVersion");if(g===null||p===null||!/^[2]-[0-2]$/.test(g+"-"+p))throw new Error("Version should be 2.0, 2.1 or 2.2");let I=f.getAttribute("Timescale"),h=w(I)?+I:1e7;isNaN(h)&&(h=1e7);let{protections:b,adaptationNodes:T}=nr(f,(H,se,oe)=>{switch(se){case"Protection":{H.protections.push(pl(oe,n.keySystems));break}case"StreamIndex":H.adaptationNodes.push(oe);break}return H},{adaptationNodes:[],protections:[]}),v={},E=hl(f.getAttribute("IsLive")),R;if(E){let H=f.getAttribute("DVRWindowLength");H!==null&&!isNaN(+H)&&+H!=0&&(R=+H/h)}let k=T.reduce((H,se)=>{let oe=a({root:se,baseUrl:l,timescale:h,protections:b,isLive:E,timeShiftBufferDepth:R,manifestReceivedTime:c});if(oe===null)return H;let ue=oe.type,he=H[ue];return he===void 0?H[ue]=[oe]:he.push(oe),H},v),A,M,x,L=null,O,N=k.video!==void 0?k.video[0]:void 0,C=k.audio!==void 0?k.audio[0]:void 0,P,D,F;if(N!==void 0||C!==void 0){let H=[],se=[];if(N!==void 0){let oe=N.representations[0];if(oe!==void 0){let ue=oe.index.getFirstAvailablePosition(),he=oe.index.getLastAvailablePosition();_(ue)||H.push(ue),_(he)||se.push(he)}}if(C!==void 0){let oe=C.representations[0];if(oe!==void 0){let ue=oe.index.getFirstAvailablePosition(),he=oe.index.getLastAvailablePosition();_(ue)||H.push(ue),_(he)||se.push(he)}}H.length>0&&(P=Math.max(...H)),se.length>0&&(D=Math.min(...se),F=Math.max(...se))}let V=f.getAttribute("Duration"),$=V!==null&&+V!=0?+V/h:void 0;if(E){A=n.suggestedPresentationDelay,M=e,x=P!=null?P:M;let H=F;H===void 0&&(H=Date.now()/1e3-M);let se=D;se===void 0&&(se=H),O={isLinear:!0,maximumSafePosition:se,livePosition:H,time:K()},L=R!=null?R:null}else{x=P!=null?P:0;let H=D;H===void 0&&(H=$!==void 0?x+$:1/0),O={isLinear:!1,maximumSafePosition:H,livePosition:void 0,time:K()}}let q=E?0:x,W=E?void 0:O.maximumSafePosition,z={availabilityStartTime:M===void 0?0:M,clockOffset:i,isLive:E,isDynamic:E,isLastPeriodKnown:!0,timeBounds:{minimumSafePosition:x,timeshiftDepth:L,maximumTimeData:O},periods:[{adaptations:k,duration:W!==void 0?W-q:$,end:W,id:"gen-smooth-period-0",start:q}],suggestedPresentationDelay:A,transportType:"smooth",uris:_(u)?[]:[u]};return tr(z),z}return s}function $I(n,e){if(n.length!==32)throw new Error("HSS: wrong system id length");return de("pssh",re([0,0,0,0],qe(n),be(e.length),e))}var hm=YI;var ym=hm;function Im(n,e,t,r,i,o,a){return de("avc1",re(6,fe(1),16,fe(n),fe(e),fe(t),2,fe(r),6,[0,1,i.length],ve(i),31-i.length,fe(o),[255,255],a))}function bm(n,e,t,r,i,o,a,s){return de("encv",re(6,fe(1),16,fe(n),fe(e),fe(t),2,fe(r),6,[0,1,i.length],ve(i),31-i.length,fe(o),[255,255],a,s))}function Sm(n,e,t,r,i,o){return de("mp4a",re(6,fe(n),8,fe(e),fe(t),2,fe(r),fe(i),2,o))}function Tm(n,e,t,r,i,o,a){return de("enca",re(6,fe(n),8,fe(e),fe(t),2,fe(r),fe(i),2,o,a))}function _m(n){return de("dref",re(7,[1],n))}function Em(n,e){let t=re(...[ve(n),[0,0,0,1]].concat(e.map(ve)));return de("ftyp",t)}function Sa(n,e){return de("schm",re(4,ve(n),be(e)))}function vm(n){return de("tfdt",re([1,0,0,0],jt(n)))}function Rm(){let n=new Uint8Array(12);return n[3]=1,de("vmhd",n)}function km(n){return de("trex",re(4,be(n),[0,0,0,1],12))}function Cm(n){return de("free",new Uint8Array(n-8))}function Pm(n,e){return de("esds",re(4,[3,25],fe(n),[0,4,17,64,21],11,[5,2],qe(e),[6,1,2]))}function Ta(n){return de("frma",ve(n))}function Mm(n,e,t){let r;t===2?r=1:t===4?r=3:r=0;let i=n[1],o=n[2],a=n[3];return de("avcC",re([1,i,o,a,252|r,225],fe(n.length),n,[1],fe(e.length),e))}function Am(n){let e,t;switch(n){case"video":e="vide",t="VideoHandler";break;case"audio":e="soun",t="SoundHandler";break;default:e="hint",t="";break}return de("hdlr",re(8,ve(e),12,ve(t),1))}function xm(n){return de("mdhd",re(12,be(n),8))}function wm(n,e){return de("mvhd",re(12,be(n),4,[0,1],2,[1,0],10,[0,1],14,[0,1],14,[64,0,0,0],26,fe(e+1)))}function Om(n,e,t,r){return de("saio",re(4,[0,0,0,1],be(n.length+e.length+t.length+r.length+8+8+8+8)))}function Dm(n){if(n.length===0)return de("saiz",new Uint8Array(0));let e=ne(n,0),t=ne(n,4),r=new Uint8Array(t+9);r.set(be(t),5);let i=9,o=8,a,s;for(;o<n.length;)o+=8,(e&2)===2?(s=2,a=Oo(n,o),o+=a*6+2):(a=0,s=0),r[i]=a*6+8+s,i++;return de("saiz",r)}function Lm(){return de("smhd",new Uint8Array(8))}function rr(n){let e=[7,[n.length]];return de("stsd",re(...e.concat(n)))}function Nm(n,e,t){return de("tkhd",re(be(7),8,be(t),20,[1,0,0,0],[0,1,0,0],12,[0,1,0,0],12,[64,0,0,0],fe(n),2,fe(e),2))}function _a(n,e,t){return de("tenc",re(6,[n,e],t))}function QI(n,e,t){return Ae("moov",[n,e,t])}function ro(n,e,t,r,i,o){let a=Ae("stbl",[t,de("stts",new Uint8Array(8)),de("stsc",new Uint8Array(8)),de("stsz",new Uint8Array(12)),de("stco",new Uint8Array(8))]),s=de("url ",new Uint8Array([0,0,0,1])),d=_m(s),u=Ae("dinf",[d]),c=Ae("minf",[r,u,a]),l=Am(e),f=xm(n),g=Ae("mdia",[f,l,c]),p=Nm(i,o,1),I=Ae("trak",[p,g]),h=km(1),b=Ae("mvex",[h]),T=wm(n,1),v=QI(T,b,I),E=Em("isom",["isom","iso2","iso6","avc1","dash"]);return re(E,v)}var XI=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];function yl(n,e,t){let r=XI.indexOf(e),i;return i=(n&63)<<4,i=(i|r&31)<<4,i=(i|t&31)<<3,Ne(fe(i))}function Ea(n,e,t,r,i,o,a){let s=o.length===0?yl(2,i,e):o,d=Pm(1,s),u=(()=>{if(a===void 0){let h=Sm(1,e,t,r,i,d);return rr([h])}let c=_a(1,8,a),l=Ae("schi",[c]),f=Sa("cenc",65536),g=Ta("mp4a"),p=Ae("sinf",[g,f,l]),I=Tm(1,e,t,r,i,d,p);return rr([I])})();return ro(n,"audio",u,Lm(),0,0)}function va(n,e,t,r,i,o,a,s){let[,d,u]=a.split("00000001");if(d===void 0||u===void 0)throw new Error("Smooth: unsupported codec private data.");let c=qe(d),l=qe(u),f=Mm(c,l,o),g;if(s===void 0){let p=Im(e,t,r,i,"AVC Coding",24,f);g=rr([p])}else{let p=_a(1,8,s),I=Ae("schi",[p]),h=Sa("cenc",65536),b=Ta("avc1"),T=Ae("sinf",[b,h,I]),v=bm(e,t,r,i,"AVC Coding",24,f,T);g=rr([v])}return ro(n,"video",g,Rm(),e,t)}function Ra(n){let e=pn(n,3565190898,3392751253,2387879627,2655430559);if(e===void 0)return[];let t=[],r=e[0],i=e[4];for(let o=0;o<i;o++){let a,s;r===1?(s=Ke(e,o*16+5),a=Ke(e,o*16+5+8)):(s=ne(e,o*8+5),a=ne(e,o*8+5+4)),t.push({time:s,duration:a})}return t}function ka(n){let e=pn(n,1830656773,1121273062,2162299933,2952222642);if(e!==void 0)return{duration:Ke(e,12),time:Ke(e,4)}}function Il(){return!zt}function bl(n,e,t,r,i){let o=[n,e,t];return i!==void 0&&o.push(de("senc",i),Dm(i),Om(r,n,e,t)),Ae("traf",o)}function Ca(n,e){let t=Ve(n,1836019558);if(t===null)throw new Error("Smooth: Invalid ISOBMFF given");let r=n.subarray(t[1],t[2]),i=ps(r,1835427940),o=Re(r,1953653094);if(o===null||i===null)throw new Error("Smooth: Invalid ISOBMFF given");let a=Ve(o,1952868452),s=Ve(o,1953658222);if(a===null||s===null)throw new Error("Smooth: Invalid ISOBMFF given");let d=o.subarray(a[0],a[2]),u=o.subarray(s[0],s[2]);d.set([0,0,0,1],a[1]-a[0]+4);let c=vm(e),l=ZI(u,s[1]-s[0]),f=pn(o,2721664850,1520127764,2722393154,2086964724),g=bl(d,c,l,i,f),p=Ae("moof",[i,g]),I=Ve(p,1836019558),h=Ve(g,1953653094),b=Ve(l,1953658222);if(I===null||h===null||b===null)throw new Error("Smooth: Invalid moof, trun or traf generation");let T=I[1]-I[0]+i.length+(h[1]-h[0])+d.length+c.length+(b[1]-b[0])+8,v=t[2]-t[0],E=p.length-v,R=Ve(n,1835295092);if(R===null)throw new Error("Smooth: Invalid ISOBMFF given");if(Il()&&(E===0||E<=-8)){let k=R[1];return p.set(be(k),T),n.set(p,t[0]),E<=-8&&n.set(Cm(-E),p.length),n}else{let k=R[1]+E;p.set(be(k),T);let A=new Uint8Array(n.length+E),M=n.subarray(0,t[0]),x=n.subarray(t[2],n.length);return A.set(M,0),A.set(p,M.length),A.set(x,M.length+p.length),A}}function ZI(n,e){if((n[e+3]&1)>0)return n;let r=new Uint8Array(n.length+4);return r.set(n.subarray(0,e+8),0),r[e+3]=r[e+3]|1,r.set([0,0,0,0],e+8),r.set(n.subarray(e+8,n.length),e+12),bs(r)}function Pa(n,e,t,r,i){var g;let o=[],a,s,d;if(i){let p=Mr(n);p!==null?(d=Ra(p),s=ka(p)):m.warn("smooth: could not find traf atom")}if(d!==void 0)for(let p=0;p<d.length;p++)o.push({time:d[p].time,duration:d[p].duration,timescale:t});if(s!==void 0)return a={time:s.time/t,duration:s.duration/t},{nextSegments:o,chunkInfos:a,scaledSegmentTime:s.time};if(e||!r.complete)return{nextSegments:o,chunkInfos:null,scaledSegmentTime:void 0};let u=r.duration*t,c=Math.min(t*.9,u/4),l=Or(n),f=((g=r.privateInfos)==null?void 0:g.smoothMediaSegment)!==void 0?r.privateInfos.smoothMediaSegment.time:Math.round(r.time*t);return l!==void 0&&Math.abs(l-u)<=c?a={time:r.time,duration:l/t}:a={time:r.time,duration:r.duration},{nextSegments:o,chunkInfos:a,scaledSegmentTime:f}}function Mn(n){return typeof n=="string"&&n.indexOf("mp4")>=0}async function Um(n,e,t,r,i,o){var g,p;let a=((g=r.cmcdPayload)==null?void 0:g.type)==="headers"?r.cmcdPayload.value:void 0,s=e.segment.range,d;Array.isArray(s)?d=le(ae({},a),{Range:dt(s)}):a!==void 0&&(d=a);let u=((p=r.cmcdPayload)==null?void 0:p.type)==="query"?Ye(n,r.cmcdPayload.value):n,c=await Te({url:u,responseType:"arraybuffer",headers:d,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i,onProgress:t.onProgress});if(!Mn(e.mimeType)||o!==!0)return{resultType:"segment-loaded",resultData:c};let f=new Uint8Array(c.responseData);return Jt(f,e.segment.isInit),{resultType:"segment-loaded",resultData:le(ae({},c),{responseData:f})}}var JI=({checkMediaSegmentIntegrity:n,segmentLoader:e})=>(t,r,i,o,a)=>{let{segment:s}=r;if(s.isInit){if(s.privateInfos===void 0||s.privateInfos.smoothInitSegment===void 0)throw new Error("Smooth: Invalid segment format");let d=s.privateInfos.smoothInitSegment,u,{codecPrivateData:c,timescale:l,height:f,width:g,protection:p={keyId:void 0,keySystems:void 0}}=d;if(c===void 0)throw new Error("Smooth: no codec private data.");switch(r.type){case"video":{u=va(l,g!=null?g:0,f!=null?f:0,72,72,4,c,p.keyId);break}case"audio":{let{channels:I=0,bitsPerSample:h=0,packetSize:b=0,samplingRate:T=0}=d;u=Ea(l,I,h,b,T,c,p.keyId);break}default:y.CURRENT_ENV===y.DEV&&te(!1,"responseData should have been set"),u=new Uint8Array(0)}return Promise.resolve({resultType:"segment-created",resultData:u})}else return t===null?Promise.resolve({resultType:"segment-created",resultData:null}):typeof e!="function"?Um(t,r,a,i,o,n):new Promise((d,u)=>{let c=!1,I={reject:E=>{var M,x;if(c||o.isCancelled())return;c=!0,o.deregister(v);let R=E,k=(M=R==null?void 0:R.message)!=null?M:"Unknown error when fetching a Smooth segment through a custom segmentLoader.",A=new nt(k,(x=R==null?void 0:R.canRetry)!=null?x:!1,R==null?void 0:R.xhr);u(A)},resolve:E=>{if(c||o.isCancelled())return;c=!0,o.deregister(v),(!Mn(r.mimeType)||n!==!0)&&d({resultType:"segment-loaded",resultData:{responseData:E.data,size:E.size,requestDuration:E.duration}});let k=E.data instanceof Uint8Array?E.data:new Uint8Array(E.data);Jt(k,r.segment.isInit),d({resultType:"segment-loaded",resultData:{responseData:k,size:E.size,requestDuration:E.duration}})},fallback:()=>{c||o.isCancelled()||(c=!0,o.deregister(v),Um(t,r,a,i,o,n).then(d,u))},progress:E=>{c||o.isCancelled()||a.onProgress({duration:E.duration,size:E.size,totalSize:E.totalSize})}},h;r.segment.range!==void 0&&(h=[r.segment.range],r.segment.indexRange!==void 0&&h.push(r.segment.indexRange));let b={isInit:r.segment.isInit,timeout:i.timeout,byteRanges:h,trackType:r.type,url:t,cmcdPayload:i.cmcdPayload},T=e(b,I);o.register(v);function v(E){c||(c=!0,!c&&typeof T=="function"&&T(),u(E))}})},Bm=JI;function Sl(n,e){return n===null?null:e.url===null?n.baseUrl:$n(n.baseUrl,e.url)}function Fm(n){let e=ym(n),t=Bm(n),r={customManifestLoader:n.manifestLoader},o={loadManifest:Li(r,"text",null),parseManifest(d,u){var b;let c=(b=d.url)!=null?b:u.originalUrl,{receivedTime:l,responseData:f}=d,g=typeof f=="string"?new DOMParser().parseFromString(f,"text/xml"):f,p=e(g,c,l),I=[];return{manifest:new Vn(p,{representationFilter:n.representationFilter},I),url:c,warnings:I}}},a={loadSegment(d,u,c,l,f){let g=Sl(d,u.segment);return t(g,u,c,l,f)},parseSegment(d,u,c){var R,k;let{segment:l}=u,{data:f,isChunked:g}=d;if(f===null)return l.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let p=f instanceof Uint8Array?f:new Uint8Array(f);if(l.isInit){let A=(k=(R=l.privateInfos)==null?void 0:R.smoothInitSegment)==null?void 0:k.timescale;return{segmentType:"init",initializationData:f,initializationDataSize:f.byteLength,initTimescale:A,protectionData:[]}}let I=c!==void 0?Pa(p,g,c,l,u.isLive):null;if(I===null||I.chunkInfos===null||I.scaledSegmentTime===void 0)throw new Error("Smooth Segment without time information");let{nextSegments:h,chunkInfos:b,scaledSegmentTime:T}=I,v=Ca(p,T),E=h.length>0?h:void 0;return{segmentType:"media",chunkData:v,chunkInfos:b,chunkOffset:0,chunkSize:v.length,protectionData:[],predictedSegments:E,appendWindow:[void 0,void 0]}}};return{transportName:"smooth",manifest:o,audio:a,video:a,text:{loadSegment(d,u,c,l,f){var h,b,T,v;let{segment:g}=u,p=Sl(d,g);return g.isInit||p===null?Promise.resolve({resultType:"segment-created",resultData:null}):Mn(u.mimeType)?Te({url:((T=c.cmcdPayload)==null?void 0:T.type)==="query"?Ye(p,c.cmcdPayload.value):p,headers:((v=c.cmcdPayload)==null?void 0:v.type)==="headers"?c.cmcdPayload.value:void 0,responseType:"arraybuffer",timeout:c.timeout,connectionTimeout:c.connectionTimeout,cancelSignal:l,onProgress:f.onProgress}).then(E=>{if(n.checkMediaSegmentIntegrity!==!0)return{resultType:"segment-loaded",resultData:E};let R=new Uint8Array(E.responseData);return Jt(R,u.segment.isInit),{resultType:"segment-loaded",resultData:le(ae({},E),{responseData:R})}}):Te({url:((h=c.cmcdPayload)==null?void 0:h.type)==="query"?Ye(p,c.cmcdPayload.value):p,headers:((b=c.cmcdPayload)==null?void 0:b.type)==="headers"?c.cmcdPayload.value:void 0,responseType:"text",timeout:c.timeout,connectionTimeout:c.connectionTimeout,cancelSignal:l,onProgress:f.onProgress}).then(E=>({resultType:"segment-loaded",resultData:E}))},parseSegment(d,u,c){var O;let{segment:l,language:f,mimeType:g="",codecs:p=""}=u,I=Mn(u.mimeType),{data:h,isChunked:b}=d,T;if(l.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};if(h===null)return{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let v,E=null,R,k,A,M;if(I){let N;typeof h=="string"?N=ve(h):N=h instanceof Uint8Array?h:new Uint8Array(h),T=N.length;let C=c!==void 0?Pa(N,b,c,l,u.isLive):null;v=C==null?void 0:C.nextSegments,E=(O=C==null?void 0:C.chunkInfos)!=null?O:null,E===null?b?m.warn("Smooth: Unavailable time data for current text track."):(R=l.time,k=l.end):(R=E.time,k=E.duration!==void 0?E.time+E.duration:l.end);let P=p.toLowerCase();if(g==="application/ttml+xml+mp4"||P==="stpp"||P==="stpp.ttml.im1t")M="ttml";else if(P==="wvtt")M="vtt";else throw new Error(`could not find a text-track parser for the type ${g}`);let D=Ar(N);A=D===null?"":Le(D)}else{R=l.time,k=l.end;let N;if(typeof h!="string"){let C=h instanceof Uint8Array?h:new Uint8Array(h);T=C.length,N=Le(C)}else N=h;switch(g){case"application/x-sami":case"application/smil":M="sami";break;case"application/ttml+xml":M="ttml";break;case"text/vtt":M="vtt";break}if(M===void 0)if(p.toLowerCase()==="srt")M="srt";else throw new Error(`could not find a text-track parser for the type ${g}`);A=N}let x=Array.isArray(v)&&v.length>0?v:void 0,L=R!=null?R:0;return{segmentType:"media",chunkData:{type:M,data:A,start:R,end:k,language:f},chunkSize:T,chunkInfos:E,chunkOffset:L,protectionData:[],predictedSegments:x,appendWindow:[void 0,void 0]}}}}}var Km=Fm;function Tl(n){n.transports.smooth===void 0&&(n.transports.smooth=Km),n.mainThreadMediaSourceInit=Tn}function Vm(){if(!dn)return m.warn("Compat: Can't access Firefox version on no firefox browser."),null;let n=navigator.userAgent,e=/Firefox\/([0-9]+)\./.exec(n);if(e===null)return-1;let t=parseInt(e[1],10);return isNaN(t)?-1:t}function _l(){if(!dn)return!0;let n=Vm();if(n===null||n<67)return!0;let e=HTMLVideoElement==null?void 0:HTMLVideoElement.prototype;return(e==null?void 0:e.requirePictureInPicture)!==void 0}function io(n){let e=n;if(typeof e.getStartDate=="function"){let t=e.getStartDate();if(typeof t=="object"&&t!==null){let r=+t;if(!isNaN(r))return r/1e3}else if(typeof t=="number"&&!isNaN(t))return t}}function El(){return Ua&&typeof Worker=="object"||typeof Worker=="function"}var An=class n extends Error{constructor(e,t){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="WorkerInitializationError",this.type="WORKER_INITIALIZATION_ERROR",this.code=e}};var eb=sr,vl=eb;function Ma(n,e,t){let r=e(n.getReference(),t);return{getCurrentTime(){return n.getCurrentTime()},getReadyState(){return n.getReadyState()},getPlaybackRate(){return n.getPlaybackRate()},getIsPaused(){return n.getIsPaused()},getReference(){return r},listen(i,o){var a;t.isCancelled()||((a=o==null?void 0:o.clearSignal)==null?void 0:a.isCancelled())===!0||r.onUpdate(i,{clearSignal:o==null?void 0:o.clearSignal,emitCurrentValue:o==null?void 0:o.includeLastObservation})},deriveReadOnlyObserver(i){return Ma(this,i,t)}}}var tb=["canplay","ended","play","pause","seeking","seeked","loadedmetadata","ratechange"],oo=class{constructor(e,t){this._internalSeeksIncoming=[],this._mediaElement=e,this._withMediaSource=t.withMediaSource,this._lowLatencyMode=t.lowLatencyMode,this._canceller=new B,this._observationRef=this._createSharedReference(),this._expectedSeekingPosition=null,this._pendingSeek=null;let r=()=>{if(this._pendingSeek!==null){let i=this._pendingSeek;this._pendingSeek=null,this._actuallySetCurrentTime(i)}};e.addEventListener("loadedmetadata",r),this._canceller.signal.register(()=>{e.removeEventListener("loadedmetadata",r)})}stop(){this._canceller.cancel()}getCurrentTime(){return this._mediaElement.currentTime}getPlaybackRate(){return this._mediaElement.playbackRate}getIsPaused(){return this._mediaElement.paused}setCurrentTime(e){this._mediaElement.readyState>=1?this._actuallySetCurrentTime(e):(this._internalSeeksIncoming=[],this._pendingSeek=e,this._generateObservationForEvent("manual"))}setPlaybackRate(e){this._mediaElement.playbackRate=e}getReadyState(){return this._mediaElement.readyState}getReference(){return this._observationRef}listen(e,t){var r;if(this._canceller.isUsed()||((r=t==null?void 0:t.clearSignal)==null?void 0:r.isCancelled())===!0)return Z;this._observationRef.onUpdate(e,{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:t==null?void 0:t.includeLastObservation})}deriveReadOnlyObserver(e){return Ma(this,e,this._canceller.signal)}_actuallySetCurrentTime(e){m.info("API: Seeking internally",e),this._internalSeeksIncoming.push(e),this._mediaElement.currentTime=e}_createSharedReference(){if(this._observationRef!==void 0)return this._observationRef;let{SAMPLING_INTERVAL_MEDIASOURCE:e,SAMPLING_INTERVAL_LOW_LATENCY:t,SAMPLING_INTERVAL_NO_MEDIASOURCE:r}=U.getCurrent(),i=new G(this._getCurrentObservation("init"),this._canceller.signal),o;this._lowLatencyMode?o=t:this._withMediaSource?o=e:o=r;let a=()=>{this._generateObservationForEvent("timeupdate")},s=setInterval(a,o);return tb.map(u=>{let c=()=>{d(),this._generateObservationForEvent(u)};this._mediaElement.addEventListener(u,c),this._canceller.signal.register(()=>{this._mediaElement.removeEventListener(u,c)})}),this._canceller.signal.register(()=>{clearInterval(s),i.finish()}),i;function d(){clearInterval(s),s=setInterval(a,o)}}_getCurrentObservation(e){var T,v;let t=e,r=this._observationRef===void 0?ab(this._mediaElement):this._observationRef.getValue(),i=!1,o=this._pendingSeek,a=Hm(this._mediaElement),{buffered:s,readyState:d,position:u,seeking:c}=a;if(t==="seeking")if(this._internalSeeksIncoming.length>0){i=!0,t="internal-seeking";let E=this._internalSeeksIncoming.shift();this._expectedSeekingPosition=vl?Math.max(u,E!=null?E:0):u}else this._expectedSeekingPosition=u;else c?this._expectedSeekingPosition=Math.max(u,(T=this._expectedSeekingPosition)!=null?T:0):vl&&this._expectedSeekingPosition!==null&&u<this._expectedSeekingPosition?o=this._expectedSeekingPosition:this._expectedSeekingPosition=null;c&&r.seeking===1&&e!=="seeking"&&(i=!0);let l=(v=this._expectedSeekingPosition)!=null?v:u,f,g;!this._withMediaSource&&s.length===0&&d>=3?(f=void 0,g=void 0):(f=za(s,l),g=f!==null?f.end-l:1/0);let p=rb({previousObservation:r,currentObservation:a,basePosition:l,observationEvent:t,lowLatencyMode:this._lowLatencyMode,withMediaSource:this._withMediaSource,bufferGap:g,currentRange:f}),I=ib(r,a,t,g),h;i?h=1:c?h=2:h=0;let b=j({},a,{position:new jn(a.position,o),event:t,seeking:h,rebuffering:p,freezing:I,bufferGap:g,currentRange:f});return m.hasLevel("DEBUG")&&m.debug("API: current media element state tick","event",b.event,"position",b.position.getPolled(),"seeking",b.seeking,"internalSeek",i,"rebuffering",b.rebuffering!==null,"freezing",b.freezing!==null,"ended",b.ended,"paused",b.paused,"playbackRate",b.playbackRate,"readyState",b.readyState,"pendingPosition",o),b}_generateObservationForEvent(e){let t=this._getCurrentObservation(e);m.hasLevel("DEBUG")&&m.debug(`API: current playback timeline:
15
+ `+ob(t.buffered,t.position.getPolled()),`
16
+ ${e}`),this._observationRef.setValue(t)}};function zm(n,e){if(n===null)return 0;let t=e?"LOW_LATENCY":"DEFAULT",{RESUME_GAP_AFTER_SEEKING:r,RESUME_GAP_AFTER_NOT_ENOUGH_DATA:i,RESUME_GAP_AFTER_BUFFERING:o}=U.getCurrent();switch(n.reason){case"seeking":return r[t];case"not-ready":return i[t];case"buffering":return o[t]}}function nb(n,e,t,r,i){let{REBUFFERING_GAP:o}=U.getCurrent(),a=i?"LOW_LATENCY":"DEFAULT";return e===void 0?t&&Math.abs(r-n)<=o[a]:e!==null&&r-e.end<=o[a]}function Hm(n){let{buffered:e,currentTime:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}=n;return{buffered:e,position:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}}function rb({previousObservation:n,currentObservation:e,basePosition:t,observationEvent:r,withMediaSource:i,lowLatencyMode:o,bufferGap:a,currentRange:s}){let{REBUFFERING_GAP:d}=U.getCurrent(),{position:u,duration:c,paused:l,readyState:f,ended:g}=e,{rebuffering:p,event:I,position:h}=n,b=nb(t,s,g,c,o),T=f>=1&&r!=="loadedmetadata"&&p===null&&!(b||g),v=null,E,R,k=o?d.LOW_LATENCY:d.DEFAULT;if(i){if(T)a===1/0?(E=!0,v=t):a===void 0?f<3&&(E=!0,v=void 0):a<=k&&(E=!0,v=t+a);else if(p!==null){let A=zm(p,o);E!==!0&&p!==null&&f>1&&(b||g||a!==void 0&&isFinite(a)&&a>A)||a===void 0&&f>=3?R=!0:a===void 0?v=void 0:a===1/0?v=t:a<=A&&(v=t+a)}}else T&&(!l&&r==="timeupdate"&&I==="timeupdate"&&u===h.getPolled()||r==="seeking"&&(a===1/0||a===void 0&&f<3))?E=!0:p!==null&&(r!=="seeking"&&u!==h.getPolled()||r==="canplay"||a===void 0&&f>=3||a!==void 0&&a<1/0&&(a>zm(p,o)||b||g))&&(R=!0);if(R===!0)return null;if(E===!0||p!==null){let A;return r==="seeking"||p!==null&&p.reason==="seeking"||e.seeking?A="seeking":f===1?A="not-ready":A="buffering",p!==null&&p.reason===A?{reason:p.reason,timestamp:p.timestamp,position:v}:{reason:A,timestamp:K(),position:v}}return null}function ib(n,e,t,r){let{MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:i}=U.getCurrent();return n.freezing?e.ended||e.paused||e.readyState===0||e.playbackRate===0||n.position.getPolled()!==e.position?null:n.freezing:t==="timeupdate"&&r!==void 0&&r>i&&!e.ended&&!e.paused&&e.readyState>=1&&e.playbackRate!==0&&e.position===n.position.getPolled()?{timestamp:K()}:null}function ob(n,e){let t="",r="";for(let i=0;i<n.length;i++){let o=n.start(i),a=n.end(i),s=o.toFixed(2),d=a.toFixed(2),u=(a-o).toFixed(2),c=`${s}|==${u}==|${d}`;if(t+=c,r.length===0&&a>e){let l=t.length-Math.floor(c.length/2);r=" ".repeat(l)+`^${e}`}if(i<n.length-1){let l=n.start(i+1),g=` ~${(l-a).toFixed(2)}~ `;if(t+=g,r.length===0&&e<l){let p=t.length-Math.floor(g.length/2);r=" ".repeat(p)+`^${e}`}}}return r.length===0&&(r=" ".repeat(t.length)+`^${e}`),t+`
17
+ `+r}function ab(n){let e=Hm(n);return j(e,{rebuffering:null,event:"init",seeking:0,position:new jn(e.position,null),freezing:null,bufferGap:0,currentRange:null})}var ao=class extends ie{constructor(e){super(),this._canceller=new B,this._adaptationRef=e,this._updateToken=!1,this._lastEmitted=void 0,this.refresh=Z}hasSetTrack(){return this._adaptationRef.getValue()!==void 0}updateTrack(e){if(this._updateToken=!0,e===null){if(this._lastEmitted===null)return;this._updateToken=!1,this._canceller.cancel(),this._canceller=new B,this._lastEmitted=null,this._adaptationRef.setValue(null);return}let{adaptation:t,switchingMode:r,relativeResumingPosition:i}=e;this._canceller.cancel(),this._canceller=new B;let o=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:t,switchingMode:r,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:t.id,switchingMode:r,representations:o,relativeResumingPosition:i}))}_constructLockedRepresentationsReference(e){let t=new G({representationIds:[],switchingMode:"lazy"}),r=this;return this.refresh=i,this._canceller.signal.register(o),e.lockedRepresentations.onUpdate(i,{clearSignal:this._canceller.signal,emitCurrentValue:!1}),i(),t;function i(){let a=e.lockedRepresentations.getValue(),s,d;if(a===null)d=e.adaptation.representations.filter(l=>l.isSupported===!0&&l.decipherable!==!1),s="lazy";else{let{representationIds:l}=a;if(s=a.switchingMode,d=e.adaptation.representations.filter(g=>Q(l,g.id)).filter(g=>g.isSupported===!0&&g.decipherable!==!1),d.length===0){r.trigger("noPlayableLockedRepresentation",null);return}}if(d.length<=0){r.trigger("noPlayableRepresentation",null);return}let u=t.getValue(),c=d.map(l=>l.id).slice().sort();if(c.length!==u.representationIds.length){t.setValue({representationIds:c,switchingMode:s});return}for(let l=0;l<c.length;l++)if(u.representationIds[l]!==c[l]){t.setValue({representationIds:c,switchingMode:s});return}}function o(){r.refresh=Z}}dispose(){this.removeEventListener(),this._canceller.cancel(),this._adaptationRef.finish()}};var so=class extends ie{constructor(e){var t;super(),this._storedPeriodInfo=[],this._isDisposed=!1,this._cachedPeriodInfo=new WeakMap,this._isTrickModeTrackEnabled=e.preferTrickModeTracks,this._defaultAudioTrackSwitchingMode=(t=e.defaultAudioTrackSwitchingMode)!=null?t:U.getCurrent().DEFAULT_AUDIO_TRACK_SWITCHING_MODE}getAvailablePeriods(){return this._storedPeriodInfo.reduce((e,t)=>(t.isPeriodAdvertised&&e.push(Nt(t.period)),e),[])}onManifestCodecSupportUpdate(){this._selectInitialTrackIfNeeded()}onManifestUpdate(e){var a,s,d,u,c,l;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:t}=U.getCurrent(),{periods:r}=e;if(y.CURRENT_ENV===y.DEV)for(let f=1;f<r.length;f++)te(r[f-1].start<=r[f].start);let i=[],o=0;for(let f=0;f<this._storedPeriodInfo.length;f++){let g=this._storedPeriodInfo[f].period,p=r[o];if(p===void 0)for(let I=this._storedPeriodInfo.length-1;I>=f;I--)this._storedPeriodInfo[I].inManifest=!1,Rl(this._storedPeriodInfo[I])&&this._removePeriodObject(I);else if(g===p){o++;let I=this._storedPeriodInfo[f].text.storedSettings;if(!_(I)&&!mt(p,"text").some(E=>E.id===I.adaptation.id)){m.warn("TS: Chosen text Adaptation not available anymore");let E=this._storedPeriodInfo[f];if(E.text.storedSettings=null,this.trigger("trackUpdate",{period:Nt(p),trackType:"text",reason:"missing"}),this._isDisposed)return;let R=ut(this._storedPeriodInfo,E.period.id);R!==void 0&&R.isPeriodAdvertised&&R.text.storedSettings===null&&((a=R.text.dispatcher)==null||a.updateTrack(null))}let h=this._storedPeriodInfo[f].video.storedSettings;if(!_(h)){let T=mt(p,"video");if(!T.some(E=>E.id===h.adaptation.id)){m.warn("TS: Chosen video Adaptation not available anymore");let E=this._storedPeriodInfo[f],R;if(T.length===0)R=null;else{let A=T[0],M=Aa(A,this._isTrickModeTrackEnabled),x=new G(null);R={adaptationBase:A,adaptation:M,switchingMode:t,lockedRepresentations:x}}if(E.video.storedSettings=R,this.trigger("trackUpdate",{period:Nt(p),trackType:"video",reason:"missing"}),this._isDisposed)return;let k=ut(this._storedPeriodInfo,E.period.id);k!==void 0&&k.isPeriodAdvertised&&k.video.storedSettings===R&&((s=k.video.dispatcher)==null||s.updateTrack(R))}}let b=this._storedPeriodInfo[f].audio.storedSettings;if(!_(b)){let T=mt(p,"audio");if(!T.some(E=>E.id===b.adaptation.id)){m.warn("TS: Chosen audio Adaptation not available anymore");let E=this._storedPeriodInfo[f],R=T.length===0?null:{adaptation:T[0],switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new G(null)};if(E.audio.storedSettings=R,this.trigger("trackUpdate",{period:Nt(p),trackType:"audio",reason:"missing"}),this._isDisposed)return;let k=ut(this._storedPeriodInfo,E.period.id);k!==void 0&&k.isPeriodAdvertised&&k.audio.storedSettings===R&&((d=k.audio.dispatcher)==null||d.updateTrack(R))}}}else if(g.start<=p.start)this._storedPeriodInfo[f].inManifest=!1,Rl(this._storedPeriodInfo[f])&&(this._removePeriodObject(f),f--);else{let I=kl(p,!0);this._storedPeriodInfo.splice(f,0,I),i.push(I),o++}}if(o<r.length){let f=r.slice(o).map(g=>kl(g,!0));this._storedPeriodInfo.push(...f),i.push(...f)}for(let f of this._storedPeriodInfo)(u=f.audio.dispatcher)==null||u.refresh(),(c=f.video.dispatcher)==null||c.refresh(),(l=f.text.dispatcher)==null||l.refresh()}onDecipherabilityUpdates(){var e,t,r;for(let i of this._storedPeriodInfo)(e=i.audio.dispatcher)==null||e.refresh(),(t=i.video.dispatcher)==null||t.refresh(),(r=i.text.dispatcher)==null||r.refresh()}addTrackReference(e,t,r){let i=ut(this._storedPeriodInfo,t.id);if(i===void 0){i=kl(t,!1);let s=!1;for(let d=0;d<this._storedPeriodInfo.length;d++)this._storedPeriodInfo[d].period.start>t.start&&(this._storedPeriodInfo.splice(d,0,i),s=!0);s||this._storedPeriodInfo.push(i)}if(i[e].dispatcher!==null){m.error(`TS: Subject already added for ${e} and Period ${t.start}`);return}let o=new ao(r);if(i[e].dispatcher=o,o.addEventListener("noPlayableRepresentation",()=>{var l,f,g,p;let s=X((l=t.adaptations[e])!=null?l:[],I=>I.supportStatus.hasSupportedCodec===!1||I.supportStatus.isDecipherable===!1?!1:I.representations.filter(b=>b.isSupported===!0&&b.decipherable!==!1).length>0);if(s===void 0){let I=new J("NO_PLAYABLE_REPRESENTATION",`No ${e} Representation can be played`,{tracks:void 0});this.trigger("error",I),this.dispose();return}let d=(f=ut(this._storedPeriodInfo,t.id))==null?void 0:f[e];if(_(d))return;let u=e==="audio"?this._defaultAudioTrackSwitchingMode:"reload",c={adaptation:s,switchingMode:u,lockedRepresentations:new G(null)};d.storedSettings=c,this.trigger("trackUpdate",{period:Nt(t),trackType:e,reason:"no-playable-representation"}),!this._isDisposed&&(d=(g=ut(this._storedPeriodInfo,t.id))==null?void 0:g[e],!(_(d)||d.storedSettings!==c)&&((p=d.dispatcher)==null||p.updateTrack(c)))}),o.addEventListener("noPlayableLockedRepresentation",()=>{i!==void 0&&(this.unlockVideoRepresentations(i),this.trigger("brokenRepresentationsLock",{period:{id:t.id,start:t.start,end:t.end},trackType:e}))}),this._selectInitialTrackIfNeeded(),this._shouldAdvertisePeriod(i)&&(i.isPeriodAdvertised=!0,this.trigger("newAvailablePeriods",[{id:t.id,start:t.start,end:t.end}]),this._isDisposed))return;let a=["audio","video","text"];for(let s of a){let d=i[s];if(i.isPeriodAdvertised&&d.dispatcher!==null&&!d.dispatcher.hasSetTrack()&&d.storedSettings!==void 0&&d.dispatcher.updateTrack(d.storedSettings),this._isDisposed)return}}removeTrackReference(e,t){let r=sb(this._storedPeriodInfo,t);if(r===void 0){m.warn(`TS: ${e} not found for period`,t.start);return}let i=this._storedPeriodInfo[r],o=i[e];if((o==null?void 0:o.dispatcher)===null){m.warn(`TS: TrackDispatcher already removed for ${e} and Period ${t.start}`);return}o.dispatcher.dispose(),o.dispatcher=null,Rl(i)&&this._removePeriodObject(r)}getPeriodObjectFromPeriod(e){let t=ut(this._storedPeriodInfo,e.id);return t===void 0&&e!==void 0?this._cachedPeriodInfo.get(e):t}getPeriodObjectFromId(e){return ut(this._storedPeriodInfo,e)}disableVideoTrickModeTracks(){this._isTrickModeTrackEnabled&&(this._isTrickModeTrackEnabled=!1,this._resetVideoTrackChoices("trickmode-disabled"))}enableVideoTrickModeTracks(){this._isTrickModeTrackEnabled||(this._isTrickModeTrackEnabled=!0,this._resetVideoTrackChoices("trickmode-enabled"))}resetPeriodObjects(){var e,t,r;for(let i=this._storedPeriodInfo.length-1;i>=0;i--){let o=this._storedPeriodInfo[i];(e=o.audio.dispatcher)==null||e.dispose(),o.audio.dispatcher=null,(t=o.video.dispatcher)==null||t.dispose(),o.video.dispatcher=null,(r=o.text.dispatcher)==null||r.dispose(),o.text.dispatcher=null,o.inManifest||this._removePeriodObject(i)}}isTrickModeEnabled(){return this._isTrickModeTrackEnabled}setAudioTrack(e){let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;return this._setAudioOrTextTrack({bufferType:"audio",periodRef:t,trackId:r,switchingMode:i!=null?i:this._defaultAudioTrackSwitchingMode,lockedRepresentations:o,relativeResumingPosition:a})}setTextTrack(e,t){return this._setAudioOrTextTrack({bufferType:"text",periodRef:e,trackId:t,switchingMode:"direct",lockedRepresentations:null,relativeResumingPosition:void 0})}_setAudioOrTextTrack({bufferType:e,periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}){var g,p;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=X((g=s.adaptations[e])!=null?g:[],({id:I,supportStatus:h})=>h.hasSupportedCodec!==!1&&h.isDecipherable!==!1&&I===r);if(d===void 0)throw new Error(`Wanted ${e} track not found.`);let u=t[e],c;if(o===null)c=new G(null);else{let I=this._getRepresentationsToLock(d,o),h=e==="audio"?this._defaultAudioTrackSwitchingMode:"direct";c=new G({representationIds:I,switchingMode:h})}let l={adaptation:d,switchingMode:i,lockedRepresentations:c,relativeResumingPosition:a};if(u.storedSettings=l,this.trigger("trackUpdate",{period:Nt(s),trackType:e,reason:"manual"}),this._isDisposed)return;let f=ut(this._storedPeriodInfo,s.id);f!==void 0&&f[e].storedSettings===l&&((p=f[e].dispatcher)==null||p.updateTrack(l))}setVideoTrack(e){var I,h;let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=X((I=s.adaptations.video)!=null?I:[],({id:b,supportStatus:T})=>T.isDecipherable!==!1&&T.hasSupportedCodec!==!1&&b===r);if(d===void 0)throw new Error("Wanted video track not found.");let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:u}=U.getCurrent(),c=t.video,l=Aa(d,this._isTrickModeTrackEnabled),f;if(o===null)f=new G(null);else{let b=this._getRepresentationsToLock(d,o),T=u;f=new G({representationIds:b,switchingMode:T})}let g={adaptationBase:d,switchingMode:i!=null?i:u,adaptation:l,relativeResumingPosition:a,lockedRepresentations:f};if(c.storedSettings=g,this.trigger("trackUpdate",{period:Nt(s),trackType:"video",reason:"manual"}),this._isDisposed)return;let p=ut(this._storedPeriodInfo,s.id);p!==void 0&&p.video.storedSettings===g&&((h=p.video.dispatcher)==null||h.updateTrack(g))}disableTrack(e,t){var o,a;if(!e.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let r=e[t];if(r.storedSettings===null||(t!=="text"&&((o=e[t].storedSettings)==null||o.lockedRepresentations.finish()),r.storedSettings=null,this.trigger("trackUpdate",{period:Nt(e.period),trackType:t,reason:"manual"}),this._isDisposed))return;let i=ut(this._storedPeriodInfo,e.period.id);i!==void 0&&i[t].storedSettings===null&&((a=i[t].dispatcher)==null||a.updateTrack(null))}getChosenAudioTrack(e){return _(e.audio.storedSettings)?null:Go(e.audio.storedSettings.adaptation,!0)}getChosenTextTrack(e){return _(e.text.storedSettings)?null:qo(e.text.storedSettings.adaptation)}getChosenVideoTrack(e){return _(e.video.storedSettings)?null:jo(e.video.storedSettings.adaptation,!0)}getAvailableAudioTracks(e){let t=e.audio.storedSettings,r=_(t)?null:t.adaptation.id;return mt(e.period,"audio").map(o=>{let a=r===null?!1:r===o.id;return j(Go(o,!0),{active:a})})}getAvailableTextTracks(e){let t=e.text.storedSettings,r=_(t)?null:t.adaptation.id;return mt(e.period,"text").map(o=>{let a=r===null?!1:r===o.id;return j(qo(o),{active:a})})}getAvailableVideoTracks(e){let t=e.video.storedSettings,r=_(t)?void 0:t.adaptation.id;return mt(e.period,"video").map(o=>{let a=r===null?!1:r===o.id,s=jo(o,!0),d=s.trickModeTracks!==void 0?s.trickModeTracks.map(c=>{let l=r===null?!1:r===c.id;return j(c,{active:l})}):[],u=j(s,{active:a});return d!==void 0&&(u.trickModeTracks=d),u})}getLockedAudioRepresentations(e){let{storedSettings:t}=e.audio;if(_(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}getLockedVideoRepresentations(e){let{storedSettings:t}=e.video;if(_(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}lockAudioRepresentations(e,t){var s;let{storedSettings:r}=e.audio;if(_(r))return;let{DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:i}=U.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}lockVideoRepresentations(e,t){var s;let{storedSettings:r}=e.video;if(_(r))return;let{DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:i}=U.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}unlockAudioRepresentations(e){let{storedSettings:t}=e.audio;_(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}unlockVideoRepresentations(e){let{storedSettings:t}=e.video;_(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}dispose(){for(this._isDisposed=!0;;){let e=this._storedPeriodInfo.pop();if(e===void 0)return;e.isRemoved=!0}}_resetVideoTrackChoices(e){var r;for(let i=0;i<this._storedPeriodInfo.length;i++){let o=this._storedPeriodInfo[i];if(!_(o.video.storedSettings)){let a=o.video.storedSettings.adaptationBase;if(a!==null){let s=Aa(a,this._isTrickModeTrackEnabled);o.video.storedSettings.adaptationBase=a,o.video.storedSettings.adaptation=s}}}let t=this._storedPeriodInfo.slice();for(let i=0;i<t.length;i++){let o=t[i].period,s=t[i].video.storedSettings;if(s!==void 0){if(this.trigger("trackUpdate",{period:Nt(o),trackType:"video",reason:e}),this._isDisposed)return;let d=ut(this._storedPeriodInfo,o.id);d!==void 0&&d.isPeriodAdvertised&&d.video.storedSettings===s&&((r=d.video.dispatcher)==null||r.updateTrack(s))}}}_removePeriodObject(e){y.CURRENT_ENV===y.DEV&&te(e<this._storedPeriodInfo.length,"Invalid index for Period removal");let t=this._storedPeriodInfo[e];this._storedPeriodInfo[e].isRemoved=!0,this._storedPeriodInfo.splice(e,1),this._cachedPeriodInfo.set(t.period,t)}_getRepresentationsToLock(e,t){let r=t.reduce((i,o)=>{let a=X(e.representations,s=>s.id===o);return a===void 0?m.warn("API: Wanted locked Representation not found."):i.push(a.id),i},[]);if(r.length===0)throw new Error("Cannot lock Representations: None of the given Representation id are found");return r}_selectInitialTrackIfNeeded(){var i,o,a,s;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:e}=U.getCurrent(),t=[],r=[];for(let d of this._storedPeriodInfo){let{period:u}=d;if(d.audio.storedSettings!==void 0&&d.video.storedSettings!==void 0&&d.text.storedSettings!==void 0)continue;let c=[...(i=u.adaptations.audio)!=null?i:[],...(o=u.adaptations.video)!=null?o:[]],l=c.every(b=>b.supportStatus.hasCodecWithUndefinedSupport);if(c.length>0&&l)continue;let f=mt(u,"audio")[0];d.audio.storedSettings=f===void 0?null:{adaptation:f,switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new G(null)};let g=mt(u,"video")[0],p=Aa(g,this._isTrickModeTrackEnabled);d.video.storedSettings=p===void 0?null:{adaptation:p,adaptationBase:g,switchingMode:e,lockedRepresentations:new G(null)};let I=null,h=((a=u.adaptations.text)!=null?a:[]).filter(b=>b.isForcedSubtitles===!0);if(h.length>0){if(f!=null){let b=X(h,T=>T.normalizedLanguage===f.normalizedLanguage);b!==void 0&&(I=b)}I===null&&(I=(s=X(h,b=>b.normalizedLanguage===void 0))!=null?s:null)}d.text.storedSettings=I===null?null:{adaptation:I,switchingMode:"direct",lockedRepresentations:new G(null)},r.push(d),this._shouldAdvertisePeriod(d)&&(d.isPeriodAdvertised=!0,t.push({id:u.id,start:u.start,end:u.end}))}if(!(t.length>0&&(this.trigger("newAvailablePeriods",t),this._isDisposed)))for(let d of r){if(!d.isPeriodAdvertised)continue;let u=["audio","video","text"];for(let c of u){let l=d[c];if(l.dispatcher!==null&&l.storedSettings!==void 0&&!l.dispatcher.hasSetTrack()&&(l.dispatcher.updateTrack(l.storedSettings),this._isDisposed))return}}}_shouldAdvertisePeriod(e){return!e.isPeriodAdvertised&&e.text.dispatcher!==null&&e.video.dispatcher!==null&&e.audio.dispatcher!==null}};function sb(n,e){for(let t=0;t<n.length;t++)if(n[t].period.id===e.id)return t}function ut(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.period.id===e)return r}}function Rl(n){var e,t,r;return!n.inManifest&&((e=n.text)==null?void 0:e.dispatcher)===null&&((t=n.audio)==null?void 0:t.dispatcher)===null&&((r=n.video)==null?void 0:r.dispatcher)===null}function Aa(n,e){var t;return e&&((t=n.trickModeTracks)==null?void 0:t[0])!==void 0?n.trickModeTracks[0]:n}function kl(n,e){return{period:n,inManifest:e,isPeriodAdvertised:!1,isRemoved:!1,audio:{storedSettings:void 0,dispatcher:null},video:{storedSettings:void 0,dispatcher:null},text:{storedSettings:void 0,dispatcher:null}}}function Nt(n){return{start:n.start,end:n.end,id:n.id}}var Wm=so;function Gm(n){let e,t,r,i,o,a,{DEFAULT_BASE_BANDWIDTH:s,DEFAULT_VIDEO_RESOLUTION_LIMIT:d,DEFAULT_MAX_BUFFER_AHEAD:u,DEFAULT_MAX_BUFFER_BEHIND:c,DEFAULT_MAX_VIDEO_BUFFER_SIZE:l,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:f,DEFAULT_WANTED_BUFFER_AHEAD:g}=U.getCurrent();if(_(n.maxBufferAhead))e=u;else if(e=Number(n.maxBufferAhead),isNaN(e))throw new Error("Invalid maxBufferAhead parameter. Should be a number.");if(_(n.maxBufferBehind))t=c;else if(t=Number(n.maxBufferBehind),isNaN(t))throw new Error("Invalid maxBufferBehind parameter. Should be a number.");if(_(n.wantedBufferAhead))r=g;else if(r=Number(n.wantedBufferAhead),isNaN(r))throw new Error("Invalid wantedBufferAhead parameter. Should be a number.");if(_(n.maxVideoBufferSize))i=l;else if(i=Number(n.maxVideoBufferSize),isNaN(i))throw new Error("Invalid maxVideoBufferSize parameter. Should be a number.");let p=_(n.videoResolutionLimit)?d:n.videoResolutionLimit,I=_(n.throttleVideoBitrateWhenHidden)?f:!!n.throttleVideoBitrateWhenHidden;if(_(n.videoElement))o=document.createElement("video");else if(n.videoElement.nodeName.toLowerCase()==="video"||n.videoElement.nodeName.toLowerCase()==="audio")o=n.videoElement;else throw new Error("Invalid videoElement parameter. Should be a HTMLMediaElement.");if(_(n.baseBandwidth))a=s;else if(a=Number(n.baseBandwidth),isNaN(a))throw new Error("Invalid baseBandwidth parameter. Should be a number.");return{maxBufferAhead:e,maxBufferBehind:t,videoResolutionLimit:p,videoElement:o,wantedBufferAhead:r,maxVideoBufferSize:i,throttleVideoBitrateWhenHidden:I,baseBandwidth:a}}function qm(n){var e,t,r,i;if(n===null||typeof n!="object"&&n!==void 0)throw new Error("API: reload - Invalid options format.");if((n==null?void 0:n.reloadAt)===null||typeof(n==null?void 0:n.reloadAt)!="object"&&(n==null?void 0:n.reloadAt)!==void 0)throw new Error("API: reload - Invalid 'reloadAt' option format.");if(typeof((e=n==null?void 0:n.reloadAt)==null?void 0:e.position)!="number"&&((t=n==null?void 0:n.reloadAt)==null?void 0:t.position)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.position' option format.");if(typeof((r=n==null?void 0:n.reloadAt)==null?void 0:r.relative)!="number"&&((i=n==null?void 0:n.reloadAt)==null?void 0:i.relative)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");if(!Array.isArray(n==null?void 0:n.keySystems)&&(n==null?void 0:n.keySystems)!==void 0)throw new Error("API: reload - Invalid 'keySystems' option format.");if((n==null?void 0:n.autoPlay)!==void 0&&typeof n.autoPlay!="boolean")throw new Error("API: reload - Invalid 'autoPlay' option format.")}function jm(n){var E,R,k;let e,t,r,i,o,a,s,{DEFAULT_AUTO_PLAY:d,DEFAULT_CODEC_SWITCHING_BEHAVIOR:u,DEFAULT_ENABLE_FAST_SWITCHING:c,DEFAULT_TEXT_TRACK_MODE:l}=U.getCurrent();if(_(n))throw new Error("No option set on loadVideo");if(!_(n.url))e=String(n.url);else if(_(n.initialManifest)&&_(n.manifestLoader))throw new Error("Unable to load a content: no url set on loadVideo.\nPlease provide at least either an `url` argument, a `initialManifest` option or a `manifestLoader` option so the RxPlayer can load the content.");if(_(n.transport))throw new Error("No transport set on loadVideo");t=String(n.transport);let f=_(n.autoPlay)?d:!!n.autoPlay;if(_(n.keySystems))r=[];else{r=Array.isArray(n.keySystems)?n.keySystems:[n.keySystems];for(let A of r)if(typeof A.type!="string"||typeof A.getLicense!="function")throw new Error("Invalid key system given: Missing type string or getLicense callback")}let g=n.lowLatencyMode===void 0?!1:!!n.lowLatencyMode,p=n.initialManifest,I=(E=n.minimumManifestUpdateInterval)!=null?E:0,h=(R=n.defaultAudioTrackSwitchingMode)!=null?R:void 0;h!==void 0&&!Q(["seamless","direct","reload"],h)&&(m.warn("The `defaultAudioTrackSwitchingMode` loadVideo option must match one of the following strategy name:\n- `seamless`\n- `direct`\n- `reload`"),h=void 0);let b=_(n.onCodecSwitch)?u:n.onCodecSwitch;if(Q(["continue","reload"],b)||(m.warn("The `onCodecSwitch` loadVideo option must match one of the following string:\n- `continue`\n- `reload`\nIf badly set, "+u+" will be used as default"),b=u),_(n.textTrackMode))i=l;else{if(n.textTrackMode!=="native"&&n.textTrackMode!=="html")throw new Error("Invalid textTrackMode.");i=n.textTrackMode}if(i==="html"){if(_(n.textTrackElement))throw new Error('You have to provide a textTrackElement in "html" textTrackMode.');if(n.textTrackElement instanceof HTMLElement)a=n.textTrackElement;else throw new Error("textTrackElement should be an HTMLElement.")}else _(n.textTrackElement)||m.warn('API: You have set a textTrackElement without being in an "html" textTrackMode. It will be ignored.');if(_(n.mode))o="auto";else{if(!Q(["auto","multithread","main"],n.mode))throw new Error("Invalid `mode` option.");o=n.mode}let T=_(n.enableFastSwitching)?c:n.enableFastSwitching;if(!_(n.startAt))if("wallClockTime"in n.startAt&&n.startAt.wallClockTime instanceof Date){let A=n.startAt.wallClockTime.getTime()/1e3;s=j({},n.startAt,{wallClockTime:A})}else s=n.startAt;let v=(k=n.requestConfig)!=null?k:{};return{__priv_patchLastSegmentInSidx:n.__priv_patchLastSegmentInSidx,__priv_manifestUpdateUrl:n.__priv_manifestUpdateUrl,checkMediaSegmentIntegrity:n.checkMediaSegmentIntegrity,checkManifestIntegrity:n.checkManifestIntegrity,autoPlay:f,defaultAudioTrackSwitchingMode:h,enableFastSwitching:T,initialManifest:p,keySystems:r,lowLatencyMode:g,manifestLoader:n.manifestLoader,minimumManifestUpdateInterval:I,requestConfig:v,onCodecSwitch:b,referenceDateTime:n.referenceDateTime,representationFilter:n.representationFilter,segmentLoader:n.segmentLoader,serverSyncInfos:n.serverSyncInfos,startAt:s,textTrackElement:a,textTrackMode:i,transport:t,mode:o,url:e,cmcd:n.cmcd}}function Ym(n,e,t,r,i){if(i.isCancelled()||n===null)return;let o=e.getReference().getValue().seeking===2;o&&(t(),i.isCancelled())||e.listen(a=>{a.event==="seeking"?(o=!0,t()):o&&a.event==="seeked"&&(o=!1,r())},{includeLastObservation:!0,clearSignal:i})}function $m(n,e,t,r){r.isCancelled()||n===null||(n.addEventListener("play",e),n.addEventListener("pause",t),r.register(()=>{n.removeEventListener("play",e),n.removeEventListener("pause",t)}))}function Qm(n,e,t,r){let i=new G("LOADING",r);n.addEventListener("loaded",()=>{if(i.getValue()==="LOADING"){if(i.setValue("LOADED"),!r.isCancelled()){let s=Cl(e,null);s!=="PAUSED"&&i.setValue(s)}}else i.getValue()==="RELOADING"?i.setValue(Cl(e,null)):a(null)},r),n.addEventListener("reloadingMediaSource",()=>{ir(i.getValue())&&i.setValueIfChanged("RELOADING")},r);let o=null;return n.addEventListener("stalled",s=>{s!==o&&(a(s),o=s)},r),n.addEventListener("unstalled",()=>{o!==null&&(a(null),o=null)},r),t.listen(s=>{Q(["seeking","ended","play","pause"],s.event)&&a(o)},{clearSignal:r}),i;function a(s){if(!ir(i.getValue()))return;let d=Cl(e,s);i.getValue()==="LOADED"&&d==="PAUSED"||i.setValueIfChanged(d)}}function Cl(n,e){let{FORCED_ENDED_THRESHOLD:t}=U.getCurrent();if(n.ended)return"ENDED";if(e!==null){let r=Math.abs(n.duration-n.currentTime);return!_(t)&&r<t?"ENDED":e==="seeking"?"SEEKING":e==="freezing"?"FREEZING":"BUFFERING"}return n.paused?"PAUSED":"PLAYING"}function ir(n){return n!=="LOADING"&&n!=="RELOADING"&&n!=="STOPPED"}var db=Ze(),ub=["manifestLoader","segmentLoader"],Ut=class Ut extends ie{static get ErrorTypes(){return Xe}static get ErrorCodes(){return Qa}static get LogLevel(){return m.getLevel()}static set LogLevel(e){m.setLevel(e,m.getFormat())}static get LogFormat(){return m.getFormat()}static set LogFormat(e){m.setLevel(m.getLevel(),e)}static addFeatures(e){ea(e)}static _priv_registerVideoElement(e){Ut._priv_currentlyUsedVideoElements.has(e)&&console.warn(`The video element is already attached to another RxPlayer instance.
18
+ Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Ut._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Ut._priv_currentlyUsedVideoElements.has(e)&&Ut._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=Gm(e);s.preload="auto",this.version="4.2.0-dev.2024080600",this.log=m,this.state="STOPPED",this.videoElement=s,Ut._priv_registerVideoElement(this.videoElement);let c=new B;this._destroyCanceller=c,this._priv_pictureInPictureRef=nc(s,c.signal),this._priv_speed=new G(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new G(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new G(d,this._destroyCanceller.signal),maxBufferAhead:new G(i,this._destroyCanceller.signal),maxBufferBehind:new G(o,this._destroyCanceller.signal),maxVideoBufferSize:new G(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null,this._priv_segmentSinkMetricsCallback=null;let l=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",l),c.signal.register(()=>{s.removeEventListener("volumechange",l)})}attachWorker(e){return new Promise((t,r)=>{var o;if(!El())return m.warn("API: Cannot rely on a WebWorker: Worker API unavailable"),r(new An("INCOMPATIBLE_ERROR","Worker unavailable"));if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let a=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(a),URL.revokeObjectURL(a)}this._priv_worker.onerror=a=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API: Unexpected worker error",a.error instanceof Error?a.error:void 0),r(new An("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=a=>{let s=a.data;s.type==="init-error"?(m.warn("API: Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new An("SETUP_ERROR","Worker parser initialization failed: "+s.value.errorMessage))):s.type==="init-success"&&(m.info("API: InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("---> Sending To Worker:","init"),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),logFormat:m.getFormat(),sendBackLogs:xn(),date:Date.now(),timestamp:K(),hasVideo:((o=this.videoElement)==null?void 0:o.nodeName.toLowerCase())==="video",hasMseInWorker:Ff}}),m.addEventListener("onLogLevelChange",a=>{this._priv_worker!==null&&(m.debug("---> Sending To Worker:","log-level-update"),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:a.level,logFormat:a.format,sendBackLogs:xn()}}))},this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Ut._priv_deregisterVideoElement(this.videoElement),On(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API: Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=jm(e);m.info("API: Calling loadvideo",t.url,t.transport),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var c,l,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");qm(e);let a;if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.position)!==void 0)a={position:e.reloadAt.position};else if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=le(ae({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(me.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new B;return me.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}_priv_initializeContentPlayback(e){var z,H,se,oe,ue,he;let{autoPlay:t,cmcd:r,defaultAudioTrackSwitchingMode:i,enableFastSwitching:o,initialManifest:a,keySystems:s,lowLatencyMode:d,minimumManifestUpdateInterval:u,requestConfig:c,onCodecSwitch:l,startAt:f,transport:g,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,manifestLoader:h,referenceDateTime:b,segmentLoader:T,serverSyncInfos:v,mode:E,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k,url:A}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let M=g==="directfile",x=new B,L=this.videoElement,O,N=!1,C=null;if(M){if(me.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(_(A))throw new Error("No URL for a DirectFile content");if(m.info("API: Initializing DirectFile mode in the main thread"),C=this._priv_initializeMediaElementTracksStore(x.signal),x.isUsed())return;O=new me.directfile.initDirectFile({autoPlay:t,keySystems:s,speed:this._priv_speed,startAt:f,url:A})}else{let Y={lowLatencyMode:d,maxRetry:(z=c.manifest)==null?void 0:z.maxRetry,requestTimeout:(H=c.manifest)==null?void 0:H.timeout,connectionTimeout:(se=c.manifest)==null?void 0:se.connectionTimeout,minimumManifestUpdateInterval:u,initialManifest:a},ce=_l(),Ie={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ce?Ie.throttleBitrate={video:on(rc(this._priv_pictureInPictureRef,x.signal),Oe=>Oe?1/0:0,x.signal)}:m.warn("API: Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ce?Ie.limitResolution={video:oc(L,this._priv_pictureInPictureRef,x.signal)}:m.warn("API: Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&(Ie.limitResolution={video:ic(x.signal)});let Bt={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:d,throttlers:Ie},$e=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},Ue=j({enableFastSwitching:o,onCodecSwitch:l},this._priv_bufferOptions),Tt={lowLatencyMode:d,maxRetry:(oe=c.segment)==null?void 0:oe.maxRetry,requestTimeout:(ue=c.segment)==null?void 0:ue.timeout,connectionTimeout:(he=c.segment)==null?void 0:he.connectionTimeout},ht=me.multithread!==null&&this._priv_worker!==null&&g==="dash"&&ub.every(Oe=>_(e[Oe]))&&typeof e.representationFilter!="function";if(E==="main"||E==="auto"&&!ht){if(me.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Oe=me.transports[g];if(typeof Oe!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${g}" not supported`);let Zm=typeof e.representationFilter=="string"?Hc(e.representationFilter):e.representationFilter;m.info("API: Initializing MediaSource mode in the main thread");let Jm=Oe({lowLatencyMode:d,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,manifestLoader:h,referenceDateTime:b,representationFilter:Zm,segmentLoader:T,serverSyncInfos:v,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k});O=new me.mainThreadMediaSourceInit({adaptiveOptions:Bt,autoPlay:t,bufferOptions:Ue,cmcd:r,keySystems:s,lowLatencyMode:d,transport:Jm,manifestRequestSettings:Y,segmentRequestOptions:Tt,speed:this._priv_speed,startAt:f,textTrackOptions:$e,url:A})}else{if(me.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");te(typeof e.representationFilter!="function"),N=!0,m.info("API: Initializing MediaSource mode in a WebWorker");let Oe={lowLatencyMode:d,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,referenceDateTime:b,serverSyncInfos:v,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k};O=new me.multithread.init({adaptiveOptions:Bt,autoPlay:t,bufferOptions:Ue,cmcd:r,keySystems:s,lowLatencyMode:d,transportOptions:Oe,manifestRequestSettings:Y,segmentRequestOptions:Tt,speed:this._priv_speed,startAt:f,textTrackOptions:$e,worker:this._priv_worker,url:A})}}let P={contentId:db(),originalUrl:A,currentContentCanceller:x,defaultAudioTrackSwitchingMode:i,initializer:O,isDirectFile:M,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:C,useWorker:N};O.addEventListener("error",Y=>{this._priv_onFatalError(Y,P)}),O.addEventListener("warning",Y=>{let ce=we(Y,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API: Sending warning:",ce),this.trigger("warning",ce)}),O.addEventListener("reloadingMediaSource",Y=>{P.tracksStore!==null&&P.tracksStore.resetPeriodObjects(),this._priv_segmentSinkMetricsCallback=null,this._priv_lastAutoPlay=Y.autoPlay}),O.addEventListener("inbandEvents",Y=>this.trigger("inbandEvents",Y)),O.addEventListener("streamEvent",Y=>this.trigger("streamEvent",Y)),O.addEventListener("streamEventSkip",Y=>this.trigger("streamEventSkip",Y)),O.addEventListener("activePeriodChanged",Y=>this._priv_onActivePeriodChanged(P,Y)),O.addEventListener("periodStreamReady",Y=>this._priv_onPeriodStreamReady(P,Y)),O.addEventListener("periodStreamCleared",Y=>this._priv_onPeriodStreamCleared(P,Y)),O.addEventListener("representationChange",Y=>this._priv_onRepresentationChange(P,Y)),O.addEventListener("adaptationChange",Y=>this._priv_onAdaptationChange(P,Y)),O.addEventListener("bitrateEstimateChange",Y=>this._priv_onBitrateEstimateChange(Y)),O.addEventListener("manifestReady",Y=>this._priv_onManifestReady(P,Y)),O.addEventListener("manifestUpdate",Y=>this._priv_onManifestUpdate(P,Y)),O.addEventListener("codecSupportUpdate",()=>this._priv_onCodecSupportUpdate(P)),O.addEventListener("decipherabilityUpdate",Y=>this._priv_onDecipherabilityUpdate(P,Y)),O.addEventListener("loaded",Y=>{this._priv_segmentSinkMetricsCallback=Y.getSegmentSinkMetrics}),O.prepare(),this.stop();let D=new oo(L,{withMediaSource:!M,lowLatencyMode:d});x.signal.register(()=>{D.stop()});let F=Qm(O,L,D,x.signal);x.signal.register(()=>{O.dispose()});let V=Y=>{switch(Y){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=D.getReference().getValue().position.getPolled();break;default:let ce=D.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ce.paused,this._priv_reloadingMetadata.reloadPosition=ce.position.getWanted();break}},$=null,q=Y=>{$!==null&&($.cancel(),$=null),F.onUpdate((ce,Ie)=>{ir(ce)&&(Ie(),$!==null&&$.cancel(),$=new B,$.linkToSignal(x.signal),Y!==!L.paused&&(L.paused?this.trigger("pause",null):this.trigger("play",null)),$m(L,()=>this.trigger("play",null),()=>this.trigger("pause",null),x.signal))},{emitCurrentValue:!1,clearSignal:x.signal})};q(t),O.addEventListener("reloadingMediaSource",Y=>{q(Y.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=P;let W=null;F.onUpdate(Y=>{V(Y),this._priv_setPlayerState(Y),!x.isUsed()&&(W!==null?ir(this.state)||(W.cancel(),W=null):ir(this.state)&&(W=new B,W.linkToSignal(x.signal),Ym(L,D,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),W.signal)))},{emitCurrentValue:!0,clearSignal:x.signal}),D.listen(Y=>{V(this.state),this._priv_triggerPositionUpdate(P,Y)},{clearSignal:x.signal}),x.signal.register(()=>{O.removeEventListener()}),this._priv_contentLock.onUpdate((Y,ce)=>{Y||(ce(),O.start(L,D))},{emitCurrentValue:!0,clearSignal:x.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!Q(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return Q(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement?Q(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=Vl(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){var r;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let i=io(this.videoElement);return(i!=null?i:0)+this.videoElement.currentTime}if(t!==null){let i=this.videoElement.currentTime,o=(r=t.availabilityStartTime)!=null?r:0;return i+o}return 0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;_(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.video}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.audio}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return _(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new J("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos;if(!t&&r===null)throw new Error("player: the content did not load yet");let i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!_(a.relative))i=s+a.relative;else if(!_(a.position))i=a.position;else{if(_(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t&&this.videoElement!==null){let d=io(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API: API Seek to",i),this.videoElement.currentTime=i,i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return _(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Kn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableAudioTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableAudioTracks(a))!=null?s:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableVideoTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableVideoTracks(a))!=null?s:[]})}getAudioTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenAudioTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenAudioTrack(o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenVideoTrack(o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(c);return}catch(c){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setAudioTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(c);return}catch(c){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setVideoTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?hn(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:yn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:bt(t):null}async __priv_getSegmentSinkMetrics(){if(this._priv_segmentSinkMetricsCallback!==null)return this._priv_segmentSinkMetricsCallback()}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_segmentSinkMetricsCallback=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};_(this.videoElement)?e():bo(this.videoElement).then(()=>{m.debug("API: DRM session cleaned-up with success!"),e()},a=>{m.error("API: An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Wm({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),e.tracksStore.addEventListener("warning",o=>{this.trigger("warning",o)}),e.tracksStore.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),e.tracksStore.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||_(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onCodecSupportUpdate(e){let t=e==null?void 0:e.tracksStore;_(t)||t.onManifestCodecSupportUpdate()}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(X(i,c=>c[0].id===o.period.id&&c[1]===o.adaptation.type)!==void 0)){let c=e.tracksStore;if(c===null)return i;let l=!1,f=c.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":l=((s=c.getChosenAudioTrack(f))==null?void 0:s.id)===o.adaptation.id;break;case"video":l=((d=c.getChosenVideoTrack(f))==null?void 0:d.id)===o.adaptation.id;break;case"text":l=((u=c.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}l&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,c,l,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(_(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let g=i.getPeriodObjectFromPeriod(t);if(g){let p=i.getChosenAudioTrack(g);this._priv_triggerEventIfNotStopped("audioTrackChange",p,r);let I=i.getChosenTextTrack(g);this._priv_triggerEventIfNotStopped("textTrackChange",I,r);let h=i.getChosenVideoTrack(g);this._priv_triggerEventIfNotStopped("videoTrackChange",h,r)}}let o=(c=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?c:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",o,r);let a=(f=(l=this.__priv_getCurrentRepresentations())==null?void 0:l.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",a,r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":_(a)?(m.error(`API: TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:Qe(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,period:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":_(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!_(a)&&!_(a[i.id])){let u=a[i.id];delete u[r],Object.keys(u).length===0&&delete a[i.id]}if(!_(s)&&!_(s[i.id])){let u=s[i.id];delete u[r],Object.keys(u).length===0&&delete s[i.id]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var c;if(e.contentId!==((c=this._priv_contentInfos)==null?void 0:c.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];_(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!_(i)&&i.id===a.id){let l=d.getPeriodObjectFromPeriod(i);if(l===void 0)return;switch(t){case"audio":let f=d.getChosenAudioTrack(l);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break;case"text":let g=d.getChosenTextTrack(l);this._priv_triggerEventIfNotStopped("textTrackChange",g,u);break;case"video":let p=d.getChosenVideoTrack(l);this._priv_triggerEventIfNotStopped("videoTrackChange",p,u);break}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(_(s)?o[r.id]={[t]:i}:s[t]=i,!_(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",i,u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",i,u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API: playerStateChange event",e),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||_(t))return;let o=i!==null?bt(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let c=yn(i);c!==void 0&&(a.liveGap=c-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=io(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;te(me.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),te(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new me.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API: Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(_(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":let u=o.getAvailableVideoTracks(d);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break;case"audio":let c=o.getAvailableAudioTracks(d);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",c!=null?c:[],s);break;case"text":let l=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",l!=null?l:[],s);break;default:Qe(e)}}_priv_onFatalError(e,t){let r=we(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API: The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Ut._priv_currentlyUsedVideoElements=new WeakSet;var xa=Ut;xa.version="4.2.0-dev.2024080600";var Xm=xa;var Pl=Xm;wa();Pl.addFeatures([Tl,au,cu,fu,dl,rl,fl,ol,Vu,yu,Ju,Su]);xn()?m.setLevel("DEBUG","standard"):y.CURRENT_ENV===y.DEV&&m.setLevel(S.CURRENT_LEVEL,"standard");var xoe=Pl;})();