ghostos 0.1.6 → 0.1.7
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.
- package/lib/index.esm.js +1372 -196
- package/package.json +1 -1
- package/lib/node_modules_dashjs_dist_modern_esm_dash_all_min_js.d0603952ec397dea4e1f.esm.js +0 -23
- package/lib/node_modules_jitl_quickjs-wasmfile-debug-asyncify_dist_emscripten-module_browser_mjs.89976ebd22f659e84707.esm.js +0 -33
- package/lib/node_modules_jitl_quickjs-wasmfile-debug-asyncify_dist_ffi_mjs.ad960605d7ba700ad82f.esm.js +0 -23
- package/lib/node_modules_jitl_quickjs-wasmfile-debug-sync_dist_emscripten-module_browser_mjs.07eae2554bac133b6fc9.esm.js +0 -33
- package/lib/node_modules_jitl_quickjs-wasmfile-debug-sync_dist_ffi_mjs.189a07423b84e04f54ff.esm.js +0 -23
- package/lib/node_modules_jitl_quickjs-wasmfile-release-asyncify_dist_emscripten-module_browser_mjs.d7e7af47a4a0356d19be.esm.js +0 -33
- package/lib/node_modules_jitl_quickjs-wasmfile-release-asyncify_dist_ffi_mjs.84320239cc78b0631790.esm.js +0 -23
- package/lib/node_modules_jitl_quickjs-wasmfile-release-sync_dist_emscripten-module_browser_mjs.bcfb57045021abe8bfc0.esm.js +0 -33
- package/lib/node_modules_jitl_quickjs-wasmfile-release-sync_dist_ffi_mjs.2a64ead86c1fe05ff3fd.esm.js +0 -23
- package/lib/node_modules_quickjs-emscripten-core_dist_module-6F3E5H7Y_mjs.db696d99d735604b60fb.esm.js +0 -23
- package/lib/node_modules_quickjs-emscripten-core_dist_module-asyncify-R6PWJ6ZV_mjs.57cba4b26e4034f4c505.esm.js +0 -23
- package/lib/reactPlayerDash.e7ab8ebe11eb2cc795eb.esm.js +0 -43
- package/lib/reactPlayerHls.a2d208df710eca8e8641.esm.js +0 -183
- package/lib/reactPlayerMux.7d6ccb0fc13a4e8b4a87.esm.js +0 -964
- package/lib/reactPlayerPreview.f341425ad93213445267.esm.js +0 -23
- package/lib/reactPlayerSpotify.7ca193725e100b9315c3.esm.js +0 -33
- package/lib/reactPlayerTwitch.35a47311600f27b15e87.esm.js +0 -33
- package/lib/reactPlayerVimeo.a750c97f3e7c0d9f31e1.esm.js +0 -43
- package/lib/reactPlayerWistia.a7ed6afb9e07f4cd7a85.esm.js +0 -43
- package/lib/reactPlayerYouTube.b80be2cf730c199086d5.esm.js +0 -33
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
3
|
-
* This devtool is neither made for production nor for readable output files.
|
|
4
|
-
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
5
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
6
|
-
* or disable the default devtool with "devtool: false".
|
|
7
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
8
|
-
*/
|
|
9
|
-
export const __webpack_id__ = "reactPlayerWistia";
|
|
10
|
-
export const __webpack_ids__ = ["reactPlayerWistia"];
|
|
11
|
-
export const __webpack_modules__ = {
|
|
12
|
-
|
|
13
|
-
/***/ "./node_modules/super-media-element/super-media-element.js":
|
|
14
|
-
/*!*****************************************************************!*\
|
|
15
|
-
!*** ./node_modules/super-media-element/super-media-element.js ***!
|
|
16
|
-
\*****************************************************************/
|
|
17
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
18
|
-
|
|
19
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Events: () => (/* binding */ Events),\n/* harmony export */ SuperAudioElement: () => (/* binding */ SuperAudioElement),\n/* harmony export */ SuperMediaMixin: () => (/* binding */ SuperMediaMixin),\n/* harmony export */ SuperVideoElement: () => (/* binding */ SuperVideoElement),\n/* harmony export */ template: () => (/* binding */ template)\n/* harmony export */ });\n/**\n * Super Media Element\n * Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n *\n * The goal is to create an element that works just like the video element\n * but can be extended/sub-classed, because native elements cannot be\n * extended today across browsers. Support for extending async loaded video\n * like API's. e.g. video players.\n */\n\n// The onevent like props are weirdly set on the HTMLElement prototype with other\n// generic events making it impossible to pick these specific to HTMLMediaElement.\nconst Events = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'encrypted',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n 'waitingforkey',\n 'resize',\n 'enterpictureinpicture',\n 'leavepictureinpicture',\n 'webkitbeginfullscreen',\n 'webkitendfullscreen',\n 'webkitpresentationmodechanged',\n];\n\nconst template = globalThis.document?.createElement('template');\n\nif (template) {\n template.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n video,\n audio {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\n/**\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n */\nconst SuperMediaMixin = (superclass, { tag, is }) => {\n\n const nativeElTest = globalThis.document?.createElement(tag, { is });\n const nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\n return class SuperMedia extends superclass {\n static Events = Events;\n static template = template;\n static skipAttributes = [];\n static #isDefined;\n\n static get observedAttributes() {\n SuperMedia.#define();\n\n // Include any attributes from the custom built-in.\n const natAttrs = nativeElTest?.constructor?.observedAttributes ?? [];\n\n return [\n ...natAttrs,\n 'autopictureinpicture',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'autoplay',\n 'controls',\n 'controlslist',\n 'crossorigin',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n ];\n }\n\n static #define() {\n if (this.#isDefined) return;\n this.#isDefined = true;\n\n const propsToAttrs = new Set(this.observedAttributes);\n // defaultMuted maps to the muted attribute, handled manually below.\n propsToAttrs.delete('muted');\n\n // Passthrough native el functions from the custom el to the native el\n for (let prop of nativeElProps) {\n if (prop in this.prototype) continue;\n\n const type = typeof nativeElTest[prop];\n if (type == 'function') {\n // Function\n this.prototype[prop] = function (...args) {\n this.#init();\n\n const fn = () => {\n if (this.call) return this.call(prop, ...args);\n return this.nativeEl[prop].apply(this.nativeEl, args);\n };\n\n if (this.loadComplete && !this.isLoaded) {\n return this.loadComplete.then(fn);\n }\n return fn();\n };\n } else {\n // Some properties like src, preload, defaultMuted are handled manually.\n\n // Getter\n let config = {\n get() {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n const val = this.getAttribute(attr);\n return val === null ? false : val === '' ? true : val;\n }\n\n return this.get?.(prop) ?? this.nativeEl?.[prop] ?? this.#standinEl[prop];\n },\n };\n\n if (prop !== prop.toUpperCase()) {\n // Setter (not a CONSTANT)\n config.set = async function (val) {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n if (val === true || val === false || val == null) {\n this.toggleAttribute(attr, Boolean(val));\n } else {\n this.setAttribute(attr, val);\n }\n return;\n }\n\n if (this.loadComplete && !this.isLoaded) await this.loadComplete;\n\n if (this.set) {\n this.set(prop, val);\n return;\n }\n\n this.nativeEl[prop] = val;\n };\n }\n\n Object.defineProperty(this.prototype, prop, config);\n }\n }\n }\n\n #isInit;\n #loadComplete;\n #hasLoaded = false;\n #isLoaded = false;\n #nativeEl;\n #standinEl;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.append(this.constructor.template.content.cloneNode(true));\n }\n\n // If a load method is provided in the child class create a load promise.\n if (this.load !== SuperMedia.prototype.load) {\n this.loadComplete = new PublicPromise();\n }\n\n // If the custom element is defined before the custom element's HTML is parsed\n // no attributes will be available in the constructor (construction process).\n // Wait until initializing in the attributeChangedCallback or\n // connectedCallback or accessing any properties.\n }\n\n get loadComplete() {\n return this.#loadComplete;\n }\n\n set loadComplete(promise) {\n this.#isLoaded = false;\n this.#loadComplete = promise;\n promise?.then(() => {\n this.#isLoaded = true;\n });\n }\n\n get isLoaded() {\n return this.#isLoaded;\n }\n\n get nativeEl() {\n return this.#nativeEl\n ?? this.shadowRoot.querySelector(tag)\n ?? this.querySelector(tag);\n }\n\n set nativeEl(val) {\n this.#nativeEl = val;\n }\n\n get defaultMuted() {\n return this.hasAttribute('muted');\n }\n\n set defaultMuted(val) {\n this.toggleAttribute('muted', Boolean(val));\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n set src(val) {\n this.setAttribute('src', `${val}`);\n }\n\n get preload() {\n return this.getAttribute('preload') ?? this.nativeEl?.preload;\n }\n\n set preload(val) {\n this.setAttribute('preload', `${val}`);\n }\n\n async #init() {\n if (this.#isInit) return;\n this.#isInit = true;\n\n this.#initStandinEl();\n this.#initNativeEl();\n\n for (let prop of nativeElProps)\n this.#upgradeProperty(prop);\n\n // Keep some native child elements like track and source in sync.\n const childMap = new Map();\n // An unnamed <slot> will be filled with all of the custom element's\n // top-level child nodes that do not have the slot attribute.\n const slotEl = this.shadowRoot.querySelector('slot:not([name])');\n slotEl?.addEventListener('slotchange', () => {\n const removeNativeChildren = new Map(childMap);\n slotEl\n .assignedElements()\n .filter((el) => ['track', 'source'].includes(el.localName))\n .forEach(async (el) => {\n // If the source or track is still in the assigned elements keep it.\n removeNativeChildren.delete(el);\n // Re-use clones if possible.\n let clone = childMap.get(el);\n if (!clone) {\n clone = el.cloneNode();\n childMap.set(el, clone);\n }\n if (this.loadComplete && !this.isLoaded) await this.loadComplete;\n this.nativeEl.append?.(clone);\n });\n removeNativeChildren.forEach((el) => el.remove());\n });\n\n // The video events are dispatched on the SuperMediaElement instance.\n // This makes it possible to add event listeners before the element is upgraded.\n for (let type of this.constructor.Events) {\n this.shadowRoot.addEventListener?.(type, (evt) => {\n if (evt.target !== this.nativeEl) return;\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }, true);\n }\n }\n\n #upgradeProperty(prop) {\n // Sets properties that are set before the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n // Delete the set property from this instance.\n delete this[prop];\n // Set the value again via the (prototype) setter on this class.\n this[prop] = value;\n }\n }\n\n #initStandinEl() {\n // Neither Chrome or Firefox support setting the muted attribute\n // after using document.createElement.\n // Get around this by setting the muted property manually.\n const dummyEl = document.createElement(tag, { is });\n dummyEl.muted = this.hasAttribute('muted');\n\n for (let { name, value } of this.attributes) {\n dummyEl.setAttribute(name, value);\n }\n\n this.#standinEl = {};\n for (let name of getNativeElProps(dummyEl)) {\n this.#standinEl[name] = dummyEl[name];\n }\n\n // unload dummy video element\n dummyEl.removeAttribute('src');\n dummyEl.load();\n }\n\n async #initNativeEl() {\n if (this.loadComplete && !this.isLoaded) await this.loadComplete;\n\n // If there is no nativeEl by now, create it our bloody selves.\n if (!this.nativeEl) {\n const nativeEl = document.createElement(tag, { is });\n nativeEl.part = tag;\n this.shadowRoot.append(nativeEl);\n }\n\n // Neither Chrome or Firefox support setting the muted attribute\n // after using document.createElement.\n // Get around this by setting the muted property manually.\n this.nativeEl.muted = this.hasAttribute('muted');\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n // Initialize right after construction when the attributes become available.\n this.#init();\n\n // Only call loadSrc when the super class has a load method.\n if (attrName === 'src' && this.load !== SuperMedia.prototype.load) {\n this.#loadSrc();\n }\n\n this.#forwardAttribute(attrName, oldValue, newValue);\n }\n\n async #loadSrc() {\n // The first time we use the Promise created in the constructor.\n if (this.#hasLoaded) this.loadComplete = new PublicPromise();\n this.#hasLoaded = true;\n\n // Wait 1 tick to allow other attributes to be set.\n await Promise.resolve();\n await this.load();\n\n this.loadComplete?.resolve();\n await this.loadComplete;\n }\n\n async #forwardAttribute(attrName, oldValue, newValue) {\n if (this.loadComplete && !this.isLoaded) await this.loadComplete;\n\n // Ignore a few that don't need to be passed & skipped attributes.\n // e.g. src: native element is using MSE and has a blob url as src attribute.\n if (['id', 'class', ...this.constructor.skipAttributes].includes(attrName)) {\n return;\n }\n\n if (newValue === null) {\n this.nativeEl.removeAttribute?.(attrName);\n } else {\n this.nativeEl.setAttribute?.(attrName, newValue);\n }\n }\n\n connectedCallback() {\n this.#init();\n }\n };\n};\n\nfunction getNativeElProps(nativeElTest) {\n // Map all native element properties to the custom element\n // so that they're applied to the native element.\n // Skipping HTMLElement because of things like \"attachShadow\"\n // causing issues. Most of those props still need to apply to\n // the custom element.\n let nativeElProps = [];\n\n // Walk the prototype chain up to HTMLElement.\n // This will grab all super class props in between.\n // i.e. VideoElement and MediaElement\n for (\n let proto = Object.getPrototypeOf(nativeElTest);\n proto && proto !== HTMLElement.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n nativeElProps.push(...Object.getOwnPropertyNames(proto));\n }\n\n return nativeElProps;\n}\n\n/**\n * A utility to create Promises with convenient public resolve and reject methods.\n * @return {Promise}\n */\nclass PublicPromise extends Promise {\n constructor(executor = () => {}) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\n\nconst SuperVideoElement = globalThis.document ? SuperMediaMixin(HTMLElement, { tag: 'video' }) : class {};\n\nconst SuperAudioElement = globalThis.document ? SuperMediaMixin(HTMLElement, { tag: 'audio' }) : class {};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc3VwZXItbWVkaWEtZWxlbWVudC9zdXBlci1tZWRpYS1lbGVtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ2hvc3Rvcy8uL25vZGVfbW9kdWxlcy9zdXBlci1tZWRpYS1lbGVtZW50L3N1cGVyLW1lZGlhLWVsZW1lbnQuanM/YjY0MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1cGVyIE1lZGlhIEVsZW1lbnRcbiAqIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9tdXhpbmMvY3VzdG9tLXZpZGVvLWVsZW1lbnQgLSBNdXggLSBNSVQgTGljZW5zZVxuICpcbiAqIFRoZSBnb2FsIGlzIHRvIGNyZWF0ZSBhbiBlbGVtZW50IHRoYXQgd29ya3MganVzdCBsaWtlIHRoZSB2aWRlbyBlbGVtZW50XG4gKiBidXQgY2FuIGJlIGV4dGVuZGVkL3N1Yi1jbGFzc2VkLCBiZWNhdXNlIG5hdGl2ZSBlbGVtZW50cyBjYW5ub3QgYmVcbiAqIGV4dGVuZGVkIHRvZGF5IGFjcm9zcyBicm93c2Vycy4gU3VwcG9ydCBmb3IgZXh0ZW5kaW5nIGFzeW5jIGxvYWRlZCB2aWRlb1xuICogbGlrZSBBUEkncy4gZS5nLiB2aWRlbyBwbGF5ZXJzLlxuICovXG5cbi8vIFRoZSBvbmV2ZW50IGxpa2UgcHJvcHMgYXJlIHdlaXJkbHkgc2V0IG9uIHRoZSBIVE1MRWxlbWVudCBwcm90b3R5cGUgd2l0aCBvdGhlclxuLy8gZ2VuZXJpYyBldmVudHMgbWFraW5nIGl0IGltcG9zc2libGUgdG8gcGljayB0aGVzZSBzcGVjaWZpYyB0byBIVE1MTWVkaWFFbGVtZW50LlxuZXhwb3J0IGNvbnN0IEV2ZW50cyA9IFtcbiAgJ2Fib3J0JyxcbiAgJ2NhbnBsYXknLFxuICAnY2FucGxheXRocm91Z2gnLFxuICAnZHVyYXRpb25jaGFuZ2UnLFxuICAnZW1wdGllZCcsXG4gICdlbmNyeXB0ZWQnLFxuICAnZW5kZWQnLFxuICAnZXJyb3InLFxuICAnbG9hZGVkZGF0YScsXG4gICdsb2FkZWRtZXRhZGF0YScsXG4gICdsb2Fkc3RhcnQnLFxuICAncGF1c2UnLFxuICAncGxheScsXG4gICdwbGF5aW5nJyxcbiAgJ3Byb2dyZXNzJyxcbiAgJ3JhdGVjaGFuZ2UnLFxuICAnc2Vla2VkJyxcbiAgJ3NlZWtpbmcnLFxuICAnc3RhbGxlZCcsXG4gICdzdXNwZW5kJyxcbiAgJ3RpbWV1cGRhdGUnLFxuICAndm9sdW1lY2hhbmdlJyxcbiAgJ3dhaXRpbmcnLFxuICAnd2FpdGluZ2ZvcmtleScsXG4gICdyZXNpemUnLFxuICAnZW50ZXJwaWN0dXJlaW5waWN0dXJlJyxcbiAgJ2xlYXZlcGljdHVyZWlucGljdHVyZScsXG4gICd3ZWJraXRiZWdpbmZ1bGxzY3JlZW4nLFxuICAnd2Via2l0ZW5kZnVsbHNjcmVlbicsXG4gICd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsXG5dO1xuXG5leHBvcnQgY29uc3QgdGVtcGxhdGUgPSBnbG9iYWxUaGlzLmRvY3VtZW50Py5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuXG5pZiAodGVtcGxhdGUpIHtcbiAgdGVtcGxhdGUuaW5uZXJIVE1MID0gLypodG1sKi9gXG4gICAgPHN0eWxlPlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICB2aWRlbyxcbiAgICAgIGF1ZGlvIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8c2xvdD48L3Nsb3Q+XG4gIGA7XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2p1c3RpbmZhZ25hbmkuY29tLzIwMTUvMTIvMjEvcmVhbC1taXhpbnMtd2l0aC1qYXZhc2NyaXB0LWNsYXNzZXMvXG4gKi9cbmV4cG9ydCBjb25zdCBTdXBlck1lZGlhTWl4aW4gPSAoc3VwZXJjbGFzcywgeyB0YWcsIGlzIH0pID0+IHtcblxuICBjb25zdCBuYXRpdmVFbFRlc3QgPSBnbG9iYWxUaGlzLmRvY3VtZW50Py5jcmVhdGVFbGVtZW50KHRhZywgeyBpcyB9KTtcbiAgY29uc3QgbmF0aXZlRWxQcm9wcyA9IG5hdGl2ZUVsVGVzdCA/IGdldE5hdGl2ZUVsUHJvcHMobmF0aXZlRWxUZXN0KSA6IFtdO1xuXG4gIHJldHVybiBjbGFzcyBTdXBlck1lZGlhIGV4dGVuZHMgc3VwZXJjbGFzcyB7XG4gICAgc3RhdGljIEV2ZW50cyA9IEV2ZW50cztcbiAgICBzdGF0aWMgdGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICBzdGF0aWMgc2tpcEF0dHJpYnV0ZXMgPSBbXTtcbiAgICBzdGF0aWMgI2lzRGVmaW5lZDtcblxuICAgIHN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCkge1xuICAgICAgU3VwZXJNZWRpYS4jZGVmaW5lKCk7XG5cbiAgICAgIC8vIEluY2x1ZGUgYW55IGF0dHJpYnV0ZXMgZnJvbSB0aGUgY3VzdG9tIGJ1aWx0LWluLlxuICAgICAgY29uc3QgbmF0QXR0cnMgPSBuYXRpdmVFbFRlc3Q/LmNvbnN0cnVjdG9yPy5vYnNlcnZlZEF0dHJpYnV0ZXMgPz8gW107XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLm5hdEF0dHJzLFxuICAgICAgICAnYXV0b3BpY3R1cmVpbnBpY3R1cmUnLFxuICAgICAgICAnZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUnLFxuICAgICAgICAnZGlzYWJsZXJlbW90ZXBsYXliYWNrJyxcbiAgICAgICAgJ2F1dG9wbGF5JyxcbiAgICAgICAgJ2NvbnRyb2xzJyxcbiAgICAgICAgJ2NvbnRyb2xzbGlzdCcsXG4gICAgICAgICdjcm9zc29yaWdpbicsXG4gICAgICAgICdsb29wJyxcbiAgICAgICAgJ211dGVkJyxcbiAgICAgICAgJ3BsYXlzaW5saW5lJyxcbiAgICAgICAgJ3Bvc3RlcicsXG4gICAgICAgICdwcmVsb2FkJyxcbiAgICAgICAgJ3NyYycsXG4gICAgICBdO1xuICAgIH1cblxuICAgIHN0YXRpYyAjZGVmaW5lKCkge1xuICAgICAgaWYgKHRoaXMuI2lzRGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy4jaXNEZWZpbmVkID0gdHJ1ZTtcblxuICAgICAgY29uc3QgcHJvcHNUb0F0dHJzID0gbmV3IFNldCh0aGlzLm9ic2VydmVkQXR0cmlidXRlcyk7XG4gICAgICAvLyBkZWZhdWx0TXV0ZWQgbWFwcyB0byB0aGUgbXV0ZWQgYXR0cmlidXRlLCBoYW5kbGVkIG1hbnVhbGx5IGJlbG93LlxuICAgICAgcHJvcHNUb0F0dHJzLmRlbGV0ZSgnbXV0ZWQnKTtcblxuICAgICAgLy8gUGFzc3Rocm91Z2ggbmF0aXZlIGVsIGZ1bmN0aW9ucyBmcm9tIHRoZSBjdXN0b20gZWwgdG8gdGhlIG5hdGl2ZSBlbFxuICAgICAgZm9yIChsZXQgcHJvcCBvZiBuYXRpdmVFbFByb3BzKSB7XG4gICAgICAgIGlmIChwcm9wIGluIHRoaXMucHJvdG90eXBlKSBjb250aW51ZTtcblxuICAgICAgICBjb25zdCB0eXBlID0gdHlwZW9mIG5hdGl2ZUVsVGVzdFtwcm9wXTtcbiAgICAgICAgaWYgKHR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIC8vIEZ1bmN0aW9uXG4gICAgICAgICAgdGhpcy5wcm90b3R5cGVbcHJvcF0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgdGhpcy4jaW5pdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBmbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY2FsbCkgcmV0dXJuIHRoaXMuY2FsbChwcm9wLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxbcHJvcF0uYXBwbHkodGhpcy5uYXRpdmVFbCwgYXJncyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5sb2FkQ29tcGxldGUgJiYgIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZENvbXBsZXRlLnRoZW4oZm4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBTb21lIHByb3BlcnRpZXMgbGlrZSBzcmMsIHByZWxvYWQsIGRlZmF1bHRNdXRlZCBhcmUgaGFuZGxlZCBtYW51YWxseS5cblxuICAgICAgICAgIC8vIEdldHRlclxuICAgICAgICAgIGxldCBjb25maWcgPSB7XG4gICAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICAgIHRoaXMuI2luaXQoKTtcblxuICAgICAgICAgICAgICBsZXQgYXR0ciA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgaWYgKHByb3BzVG9BdHRycy5oYXMoYXR0cikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmdldEF0dHJpYnV0ZShhdHRyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBudWxsID8gZmFsc2UgOiB2YWwgPT09ICcnID8gdHJ1ZSA6IHZhbDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldD8uKHByb3ApID8/IHRoaXMubmF0aXZlRWw/Lltwcm9wXSA/PyB0aGlzLiNzdGFuZGluRWxbcHJvcF07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAocHJvcCAhPT0gcHJvcC50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICAgICAgICAvLyBTZXR0ZXIgKG5vdCBhIENPTlNUQU5UKVxuICAgICAgICAgICAgY29uZmlnLnNldCA9IGFzeW5jIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgICAgdGhpcy4jaW5pdCgpO1xuXG4gICAgICAgICAgICAgIGxldCBhdHRyID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBpZiAocHJvcHNUb0F0dHJzLmhhcyhhdHRyKSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IHRydWUgfHwgdmFsID09PSBmYWxzZSB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoYXR0ciwgQm9vbGVhbih2YWwpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoYXR0ciwgdmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHRoaXMubG9hZENvbXBsZXRlICYmICF0aGlzLmlzTG9hZGVkKSBhd2FpdCB0aGlzLmxvYWRDb21wbGV0ZTtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5zZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldChwcm9wLCB2YWwpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRoaXMubmF0aXZlRWxbcHJvcF0gPSB2YWw7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnByb3RvdHlwZSwgcHJvcCwgY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICNpc0luaXQ7XG4gICAgI2xvYWRDb21wbGV0ZTtcbiAgICAjaGFzTG9hZGVkID0gZmFsc2U7XG4gICAgI2lzTG9hZGVkID0gZmFsc2U7XG4gICAgI25hdGl2ZUVsO1xuICAgICNzdGFuZGluRWw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG5cbiAgICAgIGlmICghdGhpcy5zaGFkb3dSb290KSB7XG4gICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pO1xuICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kKHRoaXMuY29uc3RydWN0b3IudGVtcGxhdGUuY29udGVudC5jbG9uZU5vZGUodHJ1ZSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBhIGxvYWQgbWV0aG9kIGlzIHByb3ZpZGVkIGluIHRoZSBjaGlsZCBjbGFzcyBjcmVhdGUgYSBsb2FkIHByb21pc2UuXG4gICAgICBpZiAodGhpcy5sb2FkICE9PSBTdXBlck1lZGlhLnByb3RvdHlwZS5sb2FkKSB7XG4gICAgICAgIHRoaXMubG9hZENvbXBsZXRlID0gbmV3IFB1YmxpY1Byb21pc2UoKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQgYmVmb3JlIHRoZSBjdXN0b20gZWxlbWVudCdzIEhUTUwgaXMgcGFyc2VkXG4gICAgICAvLyBubyBhdHRyaWJ1dGVzIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjb25zdHJ1Y3RvciAoY29uc3RydWN0aW9uIHByb2Nlc3MpLlxuICAgICAgLy8gV2FpdCB1bnRpbCBpbml0aWFsaXppbmcgaW4gdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayBvclxuICAgICAgLy8gY29ubmVjdGVkQ2FsbGJhY2sgb3IgYWNjZXNzaW5nIGFueSBwcm9wZXJ0aWVzLlxuICAgIH1cblxuICAgIGdldCBsb2FkQ29tcGxldGUoKSB7XG4gICAgICByZXR1cm4gdGhpcy4jbG9hZENvbXBsZXRlO1xuICAgIH1cblxuICAgIHNldCBsb2FkQ29tcGxldGUocHJvbWlzZSkge1xuICAgICAgdGhpcy4jaXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuI2xvYWRDb21wbGV0ZSA9IHByb21pc2U7XG4gICAgICBwcm9taXNlPy50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy4jaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzTG9hZGVkKCkge1xuICAgICAgcmV0dXJuIHRoaXMuI2lzTG9hZGVkO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVFbCgpIHtcbiAgICAgIHJldHVybiB0aGlzLiNuYXRpdmVFbFxuICAgICAgICA/PyB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcih0YWcpXG4gICAgICAgID8/IHRoaXMucXVlcnlTZWxlY3Rvcih0YWcpO1xuICAgIH1cblxuICAgIHNldCBuYXRpdmVFbCh2YWwpIHtcbiAgICAgIHRoaXMuI25hdGl2ZUVsID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0TXV0ZWQoKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ211dGVkJyk7XG4gICAgfVxuXG4gICAgc2V0IGRlZmF1bHRNdXRlZCh2YWwpIHtcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdtdXRlZCcsIEJvb2xlYW4odmFsKSk7XG4gICAgfVxuXG4gICAgZ2V0IHNyYygpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnc3JjJyk7XG4gICAgfVxuXG4gICAgc2V0IHNyYyh2YWwpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdzcmMnLCBgJHt2YWx9YCk7XG4gICAgfVxuXG4gICAgZ2V0IHByZWxvYWQoKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ByZWxvYWQnKSA/PyB0aGlzLm5hdGl2ZUVsPy5wcmVsb2FkO1xuICAgIH1cblxuICAgIHNldCBwcmVsb2FkKHZhbCkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ByZWxvYWQnLCBgJHt2YWx9YCk7XG4gICAgfVxuXG4gICAgYXN5bmMgI2luaXQoKSB7XG4gICAgICBpZiAodGhpcy4jaXNJbml0KSByZXR1cm47XG4gICAgICB0aGlzLiNpc0luaXQgPSB0cnVlO1xuXG4gICAgICB0aGlzLiNpbml0U3RhbmRpbkVsKCk7XG4gICAgICB0aGlzLiNpbml0TmF0aXZlRWwoKTtcblxuICAgICAgZm9yIChsZXQgcHJvcCBvZiBuYXRpdmVFbFByb3BzKVxuICAgICAgICB0aGlzLiN1cGdyYWRlUHJvcGVydHkocHJvcCk7XG5cbiAgICAgIC8vIEtlZXAgc29tZSBuYXRpdmUgY2hpbGQgZWxlbWVudHMgbGlrZSB0cmFjayBhbmQgc291cmNlIGluIHN5bmMuXG4gICAgICBjb25zdCBjaGlsZE1hcCA9IG5ldyBNYXAoKTtcbiAgICAgIC8vIEFuIHVubmFtZWQgPHNsb3Q+IHdpbGwgYmUgZmlsbGVkIHdpdGggYWxsIG9mIHRoZSBjdXN0b20gZWxlbWVudCdzXG4gICAgICAvLyB0b3AtbGV2ZWwgY2hpbGQgbm9kZXMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgc2xvdCBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCBzbG90RWwgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgc2xvdEVsPy5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCByZW1vdmVOYXRpdmVDaGlsZHJlbiA9IG5ldyBNYXAoY2hpbGRNYXApO1xuICAgICAgICBzbG90RWxcbiAgICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgICAgLmZpbHRlcigoZWwpID0+IFsndHJhY2snLCAnc291cmNlJ10uaW5jbHVkZXMoZWwubG9jYWxOYW1lKSlcbiAgICAgICAgICAuZm9yRWFjaChhc3luYyAoZWwpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBzb3VyY2Ugb3IgdHJhY2sgaXMgc3RpbGwgaW4gdGhlIGFzc2lnbmVkIGVsZW1lbnRzIGtlZXAgaXQuXG4gICAgICAgICAgICByZW1vdmVOYXRpdmVDaGlsZHJlbi5kZWxldGUoZWwpO1xuICAgICAgICAgICAgLy8gUmUtdXNlIGNsb25lcyBpZiBwb3NzaWJsZS5cbiAgICAgICAgICAgIGxldCBjbG9uZSA9IGNoaWxkTWFwLmdldChlbCk7XG4gICAgICAgICAgICBpZiAoIWNsb25lKSB7XG4gICAgICAgICAgICAgIGNsb25lID0gZWwuY2xvbmVOb2RlKCk7XG4gICAgICAgICAgICAgIGNoaWxkTWFwLnNldChlbCwgY2xvbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubG9hZENvbXBsZXRlICYmICF0aGlzLmlzTG9hZGVkKSBhd2FpdCB0aGlzLmxvYWRDb21wbGV0ZTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWwuYXBwZW5kPy4oY2xvbmUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICByZW1vdmVOYXRpdmVDaGlsZHJlbi5mb3JFYWNoKChlbCkgPT4gZWwucmVtb3ZlKCkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFRoZSB2aWRlbyBldmVudHMgYXJlIGRpc3BhdGNoZWQgb24gdGhlIFN1cGVyTWVkaWFFbGVtZW50IGluc3RhbmNlLlxuICAgICAgLy8gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhZGQgZXZlbnQgbGlzdGVuZXJzIGJlZm9yZSB0aGUgZWxlbWVudCBpcyB1cGdyYWRlZC5cbiAgICAgIGZvciAobGV0IHR5cGUgb2YgdGhpcy5jb25zdHJ1Y3Rvci5FdmVudHMpIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXI/Lih0eXBlLCAoZXZ0KSA9PiB7XG4gICAgICAgICAgaWYgKGV2dC50YXJnZXQgIT09IHRoaXMubmF0aXZlRWwpIHJldHVybjtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KGV2dC50eXBlLCB7IGRldGFpbDogZXZ0LmRldGFpbCB9KSk7XG4gICAgICAgIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICN1cGdyYWRlUHJvcGVydHkocHJvcCkge1xuICAgICAgLy8gU2V0cyBwcm9wZXJ0aWVzIHRoYXQgYXJlIHNldCBiZWZvcmUgdGhlIGN1c3RvbSBlbGVtZW50IGlzIHVwZ3JhZGVkLlxuICAgICAgLy8gaHR0cHM6Ly93ZWIuZGV2L2N1c3RvbS1lbGVtZW50cy1iZXN0LXByYWN0aWNlcy8jbWFrZS1wcm9wZXJ0aWVzLWxhenlcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcywgcHJvcCkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzW3Byb3BdO1xuICAgICAgICAvLyBEZWxldGUgdGhlIHNldCBwcm9wZXJ0eSBmcm9tIHRoaXMgaW5zdGFuY2UuXG4gICAgICAgIGRlbGV0ZSB0aGlzW3Byb3BdO1xuICAgICAgICAvLyBTZXQgdGhlIHZhbHVlIGFnYWluIHZpYSB0aGUgKHByb3RvdHlwZSkgc2V0dGVyIG9uIHRoaXMgY2xhc3MuXG4gICAgICAgIHRoaXNbcHJvcF0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAjaW5pdFN0YW5kaW5FbCgpIHtcbiAgICAgIC8vIE5laXRoZXIgQ2hyb21lIG9yIEZpcmVmb3ggc3VwcG9ydCBzZXR0aW5nIHRoZSBtdXRlZCBhdHRyaWJ1dGVcbiAgICAgIC8vIGFmdGVyIHVzaW5nIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQuXG4gICAgICAvLyBHZXQgYXJvdW5kIHRoaXMgYnkgc2V0dGluZyB0aGUgbXV0ZWQgcHJvcGVydHkgbWFudWFsbHkuXG4gICAgICBjb25zdCBkdW1teUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcsIHsgaXMgfSk7XG4gICAgICBkdW1teUVsLm11dGVkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ211dGVkJyk7XG5cbiAgICAgIGZvciAobGV0IHsgbmFtZSwgdmFsdWUgfSBvZiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgZHVtbXlFbC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNzdGFuZGluRWwgPSB7fTtcbiAgICAgIGZvciAobGV0IG5hbWUgb2YgZ2V0TmF0aXZlRWxQcm9wcyhkdW1teUVsKSkge1xuICAgICAgICB0aGlzLiNzdGFuZGluRWxbbmFtZV0gPSBkdW1teUVsW25hbWVdO1xuICAgICAgfVxuXG4gICAgICAvLyB1bmxvYWQgZHVtbXkgdmlkZW8gZWxlbWVudFxuICAgICAgZHVtbXlFbC5yZW1vdmVBdHRyaWJ1dGUoJ3NyYycpO1xuICAgICAgZHVtbXlFbC5sb2FkKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgI2luaXROYXRpdmVFbCgpIHtcbiAgICAgIGlmICh0aGlzLmxvYWRDb21wbGV0ZSAmJiAhdGhpcy5pc0xvYWRlZCkgYXdhaXQgdGhpcy5sb2FkQ29tcGxldGU7XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIG5vIG5hdGl2ZUVsIGJ5IG5vdywgY3JlYXRlIGl0IG91ciBibG9vZHkgc2VsdmVzLlxuICAgICAgaWYgKCF0aGlzLm5hdGl2ZUVsKSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcsIHsgaXMgfSk7XG4gICAgICAgIG5hdGl2ZUVsLnBhcnQgPSB0YWc7XG4gICAgICAgIHRoaXMuc2hhZG93Um9vdC5hcHBlbmQobmF0aXZlRWwpO1xuICAgICAgfVxuXG4gICAgICAvLyBOZWl0aGVyIENocm9tZSBvciBGaXJlZm94IHN1cHBvcnQgc2V0dGluZyB0aGUgbXV0ZWQgYXR0cmlidXRlXG4gICAgICAvLyBhZnRlciB1c2luZyBkb2N1bWVudC5jcmVhdGVFbGVtZW50LlxuICAgICAgLy8gR2V0IGFyb3VuZCB0aGlzIGJ5IHNldHRpbmcgdGhlIG11dGVkIHByb3BlcnR5IG1hbnVhbGx5LlxuICAgICAgdGhpcy5uYXRpdmVFbC5tdXRlZCA9IHRoaXMuaGFzQXR0cmlidXRlKCdtdXRlZCcpO1xuICAgIH1cblxuICAgIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhdHRyTmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSB7XG4gICAgICAvLyBJbml0aWFsaXplIHJpZ2h0IGFmdGVyIGNvbnN0cnVjdGlvbiB3aGVuIHRoZSBhdHRyaWJ1dGVzIGJlY29tZSBhdmFpbGFibGUuXG4gICAgICB0aGlzLiNpbml0KCk7XG5cbiAgICAgIC8vIE9ubHkgY2FsbCBsb2FkU3JjIHdoZW4gdGhlIHN1cGVyIGNsYXNzIGhhcyBhIGxvYWQgbWV0aG9kLlxuICAgICAgaWYgKGF0dHJOYW1lID09PSAnc3JjJyAmJiB0aGlzLmxvYWQgIT09IFN1cGVyTWVkaWEucHJvdG90eXBlLmxvYWQpIHtcbiAgICAgICAgdGhpcy4jbG9hZFNyYygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNmb3J3YXJkQXR0cmlidXRlKGF0dHJOYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGFzeW5jICNsb2FkU3JjKCkge1xuICAgICAgLy8gVGhlIGZpcnN0IHRpbWUgd2UgdXNlIHRoZSBQcm9taXNlIGNyZWF0ZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgaWYgKHRoaXMuI2hhc0xvYWRlZCkgdGhpcy5sb2FkQ29tcGxldGUgPSBuZXcgUHVibGljUHJvbWlzZSgpO1xuICAgICAgdGhpcy4jaGFzTG9hZGVkID0gdHJ1ZTtcblxuICAgICAgLy8gV2FpdCAxIHRpY2sgdG8gYWxsb3cgb3RoZXIgYXR0cmlidXRlcyB0byBiZSBzZXQuXG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuXG4gICAgICB0aGlzLmxvYWRDb21wbGV0ZT8ucmVzb2x2ZSgpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkQ29tcGxldGU7XG4gICAgfVxuXG4gICAgYXN5bmMgI2ZvcndhcmRBdHRyaWJ1dGUoYXR0ck5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMubG9hZENvbXBsZXRlICYmICF0aGlzLmlzTG9hZGVkKSBhd2FpdCB0aGlzLmxvYWRDb21wbGV0ZTtcblxuICAgICAgLy8gSWdub3JlIGEgZmV3IHRoYXQgZG9uJ3QgbmVlZCB0byBiZSBwYXNzZWQgJiBza2lwcGVkIGF0dHJpYnV0ZXMuXG4gICAgICAvLyBlLmcuIHNyYzogbmF0aXZlIGVsZW1lbnQgaXMgdXNpbmcgTVNFIGFuZCBoYXMgYSBibG9iIHVybCBhcyBzcmMgYXR0cmlidXRlLlxuICAgICAgaWYgKFsnaWQnLCAnY2xhc3MnLCAuLi50aGlzLmNvbnN0cnVjdG9yLnNraXBBdHRyaWJ1dGVzXS5pbmNsdWRlcyhhdHRyTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAobmV3VmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbC5yZW1vdmVBdHRyaWJ1dGU/LihhdHRyTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsLnNldEF0dHJpYnV0ZT8uKGF0dHJOYW1lLCBuZXdWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgICB0aGlzLiNpbml0KCk7XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0TmF0aXZlRWxQcm9wcyhuYXRpdmVFbFRlc3QpIHtcbiAgLy8gTWFwIGFsbCBuYXRpdmUgZWxlbWVudCBwcm9wZXJ0aWVzIHRvIHRoZSBjdXN0b20gZWxlbWVudFxuICAvLyBzbyB0aGF0IHRoZXkncmUgYXBwbGllZCB0byB0aGUgbmF0aXZlIGVsZW1lbnQuXG4gIC8vIFNraXBwaW5nIEhUTUxFbGVtZW50IGJlY2F1c2Ugb2YgdGhpbmdzIGxpa2UgXCJhdHRhY2hTaGFkb3dcIlxuICAvLyBjYXVzaW5nIGlzc3Vlcy4gTW9zdCBvZiB0aG9zZSBwcm9wcyBzdGlsbCBuZWVkIHRvIGFwcGx5IHRvXG4gIC8vIHRoZSBjdXN0b20gZWxlbWVudC5cbiAgbGV0IG5hdGl2ZUVsUHJvcHMgPSBbXTtcblxuICAvLyBXYWxrIHRoZSBwcm90b3R5cGUgY2hhaW4gdXAgdG8gSFRNTEVsZW1lbnQuXG4gIC8vIFRoaXMgd2lsbCBncmFiIGFsbCBzdXBlciBjbGFzcyBwcm9wcyBpbiBiZXR3ZWVuLlxuICAvLyBpLmUuIFZpZGVvRWxlbWVudCBhbmQgTWVkaWFFbGVtZW50XG4gIGZvciAoXG4gICAgbGV0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5hdGl2ZUVsVGVzdCk7XG4gICAgcHJvdG8gJiYgcHJvdG8gIT09IEhUTUxFbGVtZW50LnByb3RvdHlwZTtcbiAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90bylcbiAgKSB7XG4gICAgbmF0aXZlRWxQcm9wcy5wdXNoKC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvKSk7XG4gIH1cblxuICByZXR1cm4gbmF0aXZlRWxQcm9wcztcbn1cblxuLyoqXG4gKiBBIHV0aWxpdHkgdG8gY3JlYXRlIFByb21pc2VzIHdpdGggY29udmVuaWVudCBwdWJsaWMgcmVzb2x2ZSBhbmQgcmVqZWN0IG1ldGhvZHMuXG4gKiBAcmV0dXJuIHtQcm9taXNlfVxuICovXG5jbGFzcyBQdWJsaWNQcm9taXNlIGV4dGVuZHMgUHJvbWlzZSB7XG4gIGNvbnN0cnVjdG9yKGV4ZWN1dG9yID0gKCkgPT4ge30pIHtcbiAgICBsZXQgcmVzLCByZWo7XG4gICAgc3VwZXIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgZXhlY3V0b3IocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgIHJlcyA9IHJlc29sdmU7XG4gICAgICByZWogPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5yZXNvbHZlID0gcmVzO1xuICAgIHRoaXMucmVqZWN0ID0gcmVqO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBTdXBlclZpZGVvRWxlbWVudCA9IGdsb2JhbFRoaXMuZG9jdW1lbnQgPyBTdXBlck1lZGlhTWl4aW4oSFRNTEVsZW1lbnQsIHsgdGFnOiAndmlkZW8nIH0pIDogY2xhc3Mge307XG5cbmV4cG9ydCBjb25zdCBTdXBlckF1ZGlvRWxlbWVudCA9IGdsb2JhbFRoaXMuZG9jdW1lbnQgPyBTdXBlck1lZGlhTWl4aW4oSFRNTEVsZW1lbnQsIHsgdGFnOiAnYXVkaW8nIH0pIDogY2xhc3Mge307XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/super-media-element/super-media-element.js\n\n}");
|
|
20
|
-
|
|
21
|
-
/***/ }),
|
|
22
|
-
|
|
23
|
-
/***/ "./node_modules/wistia-video-element/dist/react.js":
|
|
24
|
-
/*!*********************************************************!*\
|
|
25
|
-
!*** ./node_modules/wistia-video-element/dist/react.js ***!
|
|
26
|
-
\*********************************************************/
|
|
27
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
28
|
-
|
|
29
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ react_default)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _wistia_video_element_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wistia-video-element.js */ \"./node_modules/wistia-video-element/dist/wistia-video-element.js\");\n\"use client\";\n\n// dist/react.ts\n\n\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n }\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n });\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: react__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n tagName: \"wistia-video\",\n elementClass: _wistia_video_element_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});\n\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvd2lzdGlhLXZpZGVvLWVsZW1lbnQvZGlzdC9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9naG9zdG9zLy4vbm9kZV9tb2R1bGVzL3dpc3RpYS12aWRlby1lbGVtZW50L2Rpc3QvcmVhY3QuanM/Y2U4MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuLy8gZGlzdC9yZWFjdC50c1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEN1c3RvbU1lZGlhRWxlbWVudCBmcm9tIFwiLi93aXN0aWEtdmlkZW8tZWxlbWVudC5qc1wiO1xuXG4vLyAuLi8uLi9ub2RlX21vZHVsZXMvY2UtbGEtcmVhY3QvZGlzdC9jZS1sYS1yZWFjdC5qc1xudmFyIHJlc2VydmVkUmVhY3RQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgXCJzdHlsZVwiLFxuICBcImNoaWxkcmVuXCIsXG4gIFwicmVmXCIsXG4gIFwia2V5XCIsXG4gIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIsXG4gIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIsXG4gIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIlxuXSk7XG52YXIgcmVhY3RQcm9wVG9BdHRyTmFtZU1hcCA9IHtcbiAgY2xhc3NOYW1lOiBcImNsYXNzXCIsXG4gIGh0bWxGb3I6IFwiZm9yXCJcbn07XG5mdW5jdGlvbiBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lKHByb3BOYW1lKSB7XG4gIHJldHVybiBwcm9wTmFtZS50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWUocHJvcFZhbHVlKSB7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHByb3BWYWx1ZSA/IFwiXCIgOiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcIm9iamVjdFwiICYmIHByb3BWYWx1ZSAhPT0gbnVsbCkgcmV0dXJuIHZvaWQgMDtcbiAgcmV0dXJuIHByb3BWYWx1ZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCh7XG4gIHJlYWN0OiBSZWFjdDIsXG4gIHRhZ05hbWUsXG4gIGVsZW1lbnRDbGFzcyxcbiAgZXZlbnRzLFxuICBkaXNwbGF5TmFtZSxcbiAgZGVmYXVsdFByb3BzLFxuICB0b0F0dHJpYnV0ZU5hbWUgPSBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lLFxuICB0b0F0dHJpYnV0ZVZhbHVlID0gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWVcbn0pIHtcbiAgY29uc3QgSVNfUkVBQ1RfMTlfT1JfTkVXRVIgPSBOdW1iZXIucGFyc2VJbnQoUmVhY3QyLnZlcnNpb24pID49IDE5O1xuICBjb25zdCBSZWFjdENvbXBvbmVudCA9IFJlYWN0Mi5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBlbGVtZW50UmVmID0gUmVhY3QyLnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2RWxlbVByb3BzUmVmID0gUmVhY3QyLnVzZVJlZigvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTtcbiAgICBjb25zdCBldmVudFByb3BzID0ge307XG4gICAgY29uc3QgYXR0cnMgPSB7fTtcbiAgICBjb25zdCByZWFjdFByb3BzID0ge307XG4gICAgY29uc3QgZWxlbWVudFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgICBpZiAocmVzZXJ2ZWRSZWFjdFByb3BzLmhhcyhrKSkge1xuICAgICAgICByZWFjdFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IHRvQXR0cmlidXRlTmFtZShyZWFjdFByb3BUb0F0dHJOYW1lTWFwW2tdID8/IGspO1xuICAgICAgaWYgKGsgaW4gZWxlbWVudENsYXNzLnByb3RvdHlwZSAmJiAhKGsgaW4gKCgoX2EgPSBnbG9iYWxUaGlzLkhUTUxFbGVtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EucHJvdG90eXBlKSA/PyB7fSkpICYmICEoKF9iID0gZWxlbWVudENsYXNzLm9ic2VydmVkQXR0cmlidXRlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnNvbWUoKGF0dHIpID0+IGF0dHIgPT09IGF0dHJOYW1lKSkpIHtcbiAgICAgICAgZWxlbWVudFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoay5zdGFydHNXaXRoKFwib25cIikpIHtcbiAgICAgICAgZXZlbnRQcm9wc1trXSA9IHY7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYXR0clZhbHVlID0gdG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgIGlmIChhdHRyTmFtZSAmJiBhdHRyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBhdHRyc1thdHRyTmFtZV0gPSBTdHJpbmcoYXR0clZhbHVlKTtcbiAgICAgICAgaWYgKCFJU19SRUFDVF8xOV9PUl9ORVdFUikge1xuICAgICAgICAgIHJlYWN0UHJvcHNbYXR0ck5hbWVdID0gYXR0clZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYXR0ck5hbWUgJiYgSVNfUkVBQ1RfMTlfT1JfTkVXRVIpIHtcbiAgICAgICAgY29uc3QgYXR0clZhbHVlRnJvbURlZmF1bHQgPSBkZWZhdWx0VG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgICAgaWYgKGF0dHJWYWx1ZSAhPT0gYXR0clZhbHVlRnJvbURlZmF1bHQpIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IHY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gZXZlbnRQcm9wcykge1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IGV2ZW50UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCB1c2VDYXB0dXJlID0gcHJvcE5hbWUuZW5kc1dpdGgoXCJDYXB0dXJlXCIpO1xuICAgICAgICBjb25zdCBldmVudE5hbWUgPSAoKGV2ZW50cyA9PSBudWxsID8gdm9pZCAwIDogZXZlbnRzW3Byb3BOYW1lXSkgPz8gcHJvcE5hbWUuc2xpY2UoMikudG9Mb3dlckNhc2UoKSkuc2xpY2UoXG4gICAgICAgICAgMCxcbiAgICAgICAgICB1c2VDYXB0dXJlID8gLTcgOiB2b2lkIDBcbiAgICAgICAgKTtcbiAgICAgICAgUmVhY3QyLnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnRUYXJnZXQgPSBlbGVtZW50UmVmID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgaWYgKCFldmVudFRhcmdldCB8fCB0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuO1xuICAgICAgICAgIGV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSwgW2VsZW1lbnRSZWYgPT0gbnVsbCA/IHZvaWQgMCA6IGVsZW1lbnRSZWYuY3VycmVudCwgY2FsbGJhY2tdKTtcbiAgICAgIH1cbiAgICAgIFJlYWN0Mi51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudFJlZi5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0VsZW1Qcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVsZW1lbnRQcm9wcykge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgICAgcHJldkVsZW1Qcm9wc1JlZi5jdXJyZW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgIG5ld0VsZW1Qcm9wcy5zZXQoa2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBfdmFsdWVdIG9mIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCkge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCB2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCA9IG5ld0VsZW1Qcm9wcztcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKSAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnMpKSB7XG4gICAgICBjb25zdCB7IG1vZGUsIGRlbGVnYXRlc0ZvY3VzIH0gPSBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnM7XG4gICAgICBjb25zdCB0ZW1wbGF0ZVNoYWRvd1Jvb3QgPSBSZWFjdDIuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIsIHtcbiAgICAgICAgc2hhZG93cm9vdG1vZGU6IG1vZGUsXG4gICAgICAgIHNoYWRvd3Jvb3RkZWxlZ2F0ZXNmb2N1czogZGVsZWdhdGVzRm9jdXMsXG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgX19odG1sOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKGF0dHJzLCBwcm9wcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZWFjdFByb3BzLmNoaWxkcmVuID0gW3RlbXBsYXRlU2hhZG93Um9vdCwgcmVhY3RQcm9wcy5jaGlsZHJlbl07XG4gICAgfVxuICAgIHJldHVybiBSZWFjdDIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAuLi5yZWFjdFByb3BzLFxuICAgICAgcmVmOiBSZWFjdDIudXNlQ2FsbGJhY2soXG4gICAgICAgIChub2RlKSA9PiB7XG4gICAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtyZWZdXG4gICAgICApXG4gICAgfSk7XG4gIH0pO1xuICBSZWFjdENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lID8/IGVsZW1lbnRDbGFzcy5uYW1lO1xuICByZXR1cm4gUmVhY3RDb21wb25lbnQ7XG59XG5mdW5jdGlvbiBzZXRQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgX2E7XG4gIG5vZGVbbmFtZV0gPSB2YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwgJiYgbmFtZSBpbiAoKChfYSA9IGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wcm90b3R5cGUpID8/IHt9KSkge1xuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICB9XG59XG5cbi8vIGRpc3QvcmVhY3QudHNcbnZhciByZWFjdF9kZWZhdWx0ID0gY3JlYXRlQ29tcG9uZW50KHtcbiAgcmVhY3Q6IFJlYWN0LFxuICB0YWdOYW1lOiBcIndpc3RpYS12aWRlb1wiLFxuICBlbGVtZW50Q2xhc3M6IEN1c3RvbU1lZGlhRWxlbWVudFxufSk7XG5leHBvcnQge1xuICByZWFjdF9kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4vKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOlxuXG5jZS1sYS1yZWFjdC9kaXN0L2NlLWxhLXJlYWN0LmpzOlxuICAoKipcbiAgICogQGxpY2Vuc2VcbiAgICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQ1xuICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gICAqXG4gICAqIE1vZGlmaWVkIHZlcnNpb24gb2YgYEBsaXQvcmVhY3RgIGZvciB2YW5pbGxhIGN1c3RvbSBlbGVtZW50cyB3aXRoIHN1cHBvcnQgZm9yIFNTUi5cbiAgICopXG4qL1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/wistia-video-element/dist/react.js\n\n}");
|
|
30
|
-
|
|
31
|
-
/***/ }),
|
|
32
|
-
|
|
33
|
-
/***/ "./node_modules/wistia-video-element/dist/wistia-video-element.js":
|
|
34
|
-
/*!************************************************************************!*\
|
|
35
|
-
!*** ./node_modules/wistia-video-element/dist/wistia-video-element.js ***!
|
|
36
|
-
\************************************************************************/
|
|
37
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
38
|
-
|
|
39
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ wistia_video_element_default),\n/* harmony export */ uniqueId: () => (/* binding */ uniqueId)\n/* harmony export */ });\n/* harmony import */ var super_media_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! super-media-element */ \"./node_modules/super-media-element/super-media-element.js\");\nvar _a, _b;\n\nconst templateLightDOM = (_a = globalThis.document) == null ? void 0 : _a.createElement(\"template\");\nif (templateLightDOM) {\n templateLightDOM.innerHTML = /*html*/\n `\n <div class=\"wistia_embed\"></div>\n `;\n}\nconst templateShadowDOM = (_b = globalThis.document) == null ? void 0 : _b.createElement(\"template\");\nif (templateShadowDOM) {\n templateShadowDOM.innerHTML = /*html*/\n `\n <style>\n :host {\n display: inline-block;\n min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n ::slotted(.wistia_embed) {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\nclass WistiaVideoElement extends super_media_element__WEBPACK_IMPORTED_MODULE_0__.SuperVideoElement {\n static template = templateShadowDOM;\n static skipAttributes = [\"src\"];\n get nativeEl() {\n var _a2;\n return ((_a2 = this.api) == null ? void 0 : _a2.elem()) ?? this.querySelector(\"video\");\n }\n async load() {\n var _a2;\n (_a2 = this.querySelector(\".wistia_embed\")) == null ? void 0 : _a2.remove();\n if (!this.src) {\n return;\n }\n await new Promise((resolve) => setTimeout(resolve, 50));\n const MATCH_SRC = /(?:wistia\\.com|wi\\.st)\\/(?:medias|embed)\\/(.*)$/i;\n const id = this.src.match(MATCH_SRC)[1];\n const options = {\n autoPlay: this.autoplay,\n preload: this.preload ?? \"metadata\",\n playsinline: this.playsInline,\n endVideoBehavior: this.loop && \"loop\",\n chromeless: !this.controls,\n playButton: this.controls,\n muted: this.defaultMuted\n };\n this.append(templateLightDOM.content.cloneNode(true));\n const div = this.querySelector(\".wistia_embed\");\n if (!div.id) div.id = uniqueId(id);\n div.classList.add(`wistia_async_${id}`);\n const scriptUrl = \"https://fast.wistia.com/assets/external/E-v1.js\";\n await loadScript(scriptUrl, \"Wistia\");\n this.api = await new Promise((onReady) => {\n globalThis._wq.push({\n id: div.id,\n onReady,\n options\n });\n });\n }\n async attributeChangedCallback(attrName, oldValue, newValue) {\n if (attrName === \"controls\") {\n await this.loadComplete;\n switch (attrName) {\n case \"controls\":\n this.api.bigPlayButtonEnabled(this.controls);\n this.controls ? this.api.releaseChromeless() : this.api.requestChromeless();\n break;\n }\n return;\n }\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n // Override some methods w/ defaults if the video element is not ready yet when called.\n // Some methods require the Wistia API instead of the native video element API.\n get duration() {\n var _a2;\n return (_a2 = this.api) == null ? void 0 : _a2.duration();\n }\n play() {\n this.api.play();\n return new Promise((resolve) => this.addEventListener(\"playing\", resolve));\n }\n}\nconst loadScriptCache = {};\nasync function loadScript(src, globalName) {\n if (!globalName) return import(\n /* webpackIgnore: true */\n src\n );\n if (loadScriptCache[src]) return loadScriptCache[src];\n if (self[globalName]) return self[globalName];\n return loadScriptCache[src] = new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.defer = true;\n script.src = src;\n script.onload = () => resolve(self[globalName]);\n script.onerror = reject;\n document.head.append(script);\n });\n}\nlet idCounter = 0;\nfunction uniqueId(prefix) {\n const id = ++idCounter;\n return `${prefix}${id}`;\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"wistia-video\")) {\n globalThis.customElements.define(\"wistia-video\", WistiaVideoElement);\n}\nvar wistia_video_element_default = WistiaVideoElement;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvd2lzdGlhLXZpZGVvLWVsZW1lbnQvZGlzdC93aXN0aWEtdmlkZW8tZWxlbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ2hvc3Rvcy8uL25vZGVfbW9kdWxlcy93aXN0aWEtdmlkZW8tZWxlbWVudC9kaXN0L3dpc3RpYS12aWRlby1lbGVtZW50LmpzP2RkMjAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9hLCBfYjtcbmltcG9ydCB7IFN1cGVyVmlkZW9FbGVtZW50IH0gZnJvbSBcInN1cGVyLW1lZGlhLWVsZW1lbnRcIjtcbmNvbnN0IHRlbXBsYXRlTGlnaHRET00gPSAoX2EgPSBnbG9iYWxUaGlzLmRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpO1xuaWYgKHRlbXBsYXRlTGlnaHRET00pIHtcbiAgdGVtcGxhdGVMaWdodERPTS5pbm5lckhUTUwgPSAvKmh0bWwqL1xuICBgXG4gIDxkaXYgY2xhc3M9XCJ3aXN0aWFfZW1iZWRcIj48L2Rpdj5cbiAgYDtcbn1cbmNvbnN0IHRlbXBsYXRlU2hhZG93RE9NID0gKF9iID0gZ2xvYmFsVGhpcy5kb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKTtcbmlmICh0ZW1wbGF0ZVNoYWRvd0RPTSkge1xuICB0ZW1wbGF0ZVNoYWRvd0RPTS5pbm5lckhUTUwgPSAvKmh0bWwqL1xuICBgXG4gIDxzdHlsZT5cbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIDo6c2xvdHRlZCgud2lzdGlhX2VtYmVkKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIDwvc3R5bGU+XG4gIDxzbG90Pjwvc2xvdD5cbiAgYDtcbn1cbmNsYXNzIFdpc3RpYVZpZGVvRWxlbWVudCBleHRlbmRzIFN1cGVyVmlkZW9FbGVtZW50IHtcbiAgc3RhdGljIHRlbXBsYXRlID0gdGVtcGxhdGVTaGFkb3dET007XG4gIHN0YXRpYyBza2lwQXR0cmlidXRlcyA9IFtcInNyY1wiXTtcbiAgZ2V0IG5hdGl2ZUVsKCkge1xuICAgIHZhciBfYTI7XG4gICAgcmV0dXJuICgoX2EyID0gdGhpcy5hcGkpID09IG51bGwgPyB2b2lkIDAgOiBfYTIuZWxlbSgpKSA/PyB0aGlzLnF1ZXJ5U2VsZWN0b3IoXCJ2aWRlb1wiKTtcbiAgfVxuICBhc3luYyBsb2FkKCkge1xuICAgIHZhciBfYTI7XG4gICAgKF9hMiA9IHRoaXMucXVlcnlTZWxlY3RvcihcIi53aXN0aWFfZW1iZWRcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYTIucmVtb3ZlKCk7XG4gICAgaWYgKCF0aGlzLnNyYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpO1xuICAgIGNvbnN0IE1BVENIX1NSQyA9IC8oPzp3aXN0aWFcXC5jb218d2lcXC5zdClcXC8oPzptZWRpYXN8ZW1iZWQpXFwvKC4qKSQvaTtcbiAgICBjb25zdCBpZCA9IHRoaXMuc3JjLm1hdGNoKE1BVENIX1NSQylbMV07XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGF1dG9QbGF5OiB0aGlzLmF1dG9wbGF5LFxuICAgICAgcHJlbG9hZDogdGhpcy5wcmVsb2FkID8/IFwibWV0YWRhdGFcIixcbiAgICAgIHBsYXlzaW5saW5lOiB0aGlzLnBsYXlzSW5saW5lLFxuICAgICAgZW5kVmlkZW9CZWhhdmlvcjogdGhpcy5sb29wICYmIFwibG9vcFwiLFxuICAgICAgY2hyb21lbGVzczogIXRoaXMuY29udHJvbHMsXG4gICAgICBwbGF5QnV0dG9uOiB0aGlzLmNvbnRyb2xzLFxuICAgICAgbXV0ZWQ6IHRoaXMuZGVmYXVsdE11dGVkXG4gICAgfTtcbiAgICB0aGlzLmFwcGVuZCh0ZW1wbGF0ZUxpZ2h0RE9NLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICBjb25zdCBkaXYgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXCIud2lzdGlhX2VtYmVkXCIpO1xuICAgIGlmICghZGl2LmlkKSBkaXYuaWQgPSB1bmlxdWVJZChpZCk7XG4gICAgZGl2LmNsYXNzTGlzdC5hZGQoYHdpc3RpYV9hc3luY18ke2lkfWApO1xuICAgIGNvbnN0IHNjcmlwdFVybCA9IFwiaHR0cHM6Ly9mYXN0Lndpc3RpYS5jb20vYXNzZXRzL2V4dGVybmFsL0UtdjEuanNcIjtcbiAgICBhd2FpdCBsb2FkU2NyaXB0KHNjcmlwdFVybCwgXCJXaXN0aWFcIik7XG4gICAgdGhpcy5hcGkgPSBhd2FpdCBuZXcgUHJvbWlzZSgob25SZWFkeSkgPT4ge1xuICAgICAgZ2xvYmFsVGhpcy5fd3EucHVzaCh7XG4gICAgICAgIGlkOiBkaXYuaWQsXG4gICAgICAgIG9uUmVhZHksXG4gICAgICAgIG9wdGlvbnNcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIGFzeW5jIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhdHRyTmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSB7XG4gICAgaWYgKGF0dHJOYW1lID09PSBcImNvbnRyb2xzXCIpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZENvbXBsZXRlO1xuICAgICAgc3dpdGNoIChhdHRyTmFtZSkge1xuICAgICAgICBjYXNlIFwiY29udHJvbHNcIjpcbiAgICAgICAgICB0aGlzLmFwaS5iaWdQbGF5QnV0dG9uRW5hYmxlZCh0aGlzLmNvbnRyb2xzKTtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzID8gdGhpcy5hcGkucmVsZWFzZUNocm9tZWxlc3MoKSA6IHRoaXMuYXBpLnJlcXVlc3RDaHJvbWVsZXNzKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhdHRyTmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuICAvLyBPdmVycmlkZSBzb21lIG1ldGhvZHMgdy8gZGVmYXVsdHMgaWYgdGhlIHZpZGVvIGVsZW1lbnQgaXMgbm90IHJlYWR5IHlldCB3aGVuIGNhbGxlZC5cbiAgLy8gU29tZSBtZXRob2RzIHJlcXVpcmUgdGhlIFdpc3RpYSBBUEkgaW5zdGVhZCBvZiB0aGUgbmF0aXZlIHZpZGVvIGVsZW1lbnQgQVBJLlxuICBnZXQgZHVyYXRpb24oKSB7XG4gICAgdmFyIF9hMjtcbiAgICByZXR1cm4gKF9hMiA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EyLmR1cmF0aW9uKCk7XG4gIH1cbiAgcGxheSgpIHtcbiAgICB0aGlzLmFwaS5wbGF5KCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJwbGF5aW5nXCIsIHJlc29sdmUpKTtcbiAgfVxufVxuY29uc3QgbG9hZFNjcmlwdENhY2hlID0ge307XG5hc3luYyBmdW5jdGlvbiBsb2FkU2NyaXB0KHNyYywgZ2xvYmFsTmFtZSkge1xuICBpZiAoIWdsb2JhbE5hbWUpIHJldHVybiBpbXBvcnQoXG4gICAgLyogd2VicGFja0lnbm9yZTogdHJ1ZSAqL1xuICAgIHNyY1xuICApO1xuICBpZiAobG9hZFNjcmlwdENhY2hlW3NyY10pIHJldHVybiBsb2FkU2NyaXB0Q2FjaGVbc3JjXTtcbiAgaWYgKHNlbGZbZ2xvYmFsTmFtZV0pIHJldHVybiBzZWxmW2dsb2JhbE5hbWVdO1xuICByZXR1cm4gbG9hZFNjcmlwdENhY2hlW3NyY10gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHJlc29sdmUoc2VsZltnbG9iYWxOYW1lXSk7XG4gICAgc2NyaXB0Lm9uZXJyb3IgPSByZWplY3Q7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmQoc2NyaXB0KTtcbiAgfSk7XG59XG5sZXQgaWRDb3VudGVyID0gMDtcbmZ1bmN0aW9uIHVuaXF1ZUlkKHByZWZpeCkge1xuICBjb25zdCBpZCA9ICsraWRDb3VudGVyO1xuICByZXR1cm4gYCR7cHJlZml4fSR7aWR9YDtcbn1cbmlmIChnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzICYmICFnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzLmdldChcIndpc3RpYS12aWRlb1wiKSkge1xuICBnbG9iYWxUaGlzLmN1c3RvbUVsZW1lbnRzLmRlZmluZShcIndpc3RpYS12aWRlb1wiLCBXaXN0aWFWaWRlb0VsZW1lbnQpO1xufVxudmFyIHdpc3RpYV92aWRlb19lbGVtZW50X2RlZmF1bHQgPSBXaXN0aWFWaWRlb0VsZW1lbnQ7XG5leHBvcnQge1xuICB3aXN0aWFfdmlkZW9fZWxlbWVudF9kZWZhdWx0IGFzIGRlZmF1bHQsXG4gIHVuaXF1ZUlkXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/wistia-video-element/dist/wistia-video-element.js\n\n}");
|
|
40
|
-
|
|
41
|
-
/***/ })
|
|
42
|
-
|
|
43
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
3
|
-
* This devtool is neither made for production nor for readable output files.
|
|
4
|
-
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
5
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
6
|
-
* or disable the default devtool with "devtool: false".
|
|
7
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
8
|
-
*/
|
|
9
|
-
export const __webpack_id__ = "reactPlayerYouTube";
|
|
10
|
-
export const __webpack_ids__ = ["reactPlayerYouTube"];
|
|
11
|
-
export const __webpack_modules__ = {
|
|
12
|
-
|
|
13
|
-
/***/ "./node_modules/youtube-video-element/dist/react.js":
|
|
14
|
-
/*!**********************************************************!*\
|
|
15
|
-
!*** ./node_modules/youtube-video-element/dist/react.js ***!
|
|
16
|
-
\**********************************************************/
|
|
17
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
18
|
-
|
|
19
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ react_default)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _youtube_video_element_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./youtube-video-element.js */ \"./node_modules/youtube-video-element/dist/youtube-video-element.js\");\n\"use client\";\n\n// dist/react.ts\n\n\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n }\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n });\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: react__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n tagName: \"youtube-video\",\n elementClass: _youtube_video_element_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});\n\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMveW91dHViZS12aWRlby1lbGVtZW50L2Rpc3QvcmVhY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ2hvc3Rvcy8uL25vZGVfbW9kdWxlcy95b3V0dWJlLXZpZGVvLWVsZW1lbnQvZGlzdC9yZWFjdC5qcz9lZDRjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG4vLyBkaXN0L3JlYWN0LnRzXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ3VzdG9tTWVkaWFFbGVtZW50IGZyb20gXCIuL3lvdXR1YmUtdmlkZW8tZWxlbWVudC5qc1wiO1xuXG4vLyAuLi8uLi9ub2RlX21vZHVsZXMvY2UtbGEtcmVhY3QvZGlzdC9jZS1sYS1yZWFjdC5qc1xudmFyIHJlc2VydmVkUmVhY3RQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgXCJzdHlsZVwiLFxuICBcImNoaWxkcmVuXCIsXG4gIFwicmVmXCIsXG4gIFwia2V5XCIsXG4gIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIsXG4gIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIsXG4gIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIlxuXSk7XG52YXIgcmVhY3RQcm9wVG9BdHRyTmFtZU1hcCA9IHtcbiAgY2xhc3NOYW1lOiBcImNsYXNzXCIsXG4gIGh0bWxGb3I6IFwiZm9yXCJcbn07XG5mdW5jdGlvbiBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lKHByb3BOYW1lKSB7XG4gIHJldHVybiBwcm9wTmFtZS50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWUocHJvcFZhbHVlKSB7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImJvb2xlYW5cIikgcmV0dXJuIHByb3BWYWx1ZSA/IFwiXCIgOiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB2b2lkIDA7XG4gIGlmICh0eXBlb2YgcHJvcFZhbHVlID09PSBcIm9iamVjdFwiICYmIHByb3BWYWx1ZSAhPT0gbnVsbCkgcmV0dXJuIHZvaWQgMDtcbiAgcmV0dXJuIHByb3BWYWx1ZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCh7XG4gIHJlYWN0OiBSZWFjdDIsXG4gIHRhZ05hbWUsXG4gIGVsZW1lbnRDbGFzcyxcbiAgZXZlbnRzLFxuICBkaXNwbGF5TmFtZSxcbiAgZGVmYXVsdFByb3BzLFxuICB0b0F0dHJpYnV0ZU5hbWUgPSBkZWZhdWx0VG9BdHRyaWJ1dGVOYW1lLFxuICB0b0F0dHJpYnV0ZVZhbHVlID0gZGVmYXVsdFRvQXR0cmlidXRlVmFsdWVcbn0pIHtcbiAgY29uc3QgSVNfUkVBQ1RfMTlfT1JfTkVXRVIgPSBOdW1iZXIucGFyc2VJbnQoUmVhY3QyLnZlcnNpb24pID49IDE5O1xuICBjb25zdCBSZWFjdENvbXBvbmVudCA9IFJlYWN0Mi5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBlbGVtZW50UmVmID0gUmVhY3QyLnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2RWxlbVByb3BzUmVmID0gUmVhY3QyLnVzZVJlZigvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTtcbiAgICBjb25zdCBldmVudFByb3BzID0ge307XG4gICAgY29uc3QgYXR0cnMgPSB7fTtcbiAgICBjb25zdCByZWFjdFByb3BzID0ge307XG4gICAgY29uc3QgZWxlbWVudFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgICBpZiAocmVzZXJ2ZWRSZWFjdFByb3BzLmhhcyhrKSkge1xuICAgICAgICByZWFjdFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IHRvQXR0cmlidXRlTmFtZShyZWFjdFByb3BUb0F0dHJOYW1lTWFwW2tdID8/IGspO1xuICAgICAgaWYgKGsgaW4gZWxlbWVudENsYXNzLnByb3RvdHlwZSAmJiAhKGsgaW4gKCgoX2EgPSBnbG9iYWxUaGlzLkhUTUxFbGVtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EucHJvdG90eXBlKSA/PyB7fSkpICYmICEoKF9iID0gZWxlbWVudENsYXNzLm9ic2VydmVkQXR0cmlidXRlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnNvbWUoKGF0dHIpID0+IGF0dHIgPT09IGF0dHJOYW1lKSkpIHtcbiAgICAgICAgZWxlbWVudFByb3BzW2tdID0gdjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoay5zdGFydHNXaXRoKFwib25cIikpIHtcbiAgICAgICAgZXZlbnRQcm9wc1trXSA9IHY7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYXR0clZhbHVlID0gdG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgIGlmIChhdHRyTmFtZSAmJiBhdHRyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICBhdHRyc1thdHRyTmFtZV0gPSBTdHJpbmcoYXR0clZhbHVlKTtcbiAgICAgICAgaWYgKCFJU19SRUFDVF8xOV9PUl9ORVdFUikge1xuICAgICAgICAgIHJlYWN0UHJvcHNbYXR0ck5hbWVdID0gYXR0clZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYXR0ck5hbWUgJiYgSVNfUkVBQ1RfMTlfT1JfTkVXRVIpIHtcbiAgICAgICAgY29uc3QgYXR0clZhbHVlRnJvbURlZmF1bHQgPSBkZWZhdWx0VG9BdHRyaWJ1dGVWYWx1ZSh2KTtcbiAgICAgICAgaWYgKGF0dHJWYWx1ZSAhPT0gYXR0clZhbHVlRnJvbURlZmF1bHQpIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IGF0dHJWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWFjdFByb3BzW2F0dHJOYW1lXSA9IHY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gZXZlbnRQcm9wcykge1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IGV2ZW50UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICBjb25zdCB1c2VDYXB0dXJlID0gcHJvcE5hbWUuZW5kc1dpdGgoXCJDYXB0dXJlXCIpO1xuICAgICAgICBjb25zdCBldmVudE5hbWUgPSAoKGV2ZW50cyA9PSBudWxsID8gdm9pZCAwIDogZXZlbnRzW3Byb3BOYW1lXSkgPz8gcHJvcE5hbWUuc2xpY2UoMikudG9Mb3dlckNhc2UoKSkuc2xpY2UoXG4gICAgICAgICAgMCxcbiAgICAgICAgICB1c2VDYXB0dXJlID8gLTcgOiB2b2lkIDBcbiAgICAgICAgKTtcbiAgICAgICAgUmVhY3QyLnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnRUYXJnZXQgPSBlbGVtZW50UmVmID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgaWYgKCFldmVudFRhcmdldCB8fCB0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuO1xuICAgICAgICAgIGV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgdXNlQ2FwdHVyZSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSwgW2VsZW1lbnRSZWYgPT0gbnVsbCA/IHZvaWQgMCA6IGVsZW1lbnRSZWYuY3VycmVudCwgY2FsbGJhY2tdKTtcbiAgICAgIH1cbiAgICAgIFJlYWN0Mi51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudFJlZi5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0VsZW1Qcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGVsZW1lbnRQcm9wcykge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgICAgcHJldkVsZW1Qcm9wc1JlZi5jdXJyZW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgIG5ld0VsZW1Qcm9wcy5zZXQoa2V5LCBlbGVtZW50UHJvcHNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBfdmFsdWVdIG9mIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCkge1xuICAgICAgICAgIHNldFByb3BlcnR5KGVsZW1lbnRSZWYuY3VycmVudCwga2V5LCB2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHByZXZFbGVtUHJvcHNSZWYuY3VycmVudCA9IG5ld0VsZW1Qcm9wcztcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKSAmJiAoZWxlbWVudENsYXNzID09IG51bGwgPyB2b2lkIDAgOiBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnMpKSB7XG4gICAgICBjb25zdCB7IG1vZGUsIGRlbGVnYXRlc0ZvY3VzIH0gPSBlbGVtZW50Q2xhc3Muc2hhZG93Um9vdE9wdGlvbnM7XG4gICAgICBjb25zdCB0ZW1wbGF0ZVNoYWRvd1Jvb3QgPSBSZWFjdDIuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIsIHtcbiAgICAgICAgc2hhZG93cm9vdG1vZGU6IG1vZGUsXG4gICAgICAgIHNoYWRvd3Jvb3RkZWxlZ2F0ZXNmb2N1czogZGVsZWdhdGVzRm9jdXMsXG4gICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgICAgX19odG1sOiBlbGVtZW50Q2xhc3MuZ2V0VGVtcGxhdGVIVE1MKGF0dHJzLCBwcm9wcylcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZWFjdFByb3BzLmNoaWxkcmVuID0gW3RlbXBsYXRlU2hhZG93Um9vdCwgcmVhY3RQcm9wcy5jaGlsZHJlbl07XG4gICAgfVxuICAgIHJldHVybiBSZWFjdDIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAuLi5yZWFjdFByb3BzLFxuICAgICAgcmVmOiBSZWFjdDIudXNlQ2FsbGJhY2soXG4gICAgICAgIChub2RlKSA9PiB7XG4gICAgICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtyZWZdXG4gICAgICApXG4gICAgfSk7XG4gIH0pO1xuICBSZWFjdENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lID8/IGVsZW1lbnRDbGFzcy5uYW1lO1xuICByZXR1cm4gUmVhY3RDb21wb25lbnQ7XG59XG5mdW5jdGlvbiBzZXRQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgX2E7XG4gIG5vZGVbbmFtZV0gPSB2YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwgJiYgbmFtZSBpbiAoKChfYSA9IGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wcm90b3R5cGUpID8/IHt9KSkge1xuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICB9XG59XG5cbi8vIGRpc3QvcmVhY3QudHNcbnZhciByZWFjdF9kZWZhdWx0ID0gY3JlYXRlQ29tcG9uZW50KHtcbiAgcmVhY3Q6IFJlYWN0LFxuICB0YWdOYW1lOiBcInlvdXR1YmUtdmlkZW9cIixcbiAgZWxlbWVudENsYXNzOiBDdXN0b21NZWRpYUVsZW1lbnRcbn0pO1xuZXhwb3J0IHtcbiAgcmVhY3RfZGVmYXVsdCBhcyBkZWZhdWx0XG59O1xuLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjpcblxuY2UtbGEtcmVhY3QvZGlzdC9jZS1sYS1yZWFjdC5qczpcbiAgKCoqXG4gICAqIEBsaWNlbnNlXG4gICAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTENcbiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICAgKlxuICAgKiBNb2RpZmllZCB2ZXJzaW9uIG9mIGBAbGl0L3JlYWN0YCBmb3IgdmFuaWxsYSBjdXN0b20gZWxlbWVudHMgd2l0aCBzdXBwb3J0IGZvciBTU1IuXG4gICAqKVxuKi9cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/youtube-video-element/dist/react.js\n\n}");
|
|
20
|
-
|
|
21
|
-
/***/ }),
|
|
22
|
-
|
|
23
|
-
/***/ "./node_modules/youtube-video-element/dist/youtube-video-element.js":
|
|
24
|
-
/*!**************************************************************************!*\
|
|
25
|
-
!*** ./node_modules/youtube-video-element/dist/youtube-video-element.js ***!
|
|
26
|
-
\**************************************************************************/
|
|
27
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
28
|
-
|
|
29
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ youtube_video_element_default)\n/* harmony export */ });\nconst EMBED_BASE = \"https://www.youtube.com/embed\";\nconst EMBED_BASE_NOCOOKIE = \"https://www.youtube-nocookie.com/embed\";\nconst API_URL = \"https://www.youtube.com/iframe_api\";\nconst API_GLOBAL = \"YT\";\nconst API_GLOBAL_READY = \"onYouTubeIframeAPIReady\";\nconst VIDEO_MATCH_SRC = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})/;\nconst PLAYLIST_MATCH_SRC = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/.*?[?&]list=)([\\w_-]+)/;\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n frameborder: 0,\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n };\n if (props.config) {\n iframeAttrs[\"data-config\"] = JSON.stringify(props.config);\n }\n return (\n /*html*/\n `\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n position: relative;\n min-width: 300px;\n min-height: 150px;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n if (!attrs.src) return;\n const embedBase = attrs.src.includes(\"-nocookie\") ? EMBED_BASE_NOCOOKIE : EMBED_BASE;\n const params = {\n // ?controls=true is enabled by default in the iframe\n controls: attrs.controls === \"\" ? null : 0,\n autoplay: attrs.autoplay,\n loop: attrs.loop,\n mute: attrs.muted,\n playsinline: attrs.playsinline,\n preload: attrs.preload ?? \"metadata\",\n // https://developers.google.com/youtube/player_parameters#Parameters\n // origin: globalThis.location?.origin,\n enablejsapi: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1,\n ...props.config\n };\n if (VIDEO_MATCH_SRC.test(attrs.src)) {\n const matches2 = attrs.src.match(VIDEO_MATCH_SRC);\n const srcId = matches2 && matches2[1];\n return `${embedBase}/${srcId}?${serialize(params)}`;\n }\n const matches = attrs.src.match(PLAYLIST_MATCH_SRC);\n const playlistId = matches && matches[1];\n const extendedParams = {\n listType: \"playlist\",\n list: playlistId,\n ...params\n };\n return `${embedBase}?${serialize(extendedParams)}`;\n}\nclass YoutubeVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"preload\",\n \"src\"\n ];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #readyState = 0;\n #seeking = false;\n #seekComplete;\n isLoaded = false;\n #error = null;\n #config = null;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n async load() {\n if (this.#loadRequested) return;\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n }\n const isFirstLoad = !this.#hasLoaded;\n if (this.#hasLoaded) {\n this.loadComplete = new PublicPromise();\n this.isLoaded = false;\n }\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#readyState = 0;\n this.dispatchEvent(new Event(\"emptied\"));\n let oldApi = this.api;\n this.api = null;\n if (!this.src) {\n oldApi == null ? void 0 : oldApi.destroy();\n return;\n }\n this.dispatchEvent(new Event(\"loadstart\"));\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n let attrs = namedNodeMapToObject(this.attributes);\n if (isFirstLoad && iframe) {\n this.#config = JSON.parse(iframe.getAttribute(\"data-config\") || \"{}\");\n }\n if (!(iframe == null ? void 0 : iframe.src) || iframe.src !== serializeIframeUrl(attrs, this)) {\n this.shadowRoot.innerHTML = getTemplateHTML(attrs, this);\n iframe = this.shadowRoot.querySelector(\"iframe\");\n }\n const YT = await loadScript(API_URL, API_GLOBAL, API_GLOBAL_READY);\n this.api = new YT.Player(iframe, {\n events: {\n onReady: () => {\n this.#readyState = 1;\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n this.dispatchEvent(new Event(\"durationchange\"));\n this.dispatchEvent(new Event(\"volumechange\"));\n this.dispatchEvent(new Event(\"loadcomplete\"));\n this.isLoaded = true;\n this.loadComplete.resolve();\n },\n onError: (error) => {\n console.error(error);\n this.#error = {\n code: error.data,\n message: `YouTube iframe player error #${error.data}; visit https://developers.google.com/youtube/iframe_api_reference#onError for the full error message.`\n };\n this.dispatchEvent(new Event(\"error\"));\n }\n }\n });\n let playFired = false;\n this.api.addEventListener(\"onStateChange\", (event) => {\n var _a;\n const state = event.data;\n if (state === YT.PlayerState.PLAYING || state === YT.PlayerState.BUFFERING) {\n if (!playFired) {\n playFired = true;\n this.dispatchEvent(new Event(\"play\"));\n }\n }\n if (state === YT.PlayerState.PLAYING) {\n if (this.seeking) {\n this.#seeking = false;\n (_a = this.#seekComplete) == null ? void 0 : _a.resolve();\n this.dispatchEvent(new Event(\"seeked\"));\n }\n this.#readyState = 3;\n this.dispatchEvent(new Event(\"playing\"));\n } else if (state === YT.PlayerState.PAUSED) {\n const diff = Math.abs(this.currentTime - lastCurrentTime);\n if (!this.seeking && diff > 0.1) {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n }\n playFired = false;\n this.dispatchEvent(new Event(\"pause\"));\n }\n if (state === YT.PlayerState.ENDED) {\n playFired = false;\n this.dispatchEvent(new Event(\"pause\"));\n this.dispatchEvent(new Event(\"ended\"));\n if (this.loop) {\n this.play();\n }\n }\n });\n this.api.addEventListener(\"onPlaybackRateChange\", () => {\n this.dispatchEvent(new Event(\"ratechange\"));\n });\n this.api.addEventListener(\"onVolumeChange\", () => {\n this.dispatchEvent(new Event(\"volumechange\"));\n });\n this.api.addEventListener(\"onVideoProgress\", () => {\n this.dispatchEvent(new Event(\"timeupdate\"));\n });\n await this.loadComplete;\n let lastCurrentTime = 0;\n setInterval(() => {\n var _a;\n const diff = Math.abs(this.currentTime - lastCurrentTime);\n const bufferedEnd = this.buffered.end(this.buffered.length - 1);\n if (this.seeking && bufferedEnd > 0.1) {\n this.#seeking = false;\n (_a = this.#seekComplete) == null ? void 0 : _a.resolve();\n this.dispatchEvent(new Event(\"seeked\"));\n } else if (!this.seeking && diff > 0.1) {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n }\n lastCurrentTime = this.currentTime;\n }, 50);\n let lastBufferedEnd;\n const progressInterval = setInterval(() => {\n const bufferedEnd = this.buffered.end(this.buffered.length - 1);\n if (bufferedEnd >= this.duration) {\n clearInterval(progressInterval);\n this.#readyState = 4;\n }\n if (lastBufferedEnd != bufferedEnd) {\n lastBufferedEnd = bufferedEnd;\n this.dispatchEvent(new Event(\"progress\"));\n }\n }, 100);\n }\n async attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\":\n case \"autoplay\":\n case \"controls\":\n case \"loop\":\n case \"playsinline\": {\n this.load();\n }\n }\n }\n async play() {\n var _a;\n this.#seekComplete = null;\n await this.loadComplete;\n (_a = this.api) == null ? void 0 : _a.playVideo();\n return createPlayPromise(this);\n }\n async pause() {\n var _a;\n await this.loadComplete;\n return (_a = this.api) == null ? void 0 : _a.pauseVideo();\n }\n get seeking() {\n return this.#seeking;\n }\n get readyState() {\n return this.#readyState;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(val) {\n if (this.src == val) return;\n this.setAttribute(\"src\", val);\n }\n get error() {\n return this.#error;\n }\n /* onStateChange\n -1 (unstarted)\n 0 (ended)\n 1 (playing)\n 2 (paused)\n 3 (buffering)\n 5 (video cued).\n */\n get paused() {\n var _a, _b;\n if (!this.isLoaded) return !this.autoplay;\n return [-1, 0, 2, 5].includes((_b = (_a = this.api) == null ? void 0 : _a.getPlayerState) == null ? void 0 : _b.call(_a));\n }\n get duration() {\n var _a, _b;\n return ((_b = (_a = this.api) == null ? void 0 : _a.getDuration) == null ? void 0 : _b.call(_a)) ?? NaN;\n }\n get autoplay() {\n return this.hasAttribute(\"autoplay\");\n }\n set autoplay(val) {\n if (this.autoplay == val) return;\n this.toggleAttribute(\"autoplay\", Boolean(val));\n }\n get buffered() {\n var _a, _b;\n if (!this.isLoaded) return createTimeRanges();\n const progress = ((_a = this.api) == null ? void 0 : _a.getVideoLoadedFraction()) * ((_b = this.api) == null ? void 0 : _b.getDuration());\n if (progress > 0) {\n return createTimeRanges(0, progress);\n }\n return createTimeRanges();\n }\n get controls() {\n return this.hasAttribute(\"controls\");\n }\n set controls(val) {\n if (this.controls == val) return;\n this.toggleAttribute(\"controls\", Boolean(val));\n }\n get currentTime() {\n var _a, _b;\n return ((_b = (_a = this.api) == null ? void 0 : _a.getCurrentTime) == null ? void 0 : _b.call(_a)) ?? 0;\n }\n set currentTime(val) {\n if (this.currentTime == val) return;\n this.#seekComplete = new PublicPromise();\n this.loadComplete.then(() => {\n var _a, _b;\n (_a = this.api) == null ? void 0 : _a.seekTo(val, true);\n if (this.paused) {\n (_b = this.#seekComplete) == null ? void 0 : _b.then(() => {\n var _a2;\n if (!this.#seekComplete) return;\n (_a2 = this.api) == null ? void 0 : _a2.pauseVideo();\n });\n }\n });\n }\n set defaultMuted(val) {\n if (this.defaultMuted == val) return;\n this.toggleAttribute(\"muted\", Boolean(val));\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n get loop() {\n return this.hasAttribute(\"loop\");\n }\n set loop(val) {\n if (this.loop == val) return;\n this.toggleAttribute(\"loop\", Boolean(val));\n }\n set muted(val) {\n if (this.muted == val) return;\n this.loadComplete.then(() => {\n var _a, _b;\n val ? (_a = this.api) == null ? void 0 : _a.mute() : (_b = this.api) == null ? void 0 : _b.unMute();\n });\n }\n get muted() {\n var _a, _b;\n if (!this.isLoaded) return this.defaultMuted;\n return (_b = (_a = this.api) == null ? void 0 : _a.isMuted) == null ? void 0 : _b.call(_a);\n }\n get playbackRate() {\n var _a, _b;\n return ((_b = (_a = this.api) == null ? void 0 : _a.getPlaybackRate) == null ? void 0 : _b.call(_a)) ?? 1;\n }\n set playbackRate(val) {\n if (this.playbackRate == val) return;\n this.loadComplete.then(() => {\n var _a;\n (_a = this.api) == null ? void 0 : _a.setPlaybackRate(val);\n });\n }\n get playsInline() {\n return this.hasAttribute(\"playsinline\");\n }\n set playsInline(val) {\n if (this.playsInline == val) return;\n this.toggleAttribute(\"playsinline\", Boolean(val));\n }\n get poster() {\n return this.getAttribute(\"poster\");\n }\n set poster(val) {\n if (this.poster == val) return;\n this.setAttribute(\"poster\", `${val}`);\n }\n set volume(val) {\n if (this.volume == val) return;\n this.loadComplete.then(() => {\n var _a;\n (_a = this.api) == null ? void 0 : _a.setVolume(val * 100);\n });\n }\n get volume() {\n var _a;\n if (!this.isLoaded) return 1;\n return ((_a = this.api) == null ? void 0 : _a.getVolume()) / 100;\n }\n // This is a pattern to update property values that are set before\n // the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n #upgradeProperty(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n }\n}\nfunction serializeAttributes(attrs) {\n let html = \"\";\n for (const key in attrs) {\n const value = attrs[key];\n if (value === \"\") html += ` ${escapeHtml(key)}`;\n else html += ` ${escapeHtml(key)}=\"${escapeHtml(`${value}`)}\"`;\n }\n return html;\n}\nfunction escapeHtml(str) {\n return str.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/`/g, \"`\");\n}\nfunction serialize(props) {\n return String(new URLSearchParams(boolToBinary(props)));\n}\nfunction boolToBinary(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = 1;\n else if (val === false) p[key] = 0;\n else if (val != null) p[key] = val;\n }\n return p;\n}\nfunction namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nconst loadScriptCache = {};\nasync function loadScript(src, globalName, readyFnName) {\n if (loadScriptCache[src]) return loadScriptCache[src];\n if (globalName && self[globalName]) {\n await delay(0);\n return self[globalName];\n }\n return loadScriptCache[src] = new Promise(function(resolve, reject) {\n const script = document.createElement(\"script\");\n script.src = src;\n const ready = () => resolve(self[globalName]);\n if (readyFnName) self[readyFnName] = ready;\n script.onload = () => !readyFnName && ready();\n script.onerror = reject;\n document.head.append(script);\n });\n}\nconst delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nfunction promisify(fn) {\n return (...args) => new Promise((resolve) => {\n fn(...args, (...res) => {\n if (res.length > 1) resolve(res);\n else resolve(res[0]);\n });\n });\n}\nfunction createPlayPromise(player) {\n return promisify((event, cb) => {\n let fn;\n player.addEventListener(\n event,\n fn = () => {\n player.removeEventListener(event, fn);\n cb();\n }\n );\n })(\"playing\");\n}\nclass PublicPromise extends Promise {\n constructor(executor = () => {\n }) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start == null || end == null || start === 0 && end === 0) {\n return createTimeRangesObj([[0, 0]]);\n }\n return createTimeRangesObj([[start, end]]);\n}\nfunction createTimeRangesObj(ranges) {\n Object.defineProperties(ranges, {\n start: {\n value: (i) => ranges[i][0]\n },\n end: {\n value: (i) => ranges[i][1]\n }\n });\n return ranges;\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"youtube-video\")) {\n globalThis.customElements.define(\"youtube-video\", YoutubeVideoElement);\n}\nvar youtube_video_element_default = YoutubeVideoElement;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMveW91dHViZS12aWRlby1lbGVtZW50L2Rpc3QveW91dHViZS12aWRlby1lbGVtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQSIsInNvdXJjZXMiOlsid2VicGFjazovL2dob3N0b3MvLi9ub2RlX21vZHVsZXMveW91dHViZS12aWRlby1lbGVtZW50L2Rpc3QveW91dHViZS12aWRlby1lbGVtZW50LmpzPzJkMWQiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRU1CRURfQkFTRSA9IFwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWRcIjtcbmNvbnN0IEVNQkVEX0JBU0VfTk9DT09LSUUgPSBcImh0dHBzOi8vd3d3LnlvdXR1YmUtbm9jb29raWUuY29tL2VtYmVkXCI7XG5jb25zdCBBUElfVVJMID0gXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpXCI7XG5jb25zdCBBUElfR0xPQkFMID0gXCJZVFwiO1xuY29uc3QgQVBJX0dMT0JBTF9SRUFEWSA9IFwib25Zb3VUdWJlSWZyYW1lQVBJUmVhZHlcIjtcbmNvbnN0IFZJREVPX01BVENIX1NSQyA9IC8oPzp5b3V0dVxcLmJlXFwvfHlvdXR1YmUoPzotbm9jb29raWUpP1xcLmNvbVxcLyg/OmVtYmVkXFwvfHZcXC98d2F0Y2hcXD92PXx3YXRjaFxcPy4rJnY9fHNob3J0c1xcL3xsaXZlXFwvKSkoKFxcd3wtKXsxMX0pLztcbmNvbnN0IFBMQVlMSVNUX01BVENIX1NSQyA9IC8oPzp5b3V0dVxcLmJlXFwvfHlvdXR1YmUoPzotbm9jb29raWUpP1xcLmNvbVxcLy4qP1s/Jl1saXN0PSkoW1xcd18tXSspLztcbmZ1bmN0aW9uIGdldFRlbXBsYXRlSFRNTChhdHRycywgcHJvcHMgPSB7fSkge1xuICBjb25zdCBpZnJhbWVBdHRycyA9IHtcbiAgICBzcmM6IHNlcmlhbGl6ZUlmcmFtZVVybChhdHRycywgcHJvcHMpLFxuICAgIGZyYW1lYm9yZGVyOiAwLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGFsbG93OiBcImFjY2VsZXJvbWV0ZXI7IGZ1bGxzY3JlZW47IGF1dG9wbGF5OyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlXCJcbiAgfTtcbiAgaWYgKHByb3BzLmNvbmZpZykge1xuICAgIGlmcmFtZUF0dHJzW1wiZGF0YS1jb25maWdcIl0gPSBKU09OLnN0cmluZ2lmeShwcm9wcy5jb25maWcpO1xuICB9XG4gIHJldHVybiAoXG4gICAgLypodG1sKi9cbiAgICBgXG4gICAgPHN0eWxlPlxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgICAgfVxuICAgICAgaWZyYW1lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8aWZyYW1lJHtzZXJpYWxpemVBdHRyaWJ1dGVzKGlmcmFtZUF0dHJzKX0+PC9pZnJhbWU+XG4gIGBcbiAgKTtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUlmcmFtZVVybChhdHRycywgcHJvcHMpIHtcbiAgaWYgKCFhdHRycy5zcmMpIHJldHVybjtcbiAgY29uc3QgZW1iZWRCYXNlID0gYXR0cnMuc3JjLmluY2x1ZGVzKFwiLW5vY29va2llXCIpID8gRU1CRURfQkFTRV9OT0NPT0tJRSA6IEVNQkVEX0JBU0U7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAvLyA/Y29udHJvbHM9dHJ1ZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgaW4gdGhlIGlmcmFtZVxuICAgIGNvbnRyb2xzOiBhdHRycy5jb250cm9scyA9PT0gXCJcIiA/IG51bGwgOiAwLFxuICAgIGF1dG9wbGF5OiBhdHRycy5hdXRvcGxheSxcbiAgICBsb29wOiBhdHRycy5sb29wLFxuICAgIG11dGU6IGF0dHJzLm11dGVkLFxuICAgIHBsYXlzaW5saW5lOiBhdHRycy5wbGF5c2lubGluZSxcbiAgICBwcmVsb2FkOiBhdHRycy5wcmVsb2FkID8/IFwibWV0YWRhdGFcIixcbiAgICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS95b3V0dWJlL3BsYXllcl9wYXJhbWV0ZXJzI1BhcmFtZXRlcnNcbiAgICAvLyBvcmlnaW46IGdsb2JhbFRoaXMubG9jYXRpb24/Lm9yaWdpbixcbiAgICBlbmFibGVqc2FwaTogMSxcbiAgICBzaG93aW5mbzogMCxcbiAgICByZWw6IDAsXG4gICAgaXZfbG9hZF9wb2xpY3k6IDMsXG4gICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgLi4ucHJvcHMuY29uZmlnXG4gIH07XG4gIGlmIChWSURFT19NQVRDSF9TUkMudGVzdChhdHRycy5zcmMpKSB7XG4gICAgY29uc3QgbWF0Y2hlczIgPSBhdHRycy5zcmMubWF0Y2goVklERU9fTUFUQ0hfU1JDKTtcbiAgICBjb25zdCBzcmNJZCA9IG1hdGNoZXMyICYmIG1hdGNoZXMyWzFdO1xuICAgIHJldHVybiBgJHtlbWJlZEJhc2V9LyR7c3JjSWR9PyR7c2VyaWFsaXplKHBhcmFtcyl9YDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gYXR0cnMuc3JjLm1hdGNoKFBMQVlMSVNUX01BVENIX1NSQyk7XG4gIGNvbnN0IHBsYXlsaXN0SWQgPSBtYXRjaGVzICYmIG1hdGNoZXNbMV07XG4gIGNvbnN0IGV4dGVuZGVkUGFyYW1zID0ge1xuICAgIGxpc3RUeXBlOiBcInBsYXlsaXN0XCIsXG4gICAgbGlzdDogcGxheWxpc3RJZCxcbiAgICAuLi5wYXJhbXNcbiAgfTtcbiAgcmV0dXJuIGAke2VtYmVkQmFzZX0/JHtzZXJpYWxpemUoZXh0ZW5kZWRQYXJhbXMpfWA7XG59XG5jbGFzcyBZb3V0dWJlVmlkZW9FbGVtZW50IGV4dGVuZHMgKGdsb2JhbFRoaXMuSFRNTEVsZW1lbnQgPz8gY2xhc3Mge1xufSkge1xuICBzdGF0aWMgZ2V0VGVtcGxhdGVIVE1MID0gZ2V0VGVtcGxhdGVIVE1MO1xuICBzdGF0aWMgc2hhZG93Um9vdE9wdGlvbnMgPSB7IG1vZGU6IFwib3BlblwiIH07XG4gIHN0YXRpYyBvYnNlcnZlZEF0dHJpYnV0ZXMgPSBbXG4gICAgXCJhdXRvcGxheVwiLFxuICAgIFwiY29udHJvbHNcIixcbiAgICBcImNyb3Nzb3JpZ2luXCIsXG4gICAgXCJsb29wXCIsXG4gICAgXCJtdXRlZFwiLFxuICAgIFwicGxheXNpbmxpbmVcIixcbiAgICBcInBvc3RlclwiLFxuICAgIFwicHJlbG9hZFwiLFxuICAgIFwic3JjXCJcbiAgXTtcbiAgbG9hZENvbXBsZXRlID0gbmV3IFB1YmxpY1Byb21pc2UoKTtcbiAgI2xvYWRSZXF1ZXN0ZWQ7XG4gICNoYXNMb2FkZWQ7XG4gICNyZWFkeVN0YXRlID0gMDtcbiAgI3NlZWtpbmcgPSBmYWxzZTtcbiAgI3NlZWtDb21wbGV0ZTtcbiAgaXNMb2FkZWQgPSBmYWxzZTtcbiAgI2Vycm9yID0gbnVsbDtcbiAgI2NvbmZpZyA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy4jdXBncmFkZVByb3BlcnR5KFwiY29uZmlnXCIpO1xuICB9XG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbmZpZztcbiAgfVxuICBzZXQgY29uZmlnKHZhbHVlKSB7XG4gICAgdGhpcy4jY29uZmlnID0gdmFsdWU7XG4gIH1cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICBpZiAodGhpcy4jbG9hZFJlcXVlc3RlZCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5zaGFkb3dSb290KSB7XG4gICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6IFwib3BlblwiIH0pO1xuICAgIH1cbiAgICBjb25zdCBpc0ZpcnN0TG9hZCA9ICF0aGlzLiNoYXNMb2FkZWQ7XG4gICAgaWYgKHRoaXMuI2hhc0xvYWRlZCkge1xuICAgICAgdGhpcy5sb2FkQ29tcGxldGUgPSBuZXcgUHVibGljUHJvbWlzZSgpO1xuICAgICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLiNoYXNMb2FkZWQgPSB0cnVlO1xuICAgIGF3YWl0ICh0aGlzLiNsb2FkUmVxdWVzdGVkID0gUHJvbWlzZS5yZXNvbHZlKCkpO1xuICAgIHRoaXMuI2xvYWRSZXF1ZXN0ZWQgPSBudWxsO1xuICAgIHRoaXMuI3JlYWR5U3RhdGUgPSAwO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJlbXB0aWVkXCIpKTtcbiAgICBsZXQgb2xkQXBpID0gdGhpcy5hcGk7XG4gICAgdGhpcy5hcGkgPSBudWxsO1xuICAgIGlmICghdGhpcy5zcmMpIHtcbiAgICAgIG9sZEFwaSA9PSBudWxsID8gdm9pZCAwIDogb2xkQXBpLmRlc3Ryb3koKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImxvYWRzdGFydFwiKSk7XG4gICAgbGV0IGlmcmFtZSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFwiaWZyYW1lXCIpO1xuICAgIGxldCBhdHRycyA9IG5hbWVkTm9kZU1hcFRvT2JqZWN0KHRoaXMuYXR0cmlidXRlcyk7XG4gICAgaWYgKGlzRmlyc3RMb2FkICYmIGlmcmFtZSkge1xuICAgICAgdGhpcy4jY29uZmlnID0gSlNPTi5wYXJzZShpZnJhbWUuZ2V0QXR0cmlidXRlKFwiZGF0YS1jb25maWdcIikgfHwgXCJ7fVwiKTtcbiAgICB9XG4gICAgaWYgKCEoaWZyYW1lID09IG51bGwgPyB2b2lkIDAgOiBpZnJhbWUuc3JjKSB8fCBpZnJhbWUuc3JjICE9PSBzZXJpYWxpemVJZnJhbWVVcmwoYXR0cnMsIHRoaXMpKSB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gZ2V0VGVtcGxhdGVIVE1MKGF0dHJzLCB0aGlzKTtcbiAgICAgIGlmcmFtZSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFwiaWZyYW1lXCIpO1xuICAgIH1cbiAgICBjb25zdCBZVCA9IGF3YWl0IGxvYWRTY3JpcHQoQVBJX1VSTCwgQVBJX0dMT0JBTCwgQVBJX0dMT0JBTF9SRUFEWSk7XG4gICAgdGhpcy5hcGkgPSBuZXcgWVQuUGxheWVyKGlmcmFtZSwge1xuICAgICAgZXZlbnRzOiB7XG4gICAgICAgIG9uUmVhZHk6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLiNyZWFkeVN0YXRlID0gMTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwibG9hZGVkbWV0YWRhdGFcIikpO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJkdXJhdGlvbmNoYW5nZVwiKSk7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInZvbHVtZWNoYW5nZVwiKSk7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImxvYWRjb21wbGV0ZVwiKSk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2FkQ29tcGxldGUucmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aGlzLiNlcnJvciA9IHtcbiAgICAgICAgICAgIGNvZGU6IGVycm9yLmRhdGEsXG4gICAgICAgICAgICBtZXNzYWdlOiBgWW91VHViZSBpZnJhbWUgcGxheWVyIGVycm9yICMke2Vycm9yLmRhdGF9OyB2aXNpdCBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS95b3V0dWJlL2lmcmFtZV9hcGlfcmVmZXJlbmNlI29uRXJyb3IgZm9yIHRoZSBmdWxsIGVycm9yIG1lc3NhZ2UuYFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImVycm9yXCIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBwbGF5RmlyZWQgPSBmYWxzZTtcbiAgICB0aGlzLmFwaS5hZGRFdmVudExpc3RlbmVyKFwib25TdGF0ZUNoYW5nZVwiLCAoZXZlbnQpID0+IHtcbiAgICAgIHZhciBfYTtcbiAgICAgIGNvbnN0IHN0YXRlID0gZXZlbnQuZGF0YTtcbiAgICAgIGlmIChzdGF0ZSA9PT0gWVQuUGxheWVyU3RhdGUuUExBWUlORyB8fCBzdGF0ZSA9PT0gWVQuUGxheWVyU3RhdGUuQlVGRkVSSU5HKSB7XG4gICAgICAgIGlmICghcGxheUZpcmVkKSB7XG4gICAgICAgICAgcGxheUZpcmVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGxheVwiKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZSA9PT0gWVQuUGxheWVyU3RhdGUuUExBWUlORykge1xuICAgICAgICBpZiAodGhpcy5zZWVraW5nKSB7XG4gICAgICAgICAgdGhpcy4jc2Vla2luZyA9IGZhbHNlO1xuICAgICAgICAgIChfYSA9IHRoaXMuI3NlZWtDb21wbGV0ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnJlc29sdmUoKTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwic2Vla2VkXCIpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNyZWFkeVN0YXRlID0gMztcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBsYXlpbmdcIikpO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gWVQuUGxheWVyU3RhdGUuUEFVU0VEKSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLmFicyh0aGlzLmN1cnJlbnRUaW1lIC0gbGFzdEN1cnJlbnRUaW1lKTtcbiAgICAgICAgaWYgKCF0aGlzLnNlZWtpbmcgJiYgZGlmZiA+IDAuMSkge1xuICAgICAgICAgIHRoaXMuI3NlZWtpbmcgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJzZWVraW5nXCIpKTtcbiAgICAgICAgfVxuICAgICAgICBwbGF5RmlyZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBhdXNlXCIpKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZSA9PT0gWVQuUGxheWVyU3RhdGUuRU5ERUQpIHtcbiAgICAgICAgcGxheUZpcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwYXVzZVwiKSk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJlbmRlZFwiKSk7XG4gICAgICAgIGlmICh0aGlzLmxvb3ApIHtcbiAgICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoXCJvblBsYXliYWNrUmF0ZUNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicmF0ZWNoYW5nZVwiKSk7XG4gICAgfSk7XG4gICAgdGhpcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihcIm9uVm9sdW1lQ2hhbmdlXCIsICgpID0+IHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJ2b2x1bWVjaGFuZ2VcIikpO1xuICAgIH0pO1xuICAgIHRoaXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoXCJvblZpZGVvUHJvZ3Jlc3NcIiwgKCkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInRpbWV1cGRhdGVcIikpO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMubG9hZENvbXBsZXRlO1xuICAgIGxldCBsYXN0Q3VycmVudFRpbWUgPSAwO1xuICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHZhciBfYTtcbiAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLmFicyh0aGlzLmN1cnJlbnRUaW1lIC0gbGFzdEN1cnJlbnRUaW1lKTtcbiAgICAgIGNvbnN0IGJ1ZmZlcmVkRW5kID0gdGhpcy5idWZmZXJlZC5lbmQodGhpcy5idWZmZXJlZC5sZW5ndGggLSAxKTtcbiAgICAgIGlmICh0aGlzLnNlZWtpbmcgJiYgYnVmZmVyZWRFbmQgPiAwLjEpIHtcbiAgICAgICAgdGhpcy4jc2Vla2luZyA9IGZhbHNlO1xuICAgICAgICAoX2EgPSB0aGlzLiNzZWVrQ29tcGxldGUpID09IG51bGwgPyB2b2lkIDAgOiBfYS5yZXNvbHZlKCk7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJzZWVrZWRcIikpO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5zZWVraW5nICYmIGRpZmYgPiAwLjEpIHtcbiAgICAgICAgdGhpcy4jc2Vla2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJzZWVraW5nXCIpKTtcbiAgICAgIH1cbiAgICAgIGxhc3RDdXJyZW50VGltZSA9IHRoaXMuY3VycmVudFRpbWU7XG4gICAgfSwgNTApO1xuICAgIGxldCBsYXN0QnVmZmVyZWRFbmQ7XG4gICAgY29uc3QgcHJvZ3Jlc3NJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGNvbnN0IGJ1ZmZlcmVkRW5kID0gdGhpcy5idWZmZXJlZC5lbmQodGhpcy5idWZmZXJlZC5sZW5ndGggLSAxKTtcbiAgICAgIGlmIChidWZmZXJlZEVuZCA+PSB0aGlzLmR1cmF0aW9uKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwocHJvZ3Jlc3NJbnRlcnZhbCk7XG4gICAgICAgIHRoaXMuI3JlYWR5U3RhdGUgPSA0O1xuICAgICAgfVxuICAgICAgaWYgKGxhc3RCdWZmZXJlZEVuZCAhPSBidWZmZXJlZEVuZCkge1xuICAgICAgICBsYXN0QnVmZmVyZWRFbmQgPSBidWZmZXJlZEVuZDtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInByb2dyZXNzXCIpKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG4gIGFzeW5jIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhhdHRyTmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSB7XG4gICAgaWYgKG9sZFZhbHVlID09PSBuZXdWYWx1ZSkgcmV0dXJuO1xuICAgIHN3aXRjaCAoYXR0ck5hbWUpIHtcbiAgICAgIGNhc2UgXCJzcmNcIjpcbiAgICAgIGNhc2UgXCJhdXRvcGxheVwiOlxuICAgICAgY2FzZSBcImNvbnRyb2xzXCI6XG4gICAgICBjYXNlIFwibG9vcFwiOlxuICAgICAgY2FzZSBcInBsYXlzaW5saW5lXCI6IHtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGFzeW5jIHBsYXkoKSB7XG4gICAgdmFyIF9hO1xuICAgIHRoaXMuI3NlZWtDb21wbGV0ZSA9IG51bGw7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcGxldGU7XG4gICAgKF9hID0gdGhpcy5hcGkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5wbGF5VmlkZW8oKTtcbiAgICByZXR1cm4gY3JlYXRlUGxheVByb21pc2UodGhpcyk7XG4gIH1cbiAgYXN5bmMgcGF1c2UoKSB7XG4gICAgdmFyIF9hO1xuICAgIGF3YWl0IHRoaXMubG9hZENvbXBsZXRlO1xuICAgIHJldHVybiAoX2EgPSB0aGlzLmFwaSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnBhdXNlVmlkZW8oKTtcbiAgfVxuICBnZXQgc2Vla2luZygpIHtcbiAgICByZXR1cm4gdGhpcy4jc2Vla2luZztcbiAgfVxuICBnZXQgcmVhZHlTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy4jcmVhZHlTdGF0ZTtcbiAgfVxuICBnZXQgc3JjKCkge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZShcInNyY1wiKTtcbiAgfVxuICBzZXQgc3JjKHZhbCkge1xuICAgIGlmICh0aGlzLnNyYyA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShcInNyY1wiLCB2YWwpO1xuICB9XG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy4jZXJyb3I7XG4gIH1cbiAgLyogb25TdGF0ZUNoYW5nZVxuICAgIC0xICh1bnN0YXJ0ZWQpXG4gICAgMCAoZW5kZWQpXG4gICAgMSAocGxheWluZylcbiAgICAyIChwYXVzZWQpXG4gICAgMyAoYnVmZmVyaW5nKVxuICAgIDUgKHZpZGVvIGN1ZWQpLlxuICAqL1xuICBnZXQgcGF1c2VkKCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGVkKSByZXR1cm4gIXRoaXMuYXV0b3BsYXk7XG4gICAgcmV0dXJuIFstMSwgMCwgMiwgNV0uaW5jbHVkZXMoKF9iID0gKF9hID0gdGhpcy5hcGkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5nZXRQbGF5ZXJTdGF0ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpKTtcbiAgfVxuICBnZXQgZHVyYXRpb24oKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICByZXR1cm4gKChfYiA9IChfYSA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EuZ2V0RHVyYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKSkgPz8gTmFOO1xuICB9XG4gIGdldCBhdXRvcGxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoXCJhdXRvcGxheVwiKTtcbiAgfVxuICBzZXQgYXV0b3BsYXkodmFsKSB7XG4gICAgaWYgKHRoaXMuYXV0b3BsYXkgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXCJhdXRvcGxheVwiLCBCb29sZWFuKHZhbCkpO1xuICB9XG4gIGdldCBidWZmZXJlZCgpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGlmICghdGhpcy5pc0xvYWRlZCkgcmV0dXJuIGNyZWF0ZVRpbWVSYW5nZXMoKTtcbiAgICBjb25zdCBwcm9ncmVzcyA9ICgoX2EgPSB0aGlzLmFwaSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmdldFZpZGVvTG9hZGVkRnJhY3Rpb24oKSkgKiAoKF9iID0gdGhpcy5hcGkpID09IG51bGwgPyB2b2lkIDAgOiBfYi5nZXREdXJhdGlvbigpKTtcbiAgICBpZiAocHJvZ3Jlc3MgPiAwKSB7XG4gICAgICByZXR1cm4gY3JlYXRlVGltZVJhbmdlcygwLCBwcm9ncmVzcyk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVUaW1lUmFuZ2VzKCk7XG4gIH1cbiAgZ2V0IGNvbnRyb2xzKCkge1xuICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZShcImNvbnRyb2xzXCIpO1xuICB9XG4gIHNldCBjb250cm9scyh2YWwpIHtcbiAgICBpZiAodGhpcy5jb250cm9scyA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZShcImNvbnRyb2xzXCIsIEJvb2xlYW4odmFsKSk7XG4gIH1cbiAgZ2V0IGN1cnJlbnRUaW1lKCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgcmV0dXJuICgoX2IgPSAoX2EgPSB0aGlzLmFwaSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmdldEN1cnJlbnRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX2IuY2FsbChfYSkpID8/IDA7XG4gIH1cbiAgc2V0IGN1cnJlbnRUaW1lKHZhbCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lID09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMuI3NlZWtDb21wbGV0ZSA9IG5ldyBQdWJsaWNQcm9taXNlKCk7XG4gICAgdGhpcy5sb2FkQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB2YXIgX2EsIF9iO1xuICAgICAgKF9hID0gdGhpcy5hcGkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5zZWVrVG8odmFsLCB0cnVlKTtcbiAgICAgIGlmICh0aGlzLnBhdXNlZCkge1xuICAgICAgICAoX2IgPSB0aGlzLiNzZWVrQ29tcGxldGUpID09IG51bGwgPyB2b2lkIDAgOiBfYi50aGVuKCgpID0+IHtcbiAgICAgICAgICB2YXIgX2EyO1xuICAgICAgICAgIGlmICghdGhpcy4jc2Vla0NvbXBsZXRlKSByZXR1cm47XG4gICAgICAgICAgKF9hMiA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EyLnBhdXNlVmlkZW8oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgc2V0IGRlZmF1bHRNdXRlZCh2YWwpIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0TXV0ZWQgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXCJtdXRlZFwiLCBCb29sZWFuKHZhbCkpO1xuICB9XG4gIGdldCBkZWZhdWx0TXV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKFwibXV0ZWRcIik7XG4gIH1cbiAgZ2V0IGxvb3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKFwibG9vcFwiKTtcbiAgfVxuICBzZXQgbG9vcCh2YWwpIHtcbiAgICBpZiAodGhpcy5sb29wID09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKFwibG9vcFwiLCBCb29sZWFuKHZhbCkpO1xuICB9XG4gIHNldCBtdXRlZCh2YWwpIHtcbiAgICBpZiAodGhpcy5tdXRlZCA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLmxvYWRDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHZhciBfYSwgX2I7XG4gICAgICB2YWwgPyAoX2EgPSB0aGlzLmFwaSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm11dGUoKSA6IChfYiA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2IudW5NdXRlKCk7XG4gICAgfSk7XG4gIH1cbiAgZ2V0IG11dGVkKCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGVkKSByZXR1cm4gdGhpcy5kZWZhdWx0TXV0ZWQ7XG4gICAgcmV0dXJuIChfYiA9IChfYSA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EuaXNNdXRlZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICB9XG4gIGdldCBwbGF5YmFja1JhdGUoKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICByZXR1cm4gKChfYiA9IChfYSA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EuZ2V0UGxheWJhY2tSYXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2IuY2FsbChfYSkpID8/IDE7XG4gIH1cbiAgc2V0IHBsYXliYWNrUmF0ZSh2YWwpIHtcbiAgICBpZiAodGhpcy5wbGF5YmFja1JhdGUgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5sb2FkQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB2YXIgX2E7XG4gICAgICAoX2EgPSB0aGlzLmFwaSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnNldFBsYXliYWNrUmF0ZSh2YWwpO1xuICAgIH0pO1xuICB9XG4gIGdldCBwbGF5c0lubGluZSgpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoXCJwbGF5c2lubGluZVwiKTtcbiAgfVxuICBzZXQgcGxheXNJbmxpbmUodmFsKSB7XG4gICAgaWYgKHRoaXMucGxheXNJbmxpbmUgPT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXCJwbGF5c2lubGluZVwiLCBCb29sZWFuKHZhbCkpO1xuICB9XG4gIGdldCBwb3N0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKFwicG9zdGVyXCIpO1xuICB9XG4gIHNldCBwb3N0ZXIodmFsKSB7XG4gICAgaWYgKHRoaXMucG9zdGVyID09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKFwicG9zdGVyXCIsIGAke3ZhbH1gKTtcbiAgfVxuICBzZXQgdm9sdW1lKHZhbCkge1xuICAgIGlmICh0aGlzLnZvbHVtZSA9PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLmxvYWRDb21wbGV0ZS50aGVuKCgpID0+IHtcbiAgICAgIHZhciBfYTtcbiAgICAgIChfYSA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2Euc2V0Vm9sdW1lKHZhbCAqIDEwMCk7XG4gICAgfSk7XG4gIH1cbiAgZ2V0IHZvbHVtZSgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGVkKSByZXR1cm4gMTtcbiAgICByZXR1cm4gKChfYSA9IHRoaXMuYXBpKSA9PSBudWxsID8gdm9pZCAwIDogX2EuZ2V0Vm9sdW1lKCkpIC8gMTAwO1xuICB9XG4gIC8vIFRoaXMgaXMgYSBwYXR0ZXJuIHRvIHVwZGF0ZSBwcm9wZXJ0eSB2YWx1ZXMgdGhhdCBhcmUgc2V0IGJlZm9yZVxuICAvLyB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgdXBncmFkZWQuXG4gIC8vIGh0dHBzOi8vd2ViLmRldi9jdXN0b20tZWxlbWVudHMtYmVzdC1wcmFjdGljZXMvI21ha2UtcHJvcGVydGllcy1sYXp5XG4gICN1cGdyYWRlUHJvcGVydHkocHJvcCkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcywgcHJvcCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1twcm9wXTtcbiAgICAgIGRlbGV0ZSB0aGlzW3Byb3BdO1xuICAgICAgdGhpc1twcm9wXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhhdHRycykge1xuICBsZXQgaHRtbCA9IFwiXCI7XG4gIGZvciAoY29uc3Qga2V5IGluIGF0dHJzKSB7XG4gICAgY29uc3QgdmFsdWUgPSBhdHRyc1trZXldO1xuICAgIGlmICh2YWx1ZSA9PT0gXCJcIikgaHRtbCArPSBgICR7ZXNjYXBlSHRtbChrZXkpfWA7XG4gICAgZWxzZSBodG1sICs9IGAgJHtlc2NhcGVIdG1sKGtleSl9PVwiJHtlc2NhcGVIdG1sKGAke3ZhbHVlfWApfVwiYDtcbiAgfVxuICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIGVzY2FwZUh0bWwoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpLnJlcGxhY2UoLycvZywgXCImYXBvcztcIikucmVwbGFjZSgvYC9nLCBcIiYjeDYwO1wiKTtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZShwcm9wcykge1xuICByZXR1cm4gU3RyaW5nKG5ldyBVUkxTZWFyY2hQYXJhbXMoYm9vbFRvQmluYXJ5KHByb3BzKSkpO1xufVxuZnVuY3Rpb24gYm9vbFRvQmluYXJ5KHByb3BzKSB7XG4gIGxldCBwID0ge307XG4gIGZvciAobGV0IGtleSBpbiBwcm9wcykge1xuICAgIGxldCB2YWwgPSBwcm9wc1trZXldO1xuICAgIGlmICh2YWwgPT09IHRydWUgfHwgdmFsID09PSBcIlwiKSBwW2tleV0gPSAxO1xuICAgIGVsc2UgaWYgKHZhbCA9PT0gZmFsc2UpIHBba2V5XSA9IDA7XG4gICAgZWxzZSBpZiAodmFsICE9IG51bGwpIHBba2V5XSA9IHZhbDtcbiAgfVxuICByZXR1cm4gcDtcbn1cbmZ1bmN0aW9uIG5hbWVkTm9kZU1hcFRvT2JqZWN0KG5hbWVkTm9kZU1hcCkge1xuICBsZXQgb2JqID0ge307XG4gIGZvciAobGV0IGF0dHIgb2YgbmFtZWROb2RlTWFwKSB7XG4gICAgb2JqW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5jb25zdCBsb2FkU2NyaXB0Q2FjaGUgPSB7fTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRTY3JpcHQoc3JjLCBnbG9iYWxOYW1lLCByZWFkeUZuTmFtZSkge1xuICBpZiAobG9hZFNjcmlwdENhY2hlW3NyY10pIHJldHVybiBsb2FkU2NyaXB0Q2FjaGVbc3JjXTtcbiAgaWYgKGdsb2JhbE5hbWUgJiYgc2VsZltnbG9iYWxOYW1lXSkge1xuICAgIGF3YWl0IGRlbGF5KDApO1xuICAgIHJldHVybiBzZWxmW2dsb2JhbE5hbWVdO1xuICB9XG4gIHJldHVybiBsb2FkU2NyaXB0Q2FjaGVbc3JjXSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG4gICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICBjb25zdCByZWFkeSA9ICgpID0+IHJlc29sdmUoc2VsZltnbG9iYWxOYW1lXSk7XG4gICAgaWYgKHJlYWR5Rm5OYW1lKSBzZWxmW3JlYWR5Rm5OYW1lXSA9IHJlYWR5O1xuICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiAhcmVhZHlGbk5hbWUgJiYgcmVhZHkoKTtcbiAgICBzY3JpcHQub25lcnJvciA9IHJlamVjdDtcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZChzY3JpcHQpO1xuICB9KTtcbn1cbmNvbnN0IGRlbGF5ID0gKG1zKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuZnVuY3Rpb24gcHJvbWlzaWZ5KGZuKSB7XG4gIHJldHVybiAoLi4uYXJncykgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBmbiguLi5hcmdzLCAoLi4ucmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmxlbmd0aCA+IDEpIHJlc29sdmUocmVzKTtcbiAgICAgIGVsc2UgcmVzb2x2ZShyZXNbMF0pO1xuICAgIH0pO1xuICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBsYXlQcm9taXNlKHBsYXllcikge1xuICByZXR1cm4gcHJvbWlzaWZ5KChldmVudCwgY2IpID0+IHtcbiAgICBsZXQgZm47XG4gICAgcGxheWVyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBldmVudCxcbiAgICAgIGZuID0gKCkgPT4ge1xuICAgICAgICBwbGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgZm4pO1xuICAgICAgICBjYigpO1xuICAgICAgfVxuICAgICk7XG4gIH0pKFwicGxheWluZ1wiKTtcbn1cbmNsYXNzIFB1YmxpY1Byb21pc2UgZXh0ZW5kcyBQcm9taXNlIHtcbiAgY29uc3RydWN0b3IoZXhlY3V0b3IgPSAoKSA9PiB7XG4gIH0pIHtcbiAgICBsZXQgcmVzLCByZWo7XG4gICAgc3VwZXIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgZXhlY3V0b3IocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgIHJlcyA9IHJlc29sdmU7XG4gICAgICByZWogPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5yZXNvbHZlID0gcmVzO1xuICAgIHRoaXMucmVqZWN0ID0gcmVqO1xuICB9XG59XG5mdW5jdGlvbiBjcmVhdGVUaW1lUmFuZ2VzKHN0YXJ0LCBlbmQpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc3RhcnQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVRpbWVSYW5nZXNPYmooc3RhcnQpO1xuICB9IGVsc2UgaWYgKHN0YXJ0ID09IG51bGwgfHwgZW5kID09IG51bGwgfHwgc3RhcnQgPT09IDAgJiYgZW5kID09PSAwKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVRpbWVSYW5nZXNPYmooW1swLCAwXV0pO1xuICB9XG4gIHJldHVybiBjcmVhdGVUaW1lUmFuZ2VzT2JqKFtbc3RhcnQsIGVuZF1dKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRpbWVSYW5nZXNPYmoocmFuZ2VzKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJhbmdlcywge1xuICAgIHN0YXJ0OiB7XG4gICAgICB2YWx1ZTogKGkpID0+IHJhbmdlc1tpXVswXVxuICAgIH0sXG4gICAgZW5kOiB7XG4gICAgICB2YWx1ZTogKGkpID0+IHJhbmdlc1tpXVsxXVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiByYW5nZXM7XG59XG5pZiAoZ2xvYmFsVGhpcy5jdXN0b21FbGVtZW50cyAmJiAhZ2xvYmFsVGhpcy5jdXN0b21FbGVtZW50cy5nZXQoXCJ5b3V0dWJlLXZpZGVvXCIpKSB7XG4gIGdsb2JhbFRoaXMuY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwieW91dHViZS12aWRlb1wiLCBZb3V0dWJlVmlkZW9FbGVtZW50KTtcbn1cbnZhciB5b3V0dWJlX3ZpZGVvX2VsZW1lbnRfZGVmYXVsdCA9IFlvdXR1YmVWaWRlb0VsZW1lbnQ7XG5leHBvcnQge1xuICB5b3V0dWJlX3ZpZGVvX2VsZW1lbnRfZGVmYXVsdCBhcyBkZWZhdWx0XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/youtube-video-element/dist/youtube-video-element.js\n\n}");
|
|
30
|
-
|
|
31
|
-
/***/ })
|
|
32
|
-
|
|
33
|
-
};
|